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).

¿Fue útil?

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í:

  1. ExternalInterface toma dos argumentos en AS3, no tres
  2. " 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
scroll top