Erro Interface externa
-
22-07-2019 - |
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.)
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:
- ExternalInterface recebe dois argumentos em AS3, e não três
- "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