gpt4 book ai didi

javascript - Javascript 什么时候可以开始调用 Actionscript?

转载 作者:行者123 更新时间:2023-11-29 18:34:16 25 4
gpt4 key购买 nike

问题

当 Flash 的外部接口(interface)准备好时,是否有一种非轮询的方式让 Javascript 立即命令 Flash?

背景

在 Actionscript 中,我注册了一个函数供 Javascript 调用:

ExternalInterface.addCallback('doStuff", this.doStuff);

我使用 SWFObject将 Flash 嵌入我的页面:

swfobject.embedSWF(
'flash/player.swf',
'flashPlayer',
'100%',
'100%',
'9',
'expressInstallSwfTODO.swf',
{},
{allowfullscreen: true},
{},
function(status) {
if (!status.success) {
alert('Failed to embed Flash player');
} else {
$('flashPlayer').doStuff();
}
}.bind(this)
);

SWFObject 允许您在通过回调成功嵌入 Flash 时运行代码。我尝试在此回调中运行 $('flashPlayer').doStuff,但它声称它未定义。 Flash 似乎需要一些时间来启动它的外部接口(interface)。所以我一直在使用轮询 hack 来查明外部接口(interface)何时准备就绪:

new PeriodicalExecutuer(
function(poller) {
if ($('flashPlayer').doStuff) {
$('flashPlayer').doStuff();
poller.stop()
}
},
0.2
);

这个轮询器并不理想。在 doStuff 的执行过程中存在视觉上可察觉的延迟,这让我的整体代码结构变得困惑。

最佳答案

在 Javascript 中:

function flashIsReady()
{
$('flashPlayer').doStuff();
}

在 ActionScript 中:

if (ExternalInterface.available) {
ExternalInterface.addCallback('doStuff', this.doStuff);
ExternalInterface.call("flashIsReady");
}

关于javascript - Javascript 什么时候可以开始调用 Actionscript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4771379/

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