JavaScript中的ActionScript调用函数

时间:2013-05-24 22:48:37

标签: javascript actionscript-3 web

我正在尝试从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>

2 个答案:

答案 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对象将其嵌入大多数(如果不是所有浏览器),没有大惊小怪和开销可以忽略不计。