Hvordan bruke Javascript med Flash

Det er mange web-programmering situasjoner som krever informasjon som skal sendes mellom klient-side Javascripts og innebygd Flash-innhold. Før utgivelsen av Flash 8, kan programmerere bruke metoder som getURL () og setVariable (). Men utgivelsen av Flash 8 inneholder en ny klasse viet spesielt til å kommunisere med funksjoner utenom Flash (se referanser 1). Bruke ExternalInterface klasse i Flash 8 er nå den mest effektive måten å integrere Flash i en webside som bruker Javascript.

Bruksanvisning

1 Sett følgende parameter mellom "objekt" tags i koden i HTML-dokumentet:

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

Dette vil sikre at din Flash filmen vil få lov til å kommunisere med Javascript mens du teste den lokalt (se referanser 1, side 2). Når du publiserer, kan du endre verdien til "samedomain" for å hindre mistenkelig bruk av SWF-fil av tredjeparts nettsteder.

2 Inkluder ExternalInterface klasse i Actionscript-koden din Flash-fil med følgende kommando:

import flash.external. *;

(Se referanser 1, side 5).

3 Skriv en Javascript-funksjonen i HTML-dokument som tar minst ett argument og returnerer en verdi. Du trenger ikke å skrive noen spesiell Javascript-kode for å kalle denne funksjonen fra Flash 8.

4 Bruk ExternalInterface.call () metoden i Action å ringe Javascript-funksjonen fra den innebygde Flash movie. Den første parameteren med denne metoden er Javascript-funksjonen navn som en streng, og du kan følge den med så mange parametere som du ønsker å passere utenfor til funksjonen, alle atskilt med komma. En generell form for denne samtalen er:

ExternalInterface.call (function, parameter1, parameter2, ...)

(Se referanser 1, side 5).

5 Bruk vanlig variabel oppdrag operatør i Actionscript-koden for å hente returverdien fra Javascript-funksjonen, akkurat som du ville gjort med en hvilken som helst funksjon:

ReturnedValue = ExternalInterface.call (function, parameter1, parameter2, ...);

6 Bruk Actionscript er typecasting metoder på ExternalInterface samtale hvis du får problemer med den type verdiJavaScript avkastning. Int () og String () er typiske eksempler (se referanser 2).

7 Bruk addCallback () metoden i ExternalInterface klassen å gjøre metoder i Actionscript tilgjengelige for eksterne Javascripts (se referanser 1, side 6). Den addCallback () metoden har følgende generelle form:

ExternalInterface.addCallback (ExternalName, Instance, Internt navn)

ExternalName er det navn som funksjonen kan kalles fra Javascript, og Internt navn er navnet på funksjonen i Actionscript. Den "Forekomst" parameteren brukes til å angi oppløsningen av "denne" søkeord, og er vanligvis satt til "null".

8 Ring Action funksjon fra Javascript bruke navnet du angav for "ExternalName" i addCallback metoden, innledes med en gyldig DOM referanse til Flash movie. For eksempel:

window.document.flashMovie.flashFunctionName (parameter1, parameter2, ...);

Se Resources for en mer inngående drøfting av gyldige DOM referanser, og sørg for å teste koden i flere nettlesere for å sikre Flash-filmen er referert riktig.