Ошибка внешнего интерфейса - PullRequest
0 голосов
/ 12 января 2009

Это код, который я использую для вызова функции 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: Тип не найден или не являлся константой времени компиляции: Void.

Что я здесь не так делаю? (Я изменил пример на живых документах.)

Ответы [ 2 ]

1 голос
/ 12 января 2009

Похоже (по вашей ошибке) у вас есть пара проблем:

  1. ExternalInterface принимает два аргумента в AS3, а не три
  2. «Void» должно быть «void» в 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); 
}

Имеет смысл?

1 голос
/ 12 января 2009

Void должен быть в нижнем регистре.

Как это:

void
...