我正在尝试从ActionScript调用一个非常简单的JavaScript函数,但我似乎无法使它工作。这是我的代码:
的JavaScript
function alert() {
alert("hi");
}
的ActionScript
ExternalInterface.call("alert");
HTML
<object width="500" height="500"
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://fpdownload.macromedia.com/
pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0">
<param name="SRC" value="FlashApp.swf"/>
<param name="allowScriptAccess" value="always" />
<embed src="FlashApp.swf" width="500" height="500" allowScriptAccess="always">
</embed>
</object>
答案 0 :(得分:1)
也许是因为已有警报功能?这对我有用。
//js
function myAlert() {
alert("hi");
}
//as3
ExternalInterface.call("myAlert");
AS3代码:
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
ExternalInterface.call("myAlert");
}
}
答案 1 :(得分:0)
确保在调用该方法之前初始化了javascript。真的,取决于运气,除非你努力工作。我怀疑Baris Usakli有一台快速电脑,而且js的初始化速度比swf快。
当javascript onload事件发生时,使用swfobject嵌入swf。这样你知道js函数存在,你可以调用它。
奖励积分,swf对象将其嵌入大多数(如果不是所有浏览器),没有大惊小怪和开销可以忽略不计。