Question

C’est le code que j’utilise pour appeler une fonction 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);
}

mais j'obtiens l'erreur suivante:

  

1046: Le type n'a pas été trouvé ou n'était pas une constante de compilation: vide.

Qu'est-ce que je fais mal ici? (J'ai modifié l'exemple sur Live Docs.)

Était-ce utile?

La solution

Nul devrait être en minuscule.

Comme ceci:

void

Autres conseils

On dirait (par votre erreur) que vous avez quelques problèmes ici:

  1. ExternalInterface prend deux arguments en AS3, pas trois
  2. " Annuler " devrait être "vide" dans AS3

En supposant que votre code JavaScript ressemble à ceci:

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

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

... votre code ActionScript 3 correspondant devrait ressembler davantage à ceci:

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

Avez-vous du sens?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top