Det finns många Web-programmering situationer som kräver att information skall skickas mellan klient -side JavaScript och inbäddade Flash-innehåll . Före frigörandet av Flash 8 , kan programmerare använder metoder som getURL ( ) och SetVariable () . Innehåller dock frisläppandet av Flash 8 en ny klass ägnas särskilt åt att kommunicera med funktioner utanför Flash ( se Referenser 1) . Använda klassen ExternalInterface i Flash 8 är nu det mest effektiva sättet att integrera Flash i en webbplats som använder Javascript .
Du behöver :
Adobe Flash Professional CS5
. Textredigerare
1
Ställ in följande parameter mellan "objektet " taggarna i den inbäddade koden på HTML-dokumentet : .
Detta garanterar att din Flash- film kommer att tillåtas att kommunicera med Javascript medan du testa den lokalt ( se Referenser 1 , sidan 2) . När du publicerar , kan du ändra värdet till " sameDomain " för att förhindra missbruk av din SWF -fil av tredje parts webbplatser.
2
Inkludera ExternalInterface klassen i ActionScript-koden av din Flash -fil med följande kommando : .
import blixt . externa . * ;
( se Referenser 1 , sidan 5 )
3
Skriv en JavaScript-funktion i HTML- dokument som tar minst ett argument och . returnerar ett värde. Du behöver inte skriva någon särskild Javascript -kod för att ringa denna funktion från Flash 8 .
4 .
Använd ExternalInterface. call () i ActionScript att ringa upp din JavaScript-funktionen från inbäddad Flash-film . Den första parametern i denna metod är JavaScript-funktionen namn som en sträng , och du kan följa det med så många parametrar som du vill passera utanför till funktionen , alla separerade med kommatecken. En allmän form av denna inbjudan är :
ExternalInterface. call ( functionName , parameter1 , parameter2 . . . )
( se Referenser 1 , sidan 5 ) .
5 .
Använd en vanlig operatör variabeltilldelning i ActionScript -koden för att hämta det returnerade värdet från javascript-funktion, precis som du skulle med vilken annan funktion :
ReturnedValue=ExternalInterface . samtalet ( functionName , parameter1 , parameter2 . . . ) .
6
använda ActionScript s Typecasting metoder på ExternalInterface ringa om du stöter på problem med den typ av värde Javascript avkastning . Int () och String ( ) är typiska exempel ( se Referenser 2) .
7 .
Använd addCallback () för klassen ExternalInterface att göra metoder i ActionScript tillgängliga för externa Javascripts ( se Referenser 1 , sidan 6) . Den addCallback () har följande allmänna form :
ExternalInterface . addCallback ( ExternalName , instans InternalName )
ExternalName är det namn som funktionen kan kallas från Javascript , och InternalName är namnet på funktionen i ActionScript. Den " rätten " parameter används för att ange upplösningen av " denna " sökord, och är vanligtvis satt till " null " .
8 .
Ring din ActionScript-funktion från JavaScript med namnet du har angett för " ExternalName " i addCallback metod , som föregås av en giltig DOM hänvisning till Flash-filmen . Till exempel :
window. document. flashMovie. flashFunctionName ( parameter1 , parameter2 . . . ) ;
Se avsnittet Resurser för en mer ingående diskussion av giltiga DOM referenser , och se till att testa din kod i flera webbläsare för att se Flash-filmen refereras korrekt .