Come utilizzare JavaScript con Flash

April 12

Ci sono molte situazioni Web-programmazione che richiedono informazioni da trasmettere tra Javascript lato client e contenuto Flash incorporato. Prima del rilascio di Flash 8, i programmatori possono utilizzare metodi come getURL () e SetVariable (). Tuttavia, il rilascio di Flash 8 include una nuova classe dedicata specificamente alla comunicazione con funzioni fuori da Flash (vedi Bibliografia 1). Uso della classe ExternalInterface in Flash 8 è oggi il modo più efficace per integrare Flash in un sito web che utilizza Javascript.

istruzione

1 Impostare il seguente parametro tra i tag "oggetto" nel codice embed del documento HTML:

<Param name = "allowScriptAccess" value = "always" />

Questo farà sì che il vostro filmato Flash sarà permesso di comunicare con Javascript, mentre si prova a livello locale (vedi Bibliografia 1, pagina 2). Quando si pubblica, è possibile modificare il valore di "sameDomain" per prevenire abusi del file SWF da siti web di terze parti.

2 Includere la classe ExternalInterface nel codice Actionscript del file Flash con il seguente comando:

import flash.external. *;

(Vedi Bibliografia 1, pagina 5).

3 Scrivere una funzione JavaScript nel documento HTML che richiede almeno un argomento e restituisce un valore. Non avrete bisogno di scrivere alcun codice speciale Javascript per chiamare questa funzione da Flash 8.

4 Utilizzare il metodo ExternalInterface.call () in ActionScript per chiamare la funzione JavaScript dal filmato Flash incorporato. Il primo parametro di questo metodo è il nome della funzione JavaScript come una stringa, e si può seguire con il maggior numero di parametri che si desidera passare al di fuori alla funzione, separate da virgole. Una forma generale del presente invito è:

ExternalInterface.call (FunctionName, Parametro1, Parametro2, ...)

(Vedi Bibliografia 1, pagina 5).

5 Utilizzare un normale operatore di assegnazione variabile nel codice ActionScript per recuperare il valore restituito dalla funzione JavaScript, proprio come si farebbe con qualsiasi funzione:

ReturnedValue = ExternalInterface.call (FunctionName, Parametro1, Parametro2, ...);

6 metodi typecasting di utilizzare ActionScript sulla chiamata ExternalInterface se si esegue in problemi con il tipo di valore ritorna Javascript. Int () e String () sono esempi tipici (vedi Bibliografia 2).

7 Utilizzare il metodo addCallback () della classe ExternalInterface per rendere metodi ActionScript accessibile a Javascripts esterni (vedi Bibliografia 1, pagina 6). Il metodo addCallback () ha la seguente forma generale:

ExternalInterface.addCallback (ExternalName, istanza, InternalName)

ExternalName è il nome con cui la funzione può essere chiamata da JavaScript e InternalName è il nome della funzione in ActionScript. Il parametro "Istanza" viene utilizzato per specificare la risoluzione della "questo" parola chiave, e di solito è impostato su "null".

8 Chiamate il vostro funzione ActionScript da JavaScript utilizzando il nome specificato per "ExternalName" nel metodo addCallback, preceduta da un riferimento DOM valida per il filmato Flash. Per esempio:

window.document.flashMovie.flashFunctionName (Parametro1, Parametro2, ...);

Vedere la sezione Risorse per una discussione più approfondita di riferimenti DOM validi, ed essere sicuri di testare il codice in più browser per garantire il filmato Flash viene fatto riferimento in modo corretto.