Erreur d'interface externe
-
22-07-2019 - |
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.)
La solution
Nul devrait être en minuscule.
Comme ceci:
void
Autres conseils
On dirait (par votre erreur) que vous avez quelques problèmes ici:
- ExternalInterface prend deux arguments en AS3, pas trois
- " 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