【问题标题】:External Interface Error外部接口错误
【发布时间】:2009-01-12 19:53:39
【问题描述】:

这是我用来在 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:类型未找到或不是编译时常量:Void。

我在这里做错了什么? (我修改了 live docs 上的示例。)

【问题讨论】:

    标签: javascript flash constants externalinterface


    【解决方案1】:

    Void 应该是小写的。

    像这样:

    void
    

    【讨论】:

      【解决方案2】:

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

      1. ExternalInterface 在 AS3 中采用两个参数,而不是三个
      2. “无效”在 AS3 中应为“无效”

      所以假设你的 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); 
      }
      

      有意义吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-11-06
        • 1970-01-01
        • 2010-11-05
        • 1970-01-01
        • 2011-01-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多