Język ActionScript umożliwia komunikację między aplikacjami Flash zlokalizowanymi na jednej stronie HTML. Do komunikowania się używamy klasy LocalConnection. Obiekty LocalConnection utworzone przy użyciu ActionScript 3.0 mogą komunikować się z obiektami LocalConnection utworzonymi za pomocą ActionScript 1.0 lub 2.0 i odwrotnie.
Aplikacja wysyłająca - nadajnik.swf
Aplikacja odbierająca - odbiornik.swf
W naszym przypadku mamy dwie aplikacje Flash - wysyłającą (nadajnik.swf) i odbierającą (odbiornik.swf). Skrypt pierwszy wysyła położenie kursora myszy, a skrypt odbierający otrzymuje dane myszy i ustawia obiekt (czerwone kółko) według otrzymanych danych.
nadajnik.swf - listing:
Mouse.hide(); var LC:LocalConnection = new LocalConnection(); addEventListener(Event.ENTER_FRAME, kursorMove); LC.addEventListener(StatusEvent.STATUS, onStatusHandler); function kursorMove(e:Event):void { kursor_mc.x = mouseX; kursor_mc.y = mouseY; LC.send("_connection", "connectionFunction", mouseX, mouseY); } function onStatusHandler(e:StatusEvent):void {};
Linia 1 - chowamy kursor myszki.
Linia 3 - definiujemy instancje klasy LocalConnection, służącą do komunikacji miedzy plikami .swf
Linia 5 - do sceny dodajemy metodę addEventListener, która po wywołaniu zdarzenia ENTER_FRAME wykona funkcję kursorMove. Zdarzenie ENTER_FRAME wykonywane jest w zależności od prędkości filmu (co każdą klatkę). W naszym przypadku prędkość Flasha to 30fps, więc funkcja kursorMove będzie wykonywana 30 razy na sekundę.
Linia 6 - do obiektu LC (LocalConnection) dodajemy metodę addEventListener, która po wykryciu zdarzenia StatusEvent.STATUS wykona funkcję onStatusHandler. Brak tej metody powoduję błąd kompilacji, wiec w tym przypadku dodano pustą funkcję.
Linia 8 - deklaracja funkcji kursorMove.
Linia 9-10 - ustawiamy obiekt kursor_mc (czerwone kółko) według współrzędnych myszki.
Linia 11 - wysyłamy dane połączeniem o nazwie "_connection" do funkcji connectionFunction wraz z dwoma parametrami: mouseX i mouseY (współrzędne myszki). Nazwa połączenia oraz nazwa funkcji zdeklarowana jest w aplikacji odbierającej dane.
Linia 14 - pusta funkcja onStatusHandler.
odbiornik.swf - listing:
var LC:LocalConnection = new LocalConnection(); LC.connect("_connection"); LC.client = this; LC.addEventListener(StatusEvent.STATUS, onStatusHandler); function connectionFunction(myszX:Number, myszY:Number) { kursor_mc.x = myszX; kursor_mc.y = myszY; } function onStatusHandler(e:StatusEvent):void {};
Linia 1 - definiujemy instancje klasy LocalConnection, służącą do komunikacji miedzy plikami .swf
Linia 2 - ustanawiamy połączenie LocalConnection o nazwie "_connection".
Linia 3 - wskazuje metody wywołań zwrotnych obiektu, jakie powinny być używane. W tym przypadku domyślnym obiektem jest tworzone połączenie lokalne.
Linia 4 - do obiektu LC (LocalConnection) dodajemy metodę addEventListener, która po wykryciu zdarzenia StatusEvent.STATUS wykona funkcję onStatusHandler. Brak tej metody powoduję błąd kompilacji, wiec w tym przypadku dodano pustą funkcję.
Linia 6 - deklaracja funkcji connectionFunction, która zostanie wywołana przez aplikację wysyłającą (nadajnik.swf) wraz z dwoma parametrami funkcji.
Linia 7-8 - ustawiamy obiekt kursor_mc (czerwone kółko) według współrzędnych otrzymanych od aplikacji wysyłającej (nadajnik.swf)
Linia 11 - pusta funkcja onStatusHandler.
Przedstawiony tutaj przykład opisuje komunikację dwóch plików jedynie w jedną stronę. Komunikacja obustronna jest analogiczna do podanego wyżej przykładu, z tym, że tworzymy wtedy dwa połączenia LocalConnection pod dwiema różnymi nazwami.






