外部接口错误

时间:2009-01-12 19:53:40

标签: javascript flash constants externalinterface

这是我用来在javascript中调用函数calc的代码:

import flash.external.ExternalInterface;

ExternalInterface.addCallback("asFunc", this, asFunc); 

function asFunc(str:String):Void {
    out.text = "JS > Hello " + str;
}

send_btn.addEventListener(MouseEvent.CLICK, clickListener);

function clickListener(eventObj:Object):Void {
    trace("click > " + mean.text);
    ExternalInterface.call("calc", mean.text);
}

但是我收到以下错误:

  

1046:未找到类型或不是编译时常量:无效。

我在这里做错了什么? (我在实时文档上修改了示例。)

2 个答案:

答案 0 :(得分:1)

虚空应该是小写的。

像这样:

void

答案 1 :(得分:1)

看起来(根据您的错误),就像您在这里遇到一些问题一样:

  1. ExternalInterface在AS3中有两个参数,而不是三个
  2. “Void”在AS3中应为“无效”
  3. 假设你的JavaScript代码是这样的:

    function myJSFunction()
    {
        myFlashObject.asFunc("Hello!");
    }
    
    function calc(s)
    {
        // ...
    }
    

    ...相应的ActionScript 3代码应该看起来像这样:

    import flash.external.ExternalInterface; 
    
    function myInitializationHandler():void
    {   
        ExternalInterface.addCallback("asFunc", asFunc); 
        myFlexButton.addEventListener(MouseEvent.CLICK, clickListener); 
    }
    
    function asFunc(str:String):void 
    { 
        //... 
    }
    
    function clickListener(event:MouseEvent):void 
    { 
        // ...
        ExternalInterface.call("calc", myFlexTextInput.text); 
    }
    

    有意义吗?