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:

  1. Mouse.hide();
  2.  
  3. var LC:LocalConnection = new LocalConnection();
  4.  
  5. addEventListener(Event.ENTER_FRAME, kursorMove);
  6. LC.addEventListener(StatusEvent.STATUS, onStatusHandler);
  7.  
  8. function kursorMove(e:Event):void {
  9. kursor_mc.x = mouseX;
  10. kursor_mc.y = mouseY;
  11. LC.send("_connection", "connectionFunction", mouseX, mouseY);
  12. }
  13.  
  14. function onStatusHandler(e:StatusEvent):void {};
  15.  

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:

  1. var LC:LocalConnection = new LocalConnection();
  2. LC.connect("_connection");
  3. LC.client = this;
  4. LC.addEventListener(StatusEvent.STATUS, onStatusHandler);
  5.  
  6. function connectionFunction(myszX:Number, myszY:Number) {
  7. kursor_mc.x = myszX;
  8. kursor_mc.y = myszY;
  9. }
  10.  
  11. function onStatusHandler(e:StatusEvent):void {};
  12.  

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.

Dodaj do:
  • Facebook
  • Twitter
  • Śledzik
  • Blip
  • Wykop
  • Flaker
  • Grono
  • MySpace
  • Google Bookmarks
  • Print
  • email
  • PDF

Podobne wpisy:

  1. Ruch wielu obiektów w ActionScript (Flash, AS3) cz. I
  2. Jak pobrać adres URL strony, na której jest osadzony plik Flash (AS3) ?
  3. Pełny ekran we Flashu (AS3)
  4. Obsługa kamery we Flashu (AS3)
Tagi:  

Dodaj komentarz

*