Chiamate al codice esterno da ActionScript

Il metodo ExternalInterface.call() esegue il codice nell'applicazione contenitore. Richiede almeno un parametro, ovvero una stringa che contiene il nome della funzione da chiamare nell'applicazione contenitore. Tutti gli eventuali parametri aggiuntivi passati al metodo ExternalInterface.call() vengono passati al contenitore come parametri della chiamata alla funzione.

// Chiama la funzione esterna "addNumbers"
// passando due parametri e assegnando il risultato della funzione
// alla variabile "result"
var param1:uint = 3;
var param2:uint = 7;
var result:uint = ExternalInterface.call("addNumbers", param1, param2);

Se il contenitore è una pagina HTML, questo metodo richiama la funzione JavaScript con il nome specificato, che deve essere definita in un elemento script presente nella pagina HTML contenitore. Il valore restituito dalla funzione JavaScript viene ripassato ad ActionScript.

<script language="JavaScript">
    // Aggiunge due numeri e reinvia il risultato ad ActionScript
    function addNumbers(num1, num2)
    {
        return (num1 + num2);
    }
</script>

Se il contenitore è un altro contenitore ActiveX, questo metodo fa in modo che il controllo ActiveX di Flash Player invii il proprio evento FlashCall. Il nome di funzione specificato e tutti gli eventuali parametri vengono serializzati in una stringa XML da Flash Player. Il contenitore può accedere a queste informazioni nella proprietà request dell'oggetto evento e utilizzarle per determinare come eseguire il proprio codice. Per restituire un valore ad ActionScript, il codice del contenitore chiama il metodo SetReturnValue() dell'oggetto ActiveX, passando il risultato (serializzato in una stringa XML) come parametro di tale metodo. Per ulteriori informazioni sul formato XML utilizzato per questa comunicazione, vedere Il formato XML dell'API esterna.

Se il contenitore è un browser Web o un altro contenitore ActiveX, se la chiamata non riesce o se il metodo container non specifica un valore da restituire, viene restituito null. Il metodo ExternalInterface.call() genera un'eccezione SecurityError se l'ambiente contenitore appartiene a una funzione di sicurezza sandbox a cui il codice chiamante non ha accesso. Per ovviare a questo inconveniente è possibile impostare un valore adeguato per allowScriptAccess nell'ambiente contenitore. Ad esempio, per modificare il valore di allowScriptAccess in una pagina HTML, si modifica l'attributo appropriato nei tag object ed embed.


Flash CS3

 

Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti

Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/main/00000342.html