0

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

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:未找到类型或不是编译时常量:无效。

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

4

2 回答 2

1

void 应该是小写的。

像这样:

void
于 2009-01-12T20:24:02.830 回答
1

看起来(根据您的错误)您在这里有几个问题:

  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); 
}

有道理?

于 2009-01-12T20:36:18.857 回答