gpt4 book ai didi

javascript - 使用ExternalInterface调用Flash函数

转载 作者:行者123 更新时间:2023-12-02 19:56:25 25 4
gpt4 key购买 nike

我在通过使用ExternalInterface调用函数时遇到问题。

首先,这是 HTML/JS 方面:

<p align="right">
<object type="application/x-shockwave-flash" data="camera.swf"
width="200" height="200" align="right" id="camSWF">
<param name="movie" value="camera.swf" align="right" />
<param name="allowScriptAccess" value="always" />
</object></p>
<script type="text/javascript">
var flashObj = document.getElementById('camSWF');
document.onmousemove = setMouseXY;
function setMouseXY(e) {
var x = e.pageX;
var y = e.pageY;
flashObj.rotateCam(x, y, $(document).width(), $(document).height());
}
</script>

其次,这是 ActionScript 2 代码:

ExternalInterface.addCallback('setMouseXY', null, rotateCam);
function rotateCam(mouseX, mouseY, docWidth, docHeight)
{
// DO STUFF
}

据我所知,一切都应该有效,但显然我错过了一些东西。

每当 HTML 页面上触发鼠标事件时,我都会在 Firebug 中收到此错误:

flashObj.rotateCam is not a function: 
flashObj.rotateCam(x, y, $(document).width(), $(document).height());

我被困住了。也许这是一些安全问题?

最佳答案

ExternalInterface.addCallback('setMouseXY', null, rotateCam);

该语句添加“rotateCam”作为“setMouseXY”的回调函数。所以“setMouseXY”是必须从 javascript 调用的函数。

function setMouseXY(e) {
var x = e.pageX;
var y = e.pageY;
flashObj.setMouseXY(x, y, $(document).width(), $(document).height());
}

关于javascript - 使用ExternalInterface调用Flash函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8561998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com