2009-01-12 8 views
0

C'est le code que je utilise pour appeler une fonction javascript calc:Interface externe Erreur

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 je reçois l'erreur suivante:

1046: Type was not found or was not a compile-time constant: Void.

ce que je fais mal ici? (J'ai modifié l'exemple sur docs en direct.)

Répondre

1

L'annulation doit être en minuscules.

Comme ceci:

void 
1

Looks (par votre erreur) comme vous avez quelques problèmes ici:

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

Donc, en supposant que votre code JavaScript était quelque chose comme ceci:

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

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

... votre code ActionScript 3 correspondant devrait ressembler à quelque chose comme 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); 
} 

sens?