Pergunta

Este é o código que estou usando para chamar um calc função em 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);
}

mas eu recebo o seguinte erro:

1046: Tipo não foi encontrado ou não foi uma constante em tempo de compilação:. Vazio

O que estou fazendo de errado aqui? (Eu modifiquei o exemplo de docs ao vivo.)

Foi útil?

Solução

Vazio deve estar em letras minúsculas.

Como esta:

void

Outras dicas

Looks (por seu erro) como você tem um par de problemas aqui:

  1. ExternalInterface recebe dois argumentos em AS3, e não três
  2. "Vazio" deve ser "vazio" em AS3

Assim, supondo que o seu código de JavaScript foram algo como isto:

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

function calc(s)
{
    // ...
}

... o seu correspondente código ActionScript 3 deve ser algo mais parecido com isto:

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

faz sentido?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top