gpt4 book ai didi

javascript - AS3 -ExternalInterface.addCallback,访问未定义的属性

转载 作者:行者123 更新时间:2023-11-28 16:27:49 25 4
gpt4 key购买 nike

我正在尝试使用 javascript 来运行 AS3 函数。当我尝试编译时,收到“访问未定义的属性”错误消息。

我已经在网上阅读了一些有关此的内容,但我仍然不明白。我想让 flash 文件始终监听 javascript。

这是我的 AS3 代码:

ExternalInterface.addCallback("song4", PauseMusicExt);

还有我的 Javascript 和 HTML:

 function returnVar3(song3) { return this[song3]; }
<input type="submit" name="playButton" id="playButton" value="Submit" onClick="returnVar('song3')"/>

编辑:这是pauseMusic函数:

function pauseMusicExt():void
{
songPosition = channel.position;
channelSilence.stop();
channel.stop();
channel2.stop();
btnPlay.mouseEnabled = true;
}

最佳答案

我不确定您的应用程序的扩展,但您的 addCallback 函数参数混淆了..

参见the doc ,第一个参数是您想要向 javascript 公开函数的名称,第二个参数是您想要触发的实际内部 AS3 函数。

所以声明应该是这样的:

ExternalInterface.addCallback("song4",pauseMusic);

(假设您的函数与调用 addCallback 的作用域相同)

该语句将创建一个“song4”方法,您可以在 flash dom 对象上调用该方法

var fl = document.getElementById('myflashobject');
fl.song4()

之后出现的问题是,pauseMusic 需要一个参数(看起来您已将其设置为鼠标事件处理程序)。您可能想要一个干净的方法,不需要像内部 as3 事件参数这样的参数。重写pauseMusic,使其不需要它(您可能需要创建另一个方法来在内部处理鼠标事件 - 例如onPause(evt:MouseEvent),然后调用pauseMusic。

编辑:我不知道很多人是否想过这样做,但你也完全可以使用外部接口(interface)调用firebug的console.log函数从flash向Firebug发送消息(它对于调试外部接口(interface)问题或任何其他闪存问题确实很有帮助 - 请参阅 ExternalInterface.call 函数)

关于javascript - AS3 -ExternalInterface.addCallback,访问未定义的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7369851/

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