Error de interfaz externa
-
22-07-2019 - |
Pregunta
Este es el código que estoy usando para llamar a una función calc
en 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);
}
pero recibo el siguiente error:
1046: no se encontró el tipo o no era una constante de tiempo de compilación: nulo.
¿Qué estoy haciendo mal aquí? (Modifiqué el ejemplo en documentos en vivo).
Solución
El vacío debe estar en minúsculas.
Me gusta esto:
void
Otros consejos
Parece (por su error) que tiene un par de problemas aquí:
- ExternalInterface toma dos argumentos en AS3, no tres
- " nulo " debe estar "vacío" en AS3
Entonces, suponiendo que su código JavaScript fuera algo así:
function myJSFunction()
{
myFlashObject.asFunc("Hello!");
}
function calc(s)
{
// ...
}
... su código correspondiente de ActionScript 3 debería parecerse más a esto:
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);
}
¿Tiene sentido?
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow