Środowisko AIR rozszerza element script HTML tak, że strona może importować klasy ActionScript do skompilowanego pliku SWF. Na przykład: aby zaimportować bibliotekę o nazwie
myClasses.swf
umieszczoną w podkatalogu
lib
głównego folderu aplikacji, należy umieścić poniższy znacznik script w pliku HTML:
<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script>
Ważne:
Atrybut type biblioteki musi mieć wartość
type="application/x-shockwave-flash"
, aby biblioteka została poprawnie załadowana
.
Jeśli zawartość SWF została skompilowana do pliku SWF programu Flash Player 10 lub środowiska AIR 1.5, należy wówczas ustawić przestrzeń nazw XML pliku deskryptora aplikacji na przestrzeń nazw środowiska AIR 1.5.
W czasie pakowania pliku AIR należy dołączyć także katalog
lib
i plik
myClasses.swf
.
Dostęp do zaimportowanych klas za pomocą właściwości
runtime
obiektu Window JavaScript:
var libraryObject = new window.runtime.LibraryClass();
Jeśli klasy w pliku SWF zostały zorganizowane w pakiety, należy dołączyć także nazwę pakietu. Na przykład: jeśli definicja klasy LibraryClass znajduje się w pakiecie o nazwie
utilities
, instancję klasy należy utworzyć za pomocą następującej instrukcji:
var libraryObject = new window.runtime.utilities.LibraryClass();
Uwaga:
Aby skompilować bibliotekę SWF ActionScript w celu użycia jako części strony HTML w środowisku AIR, należy użyć kompilatora
acompc
. Narzędzie acompc jest częścią pakietu Flex SDK i zostało opisane w dokumentacji tego pakietu.
Uzyskiwanie dostępu do modelu DOM HTML i obiektów JavaScript z zaimportowanego pliku ActionScript
Aby uzyskać dostęp do obiektów na stronie HTML z kodu ActionScript pliku SWF zaimportowanego na stronę z użyciem znacznika
<script>
, należy przekazać odwołanie do obiektu JavaScript (np.
window
lub
document
) do funkcji zdefiniowanej w kodzie ActionScript. Do dostępu do obiektu JavaScript (lub innych obiektów, do których dostęp można uzyskać przez przekazanie odwołania) służy odwołanie w funkcji.
Rozważmy na przykład następującą stronę HTML:
<html>
<script src="ASLibrary.swf" type="application/x-shockwave-flash"></script>
<script>
num = 254;
function getStatus() {
return "OK.";
}
function runASFunction(window){
var obj = new runtime.ASClass();
obj.accessDOM(window);
}
</script>
<body onload="runASFunction">
<p id="p1">Body text.</p>
</body>
</html>
Prosta strona HTML zawiera zmienną JavaScript o nazwie
num
oraz funkcję JavaScript o nazwie
getStatus()
. Obie są właściwościami obiektu
window
strony. Obiekt
window.document
zawiera element o nazwie P (z ID
p1
).
Strona ładuje plik ActionScript „ASLibrary.swf”, który zawiera klasę ASClass. Klasa ASClass definiuje funkcję o nazwie
accessDOM()
, która wyświetla wartości obiektów JavaScript. Metoda
accessDOM()
przyjmuje jako argument obiekt Window JavaScript. Za pomocą odwołania Window można uzyskać dostęp do innych obiektów na stronie łącznie ze zmiennymi, funkcjami i elementami DOM, co ilustruje poniższa definicja:
public class ASClass{
public function accessDOM(window:*):void {
trace(window.num); // 254
trace(window.document.getElementById("p1").innerHTML); // Body text..
trace(window.getStatus()); // OK.
}
}
Możliwe jest pobranie i ustawienie właściwości strony HTML z zaimportowanej klasy ActionScript. Na przykład: poniższa funkcja ustawia na stronie treść elementu
p1
oraz wartość zmiennej JavaScript
foo
:
public function modifyDOM(window:*):void {
window.document.getElementById("p1").innerHTML = "Bye";
window.foo = 66;