Errore di interfaccia esterna
-
22-07-2019 - |
Domanda
Questo è il codice che sto usando per chiamare una funzione calc
in 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);
}
ma viene visualizzato il seguente errore:
1046: il tipo non è stato trovato o non era una costante di compilazione: Void.
Cosa sto facendo di sbagliato qui? (Ho modificato l'esempio sui documenti live.)
Soluzione
Il vuoto deve essere minuscolo.
In questo modo:
void
Altri suggerimenti
Sembra (per errore) che tu abbia un paio di problemi qui:
- ExternalInterface accetta due argomenti in AS3, non tre
- " Void " dovrebbe essere "vuoto" in AS3
Quindi supponendo che il tuo codice JavaScript fosse qualcosa del genere:
function myJSFunction()
{
myFlashObject.asFunc("Hello!");
}
function calc(s)
{
// ...
}
... il codice ActionScript 3 corrispondente dovrebbe assomigliare di più a questo:
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);
}
Ha senso?
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow