Flash As3 Programming

768
 Programowanie w języku  ADOBE ®  ACTIONSCRIPT ®  3.0

Transcript of Flash As3 Programming

Programowanie w jzyku ADOBE ACTIONSCRIPT 3.0

2008 Adobe Systems Incorporated. Wszelkie prawa zastrzeone.Prawa autorskie

Programowanie w jzyku Adobe ActionScript 3.0 dla rodowiska Adobe Flash Jeli niniejszy podrcznik jest rozpowszechniany razem z oprogramowaniem zawierajcym licencj dla uytkownika kocowego, to podrcznik ten, jak rwnie opisane w nim oprogramowanie, udostpniane jest na licencji i moe by uywany i kopiowany tylko zgodnie z warunkami tej licencji. Poza sytuacjami dozwolonymi przez postanowienia licencji, zabronione jest powielanie, przechowywanie w systemie dostpu lub transmisja jakiejkolwiek czci niniejszej publikacji, w dowolnej formie i dowoln metod, elektroniczn, mechaniczn, w drodze nagrania lub w inny sposb, bez uprzedniego pisemnego zezwolenia Adobe Systems Incorporated. Zawarto tego podrcznika chroniona jest prawami autorskimi, nawet jeli nie jest rozpowszechniana z oprogramowaniem zawierajcym licencj uytkownika. Zawarto tego podrcznika udostpniana jest tylko w celach informacyjnych, moe ulec zmianie bez powiadomienia i nie moe by interpretowana jako zobowizanie ze strony Adobe Systems Incorporated. Adobe Systems Incorporated nie przyjmuje adnej odpowiedzialnoci ani zobowiza z tytuu bdw lub niedokadnych informacji, jakie mog pojawi si w tej ksice. Prosz pamita, e istniejca grafika lub obrazki, ktre uytkownik zechce umieci w swoim projekcie, mog by chronione prawami autorskimi. Nieupowanione uycie takiego materiau we wasnej pracy moe stanowi naruszenie praw autorskich jego waciciela. Prosz pamita o uzyskaniu wszystkich niezbdnych zezwole od posiadacza praw autorskich. Wszelkie odwoania do nazw firm w zaczonych szablonach maj cel wycznie demonstracyjny i nie odnosz si do jakichkolwiek istniejcych organizacji. Adobe, the Adobe logo, Adobe AIR, ActionScript, Flash, Flash Lite, Flex, Flex Builder, MXML, and Pixel Bender are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries. ActiveX and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and other countries. Macintosh is a trademark of Apple Inc., registered in the United States and other countries. Java is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries. All other trademarks are the property of their respective owners. This product includes software developed by the Apache Software Foundation (http://www.apache.org/). MPEG Layer-3 audio compression technology licensed by Fraunhofer IIS and Thomson Multimedia (http://www.mp3licensing.com) Speech compression and decompression technology licensed from Nellymoser, Inc. (www.nellymoser.com). Video compression and decompression is powered by On2 TrueMotion video technology. 1992-2005 On2 Technologies, Inc. All Rights Reserved. http://www.on2.com. This product includes software developed by the OpenSymphony Group (http://www.opensymphony.com/). This product contains either BSAFE and/or TIPEM software by RSA Security, Inc. Sorenson Spark video compression and decompression technology licensed from Sorenson Media, Inc. Adobe Systems Incorporated, 345 Park Avenue, San Jose, California 95110, USA Notice to U.S. government end users. The software and documentation are Commercial Items, as that term is defined at 48 C.F.R. 2.101, consisting of Commercial Computer Software and Commercial Computer Software Documentation, as such terms are used in 48 C.F.R. 12.212 or 48 C.F.R. 227.7202, as applicable. Consistent with 48 C.F.R. 12.212 or 48 C.F.R. 227.7202-1 through 227.7202-4, as applicable, the Commercial Computer Software and Commercial Computer Software Documentation are being licensed to U.S. Government end users (a) only as Commercial items and (b) with only those rights as are granted to all other end users pursuant to the terms and conditions herein. Unpublished-rights reserved under the copyright laws of the United States. Adobe Systems Incorporated, 345 Park Avenue, San Jose, CA 95110-2704, USA. For U.S. Government End Users, Adobe agrees to comply with all applicable equal opportunity laws including, if appropriate, the provisions of Executive Order 11246, as amended, Section 402 of the Vietnam Era Veterans Readjustment Assistance Act of 1974 (38 USC 4212), and Section 503 of the Rehabilitation Act of 1973, as amended, and the regulations at 41 CFR Parts 60-1 through 60-60, 60-250 ,and 60-741. The affirmative action clause and regulations contained in the preceding sentence shall be incorporated by reference.

iii

Spis treciRozdzia 1: Informacje o tym podrczniku Korzystanie z tego podrcznika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Dostp do dokumentacji jzyka ActionScript ........................................................................... 2 ...................................................................... 3 Zasoby edukacyjne dotyczce jzyka ActionScript

Rozdzia 2: Wprowadzenie do jzyka ActionScript 3.0 Informacje o jzyku ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Zalety jzyka ActionScript 3.0 .......................................................................................... 4 .................................................................................. 5 ..................................................................................... 8 Co nowego w jzyku ActionScript 3.0 Zgodno z poprzednimi wersjami

Rozdzia 3: Pierwsze kroki w jzyku ActionScript Podstawy programowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Praca z obiektami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Typowe elementy programu

Przykad: animowana prezentacja prac Tworzenie wasnych klas

Budowanie aplikacji w jzyku ActionScript Przykad:tworzenie prostej aplikacji

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Uruchamianie nastpnych przykadw

Rozdzia 4: Jzyk ActionScript i jego skadnia Przegld jzyka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Obiekty i klasy Zmienne Skadnia Operatory Ptle Funkcje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Pakiety i przestrzenie nazw Typy danych

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Instrukcje warunkowe

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

Rozdzia 5: Programowanie zorientowane obiektowo w jzyku ActionScript Podstawy projektowania zorientowanego obiektowo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Klasy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Interfejsy

Dziedziczenie

Tematy zaawansowane

Przykad: GeometricShapes

Rozdzia 6: Praca z datami i czasem Podstawy obsugi dat i czasu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Zarzdzanie datami kalendarzowymi i godzinami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

PROGRAMOWANIE W JZYKU ACTIONSCRIPT 3.0 DLA RODOWISKA FLASH ivSpis treci

Sterowanie przedziaami czasu Przykad: prosty zegar analogowy

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

Rozdzia 7: Praca z cigami znakw Podstawowe informacje o cigach znakw Tworzenie cigw znakw Waciwo length

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

Operowanie na znakach w cigu znakw Porwnywanie cigw znakw Konkatenowanie cigw znakw

Uzyskiwanie cigu znakw reprezentujcego inny obiekt Znajdowanie podcigw i wzorcw w cigach znakw Zmiana wielkoci liter w cigach znakw Przykad: pseudografika ASCII

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

Rozdzia 8: Praca z tablicami Podstawy tablic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 Tablice indeksowane Tablice asocjacyjne Klonowanie tablic Przykad: PlayList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

Tablice wielowymiarowe Tematy zaawansowane

Rozdzia 9: Obsuga bdw Podstawy obsugi bdw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Typy bdw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Obsuga bdw w jzyku ActionScript 3.0 Obsuga bdw synchronicznych w aplikacji Tworzenie niestandardowych klas bdu Reagowanie na zdarzenia bdu i status Porwnywanie klas Error Przykad: aplikacja CustomErrors

Praca z programem Flash Player i rodowiskiem AIR w wersji debugera

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

Rozdzia 10: Korzystanie z wyrae regularnych Podstawy wyrae regularnych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 Skadnia wyrae regularnych Przykad: analizator skadni Wiki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Metody do uywania wyrae regularnych z cigami znakw

Rozdzia 11: Praca z danymi XML Podstawy jzyka XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 E4X strategia przetwarzania danych XML Obiekty XML Obiekty XMLList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

Inicjowanie zmiennych XML

Skadanie i transformowanie obiektw XML

PROGRAMOWANIE W JZYKU ACTIONSCRIPT 3.0 DLA RODOWISKA FLASH vSpis treci

Przegldanie struktur XML Konwersja typw XML

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

Korzystanie z przestrzeni nazw XML

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

Odczytywanie zewntrznych dokumentw XML Przykad: adowanie danych RSS z Internetu

Rozdzia 12: Obsuga zdarze Podstawy obsugi zdarze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Rnice obsugi zdarze w jzyku ActionScript 3.0 oraz w innych wersjach tego jzyka Strumie zdarzenia Obiekty zdarze Detektory zdarze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

Przykad: Alarm Clock

Rozdzia 13: Programowanie wywietlania Podstawy programowania wywietlania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 Gwne klasy wywietlania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 Zalety stosowania listy wywietlania Praca z obiektami wywietlanymi Animowanie obiektw Przykad: SpriteArranger

Manipulowanie obiektami wywietlanymi

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

Dynamiczne adowanie treci wywietlanych

Rozdzia 14: Korzystanie z rysunkowego interfejsu API Podstawy korzystania z rysunkowego interfejsu API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 Omwienie klasy Graphics Rysowanie linii i krzywych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343

Rysowanie ksztatw przy uyciu metod wbudowanych Tworzenie linii i wypenie gradientowych Zastosowanie klasy Math z metodami rysujcymi Animacja przy uyciu rysunkowego interfejsu API

Przykad: algorytmiczny generator efektw wizualnych Rysowanie cieek

Zaawansowane zastosowania rysunkowego interfejsu API Definiowanie regu zawijania

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350

Korzystanie z klas danych graficznych Korzystanie z metody drawTriangles()

Rozdzia 15: Praca z obiektami geometrycznymi Podstawy geometrii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 Korzystanie z obiektw Point Korzystanie z obiektw Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 Korzystanie z obiektw Rectangle

Przykad: zastosowanie transformacji macierzowej do obiektu wywietlanego

PROGRAMOWANIE W JZYKU ACTIONSCRIPT 3.0 DLA RODOWISKA FLASH viSpis treci

Rozdzia 16: Filtrowanie obiektw wywietlanych Podstawy filtrowania obiektw wywietlanych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 Tworzenie i stosowanie filtrw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 Dostpne filtry obiektw wywietlanych Przykad: Aplikacja Filter Workbench

Rozdzia 17: Praca z moduami cieniujcymi Pixel Bender Podstawowe informacje o moduach cieniujcych Pixel Bender adowanie lub osadzanie moduu cieniujcego Dostp do metadanych moduu cieniujcego Korzystanie z moduu cieniujcego

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401

Okrelanie wartoci danych wejciowych i parametrw moduu cieniujcego

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406

Rozdzia 18: Praca z klipami filmowymi Podstawy klipw filmowych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 Praca z obiektami MovieClip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 Sterowanie odtwarzaniem klipu filmowego adowanie zewntrznego pliku SWF Przykad: RuntimeAssetsExplorer

Tworzenie obiektw MovieClip za pomoc kodu ActionScript

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427

Rozdzia 19: Praca z animacjami ruchu Podstawy animacji ruchu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431 Kopiowanie skryptw animacji ruchu Uwzgldnianie skryptw animacji ruchu Opisywanie animacji Dodawanie filtrw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438

Kojarzenie animacji ruchu z jej obiektami wywietlanymi Rozdzia 20: Praca z kinematyk odwrotn Podstawowe informacje o kinematyce odwrotnej Przegld animacji szkieletw IK Pobieranie informacji o szkielecie IK Poruszanie szkieletem IK Korzystanie ze zdarze IK

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442

Tworzenie instancji klasy IK Mover i ograniczanie jej ruchu

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443

Rozdzia 21: Praca z tekstem Podstawy pracy z tekstem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 Korzystanie z klasy TextField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 Korzystanie z mechanizmu Flash Text Engine

Rozdzia 22: Praca z bitmapami Podstawy pracy z bitmapami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496 Klasy Bitmap i BitmapData Manipulowanie pikselami Kopiowanie danych bitmapy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504

Tworzenie tekstur za pomoc funkcji szumw

PROGRAMOWANIE W JZYKU ACTIONSCRIPT 3.0 DLA RODOWISKA FLASH viiSpis treci

Przewijanie bitmap

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507

Korzyci pynce ze stosowania mipmappingu Przykad: animowany wirujcy ksiyc

Rozdzia 23: Praca w trzech wymiarach (3D) Podstawy grafiki trjwymiarowej . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 Omwienie funkcji trjwymiarowych programu Flash Player i rodowiska wykonawczego AIR Tworzenie obiektw 3D i poruszanie nimi Rzutowanie obiektw 3D na paszczyzn 2D Przykad: rzut perspektywiczny Zoone transformacje trjwymiarowe . . . . . . . . . . . . . . . . . . . . . . . . . 519 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530

Uzyskiwanie efektw trjwymiarowych przy uyciu trjktw

Rozdzia 24: Praca z wideo Podstawy wideo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 Omwienie formatw wideo Omwienie klasy Video adowanie plikw wideo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556

Sterowanie odtwarzaniem wideo Strumieniowe przesyanie wideo Omwienie punktw sygnalizacji

Odtwarzanie wideo w trybie penoekranowym

Pisanie metod wywoania zwrotnego do obsugi metadanych i punktw sygnalizacji Korzystanie z punktw sygnalizacji i metadanych Przechwytywanie danych z kamery Wysyanie wideo do serwera Przykad: odtwarzacz wideo

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573

Pliki FLV zagadnienia zaawansowane

Rozdzia 25: Praca z dwikiem Podstawy pracy z dwikiem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 Omwienie architektury dwiku Praca z osadzonymi dwikami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 adowanie zewntrznych plikw dwikowych

Praca z przesyanymi strumieniowo plikami dwikw Praca z dwikiem generowanym dynamicznie Odtwarzanie dwikw

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595

Wzgldy bezpieczestwa podczas adowania i odtwarzania dwikw Sterowanie gonoci dwiku i panoramowaniem Praca z metadanymi dwikowymi

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599

Uzyskiwanie dostpu do nieprzetworzonych danych dwikowych Przechwytywanie wejcia dwikowego Przykad: Podcast Player

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602

Rozdzia 26: Interakcja z uytkownikiem Podstawy interakcji z uytkownikiem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610 Interakcja z klawiatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611

PROGRAMOWANIE W JZYKU ACTIONSCRIPT 3.0 DLA RODOWISKA FLASH viiiSpis treci

Interakcja z mysz

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617

Przykad: WordSearch

Rozdzia 27: Praca w sieci i komunikacja Podstawowe informacje o pracy w sieci i komunikacji Praca z danymi zewntrznymi Poczenia z gniazdami Praca z plikami danych

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624

czenie z innymi instancjami programu Flash Player lub programu AIR Zapisywanie danych lokalnie

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640

Przykad: Tworzenie klienta Telnet

Przykad: Wysyanie i pobieranie plikw

Rozdzia 28: rodowisko systemowe klienta Podstawowe informacje o rodowisku systemowym klienta Korzystanie z klasy System Korzystanie z klasy Capabilities Korzystanie z klasy IME

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674

Korzystanie z klasy ApplicationDomain

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669

Przykad: wykrywanie moliwoci systemu

Rozdzia 29: Kopiowanie i wklejanie Podstawy kopiowania i wklejania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678 Odczyt i zapis w schowku systemowym Formaty danych w schowku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679

Rozdzia 30: Drukowanie Podstawy drukowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684 Drukowanie strony . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692 Zadania w programie Flash Player i rodowisku AIR a drukowanie w systemie Ustawianie rozmiaru, skali i orientacji Przykad: drukowanie wielu stron

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690

Przykad: skalowanie, obcinanie i reagowanie

Rozdzia 31: Korzystanie z zewntrznego interfejsu API Podstawy korzystania z zewntrznego interfejsu API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695 Wymagania i zalety zewntrznego interfejsu API Korzystanie z klasy ExternalInterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708

Przykad: uycie zewntrznego interfejsu API z kontenerem strony sieci Web Przykad: uycie zewntrznego interfejsu API z kontenerem ActiveX

Rozdzia 32: Zabezpieczenia w programie Flash Player Przegld zabezpiecze w programie Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714 Obszary izolowane zabezpiecze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727 Mechanizmy sterowania uprawnieniami Zabezpieczenia trybu penoekranowego adowanie treci

Ograniczenia dostpu do sieciowych interfejsw API

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729

PROGRAMOWANIE W JZYKU ACTIONSCRIPT 3.0 DLA RODOWISKA FLASH ixSpis treci

Odwoania do skryptw midzy plikami Zaadowane multimedia jako dane adowanie danych

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744

adowanie treci osadzonych z plikw SWF do domeny zabezpiecze Praca z treciami ze starszych wersji programu Ustawianie uprawnie obiektu LocalConnection Kontrola da wychodzcych do adresw URL Obiekty wspuytkowane

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743

Dostp do kamery, mikrofonu, schowka, myszy i klawiatury Indeks

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745

1

Rozdzia 1: Informacje o tym podrcznikuNiniejszy podrcznik jest podstawowym rdem wiedzy na temat programowania aplikacji w jzyku Adobe ActionScript 3.0. Zrozumienie poj i technik opisanych w podrczniku bdzie atwiejsze, jeli czytelnik orientuje si w oglnych zagadnieniach zwizanych z programowaniem i nieobce mu s takie pojcia, jak typy danych, zmienne, ptle i funkcje. Wskazana jest te znajomo podstawowych poj z dziedziny programowania zorientowanego obiektowo, takich jak klasy i dziedziczenie. Znajomo wersji jzyka ActionScript 1.0 lub ActionScript 2.0 bdzie pomocna, ale nie jest wymagana.

Korzystanie z tego podrcznikaRozdziay niniejszego podrcznika zostay podzielona na nastpujce grupy logiczne, aby uatwi znajdowanie informacji o pokrewnych zagadnieniach:Rozdziay Rozdziay od 2 do 5 przegld programowania w jzyku ActionScript Rozdziay od 6 do 11 podstawowe typy danych i klasy jzyka ActionScript 3.0 Rozdziay od 12 do 32, interfejsy API programu Flash Player i rodowiska Adobe AIR Omwienie Opisuj podstawowe pojcia jzyka ActionScript 3.0 midzy innymi skadni jzyka, instrukcje i operatory, a take programowanie obiektowe w ActionScript. Opisuje typy danych o najwyszym poziomie w ActionScript 3.0.

Zawieraj opis wanych elementw zaimplementowanych w pakietach i klasach charakterystycznych dla programu Adobe Flash Player i rodowiska AIR, takich jak: mechanizmy obsugi zdarze, praca z obiektami wywietlanymi i listami wywietlania, praca w sieci i komunikacja, interfejs wejcia/wyjcia plikw, interfejs zewntrzny, model bezpieczestwa aplikacji oraz inne zagadnienia.

Niniejszy podrcznik zawiera take liczne pliki przykadowe, ktre ilustruj pojcia z dziedziny programowania aplikacji lub czsto uywane klasy. Pliki przykadowe s umieszczone w pakietach w taki sposb, aby atwo je byo adowa i uruchamia w programie Adobe Flash CS4 Professional. Mog by te zawarte w plikach opakowaniowych. Jednak waciwe przykady s napisane w czystym jzyku ActionScript 3.0 i mona ich uywa w dowolnie wybranym rodowisku programistycznym. Programy w jzyku ActionScript 3.0 mona pisa i kompilowa przy uyciu rnych narzdzi, m.in.:

rodowiska programistycznego Adobe Flex Builder 3; dowolnego edytora tekstw i kompilatora obsugiwanego z wiersza polece, takiego jak kompilator doczony doprogramu Flex Builder 3;

programu Adobe Flash CS4 Professional do tworzenia treci.Wicej informacji na temat rodowisk programistycznych waciwych dla jzyka ActionScript zawiera rozdzia Wprowadzenie do jzyka ActionScript 3.0 na stronie 4 Aby zrozumie przykady programw zamieszczone w podrczniku, nie trzeba mie wczeniejszego dowiadczenia w korzystaniu ze zintegrowanych rodowisk programistycznych dla jzyka ActionScript, takich jak Flex Bulider lub Flash. Wskazane jednak bdzie skorzystanie z dokumentacji tych narzdzi i poznanie zasad uywania ich do pisania i kompilowania kodu w jzyku ActionScript 3.0. Wicej informacji zawiera sekcja Dostp do dokumentacji jzyka ActionScript na stronie 2.

PROGRAMOWANIE W JZYKU ACTIONSCRIPT 3.0 DLA RODOWISKA FLASH 2Informacje o tym podrczniku

Dostp do dokumentacji jzyka ActionScriptPoniewa niniejszy podrcznik powicony jest przede wszystkim jzykowi ActionScript 3.0 zaawansowanemu jzykowi programowania zorientowanego obiektowo nie omwiono w nim szczegowo procesu tworzenia aplikacji w konkretnych narzdziach lub architekturach serwerowych. A zatem obok podrcznika Programowanie w jzyku ActionScript 3.0 wskazane bdzie siganie po inne rda dokumentacji przydatne podczas projektowania, programowania, testowania i wdraania aplikacji napisanych w jzyku ActionScript 3.0.

Dokumentacja jzyka ActionScript 3.0Ten podrcznik ma za zadanie zaznajomi czytelnikw z podstawowymi koncepcjami, na ktrych opiera si jzyk ActionScript 3.0. Zamieszczono w nim take szczegy implementacji oraz przykady ilustrujce wane cechy jzyka. Nie jest to jednak kompletny skorowidz jzyka programowania. T rol peni Skorowidz jzyka i skadnikw ActionScript 3.0, w ktrym opisano wszystkie klasy, metody, waciwoci i zdarzenia wystpujce w jzyku. Skorowidz jzyka i skadnikw ActionScript 3.0 zawiera szczegowy opis jzyka podstawowego, skadnikw narzdzia do tworzenia treci Flash (zawartych w pakietach fl) oraz interfejsu API odtwarzacza Flash Player i interfejsw API rodowiska Adobe AIR (w pakietach flash).

Dokumentacja programu FlashUytkownicy narzdzia do tworzenia treci Flash maj do dyspozycji nastpujce podrczniki:Podrcznik Korzystanie z programu Flash Omwienie Zawiera omwienie zasad tworzenia dynamicznych aplikacji internetowych w narzdziu Flash do tworzenia treci Zawiera opis stosowania jzyka ActionScript 3.0 oraz podstawowego interfejsu API programu Flash Player i rodowiska Adobe AIR Zawiera opis skadni, zasad uycia i przykady kodu skadnikw narzdzia do tworzenia treci Flash oraz interfejsu API w jzyku ActionScript 3.0. Zawiera szczegowe informacje dot. skadnikw, ktre uatwiaj programowanie aplikacji utworzonych przez Flash Powicony jest tworzeniu i wdraaniu aplikacji dla rodowiska Adobe AIR przy uyciu jzyka ActionScript 3.0 oraz interfejsu API rodowiska Adobe AIR w programie Flash. Zawiera przegld skadni jzyka ActionScript 2.0 i zasad uycia jzyka ActionScript 2.0 przy pracy z rnymi typami obiektw. Zawiera opis skadni, zasad uycia i przykady kodu skadnikw narzdzia do tworzenia treci Flash oraz interfejsu API w jzyku ActionScript 2.0. Zawiera szczegowe omwienie korzystania ze skadnikw ActionScript 2.0 przy programowaniu aplikacji utworzonych w programie Flash Zawiera omwienie wszystkich skadnikw dostpnych w wersji 2 architektury Adobe Component Architecture, a take interfejsu API tej architektury. Opisano tutaj obiekty, metody i waciwoci dostpne w interfejsie API dla jzyka JavaScript. W tym podrczniku omwiono zasady wykorzystania rodowiska Adobe Flash Lite 2.x do tworzenia aplikacji oraz przedstawiono skadni, zastosowanie i przykadu kodu tych elementw jzyka ActionScript, ktre s dostpne w rodowisku Flash Lite 2.x.

Programowanie w jzyku ActionScript 3.0

Skorowidz jzyka i skadnikw ActionScript 3.0

Korzystanie ze skadnikw jzyka ActionScript 3.0

Tworzenie aplikacji AIR w programie Adobe Flash CS4 Professional

Learning ActionScript 2.0 in Adobe Flash

Skorowidz jzyka ActionScript 2.0

Korzystanie ze skadnikw jzyka ActionScript 2.0

Skorowidz jzyka i skadnikw ActionScript 2.0

Tworzenie rozszerze programu Flash

Pierwsze kroki w rodowisku Flash Lite 2.x

PROGRAMOWANIE W JZYKU ACTIONSCRIPT 3.0 DLA RODOWISKA FLASH 3Informacje o tym podrczniku

Podrcznik Tworzenie aplikacji dla rodowiska Flash Lite 2.x

Omwienie Zawiera omwienie tworzenia aplikacji dla rodowiska Flash Lite 2.x.

Wprowadzenie do jzyka ActionScript dla rodowiska Flash Zawiera wprowadzenie do technik tworzenia aplikacji w rodowisku Flash Lite 2.x Lite 2.x oraz opis wszystkich elementw jzyka ActionScript dostpnych dla programistw posugujcych si tym rodowiskiem Skorowidz jzyka ActionScript dla rodowiska Flash Lite 2.x Zawiera opis skadni, zasady stosowania i przykady kodu jzyka ActionScript 2.0 dla rodowiska API Flash Lite 2.x. Zawiera wprowadzenie do rodowiska Flash Lite 1.x oraz opis procesu testowania treci przy uyciu emulatora Adobe Device Central CS4. W tym podrczniku omwiono zasady tworzenia aplikacji dla urzdze mobilnych przy uyciu rodowiska Flash Lite 1.x. Omwiono tutaj zasady korzystania z jzyka ActionScript w aplikacjach dla rodowiska Flash Lite 1.x oraz wszystkie elementy jzyka ActionScript dostpne w tym rodowisku. Zawiera opis skadni i zasad stosowania elementw jzyka ActionScript dostpnych w rodowisku Flash Lite 1.x/

Pierwsze kroki w rodowisku Flash Lite 1.x

Tworzenie aplikacji dla rodowiska Flash Lite 1.x

Poznajemy jzyk ActionScript w rodowisku Flash Lite 1.x

Skorowidz jzyka ActionScript dla rodowiska Flash Lite 1.x

Zasoby edukacyjne dotyczce jzyka ActionScriptOprcz wymienionych podrcznikw firma Adobe udostpnia regularnie aktualizowane artykuy, pomysy i koncepcje projektowe oraz przykady w serwisach Adobe Developer Center oraz Adobe Design Center.

Adobe Developer CenterAdobe Developer Center to rdo najbardziej aktualnych informacji o jzyku ActionScript, artykuw na temat tworzenia rzeczywistych aplikacji oraz informacji o wanych, nowych zagadnieniach i problemach. Serwis Developer Center jest dostpny pod adresem www.adobe.com/devnet/.

Adobe Design CenterSerwis ten pozwala pozna najnowsze trendy w dziedzinie grafiki i animacji cyfrowej. Zawiera prace czoowych artystw, nowe koncepcje i oferuje moliwo doskonalenia umiejtnoci przy uyciu samouczkw, szczegowo opisanych procesw i zaawansowanych technik. Samouczki, artykuy i inspirujce galerie s aktualizowane dwa razy w miesicu. Serwis Design Center jest dostpny pod adresem www.adobe.com/designcenter/.

4

Rozdzia 2: Wprowadzenie do jzyka ActionScript 3.0Niniejszy rozdzia zawiera przegld jzyka Adobe ActionScript 3.0 najnowszej i najbardziej rewolucyjnej wersji ActionScript.

Informacje o jzyku ActionScriptActionScript to jzyk programowania przeznaczony dla rodowisk wykonawczych Adobe Flash Player i Adobe AIR. Umoliwia realizacj funkcji interaktywnych, przetwarzania danych oraz rnorodnej innej funkcjonalnoci w ramach treci i aplikacji przeznaczonych dla rodowisk Flash, Flex i AIR. Kod w jzyku ActionScript jest wykonywany w maszynie wirtualnej ActionScript Virtual Machine (AVM), wchodzcej w skad programu Flash Player i rodowiska AIR. Kod w jzyku ActionScript jest zazwyczaj kompilowany do formatu kodu bajtowego (rodzaju jzyka programowania zrozumiaego dla komputera) przez kompilator, taki jak kompilatory wbudowane w programy Adobe Flash CS4 Professional lub Adobe Flex Builder bd kompilator dostpny pakiecie Adobe Flex SDK. Kod bajtowy jest zapisywany w plikach SWF wykonywanych przez program Flash Player lub rodowisko AIR. ActionScript 3.0 oferuje solidny model programowania znany projektantom z podstawow wiedz na temat programowania obiektowego. Do kluczowych funkcji jzyka ActionScript 3.0, ktre stanowi udoskonalenie w porwnaniu z poprzednimi wersjami ActionScript, nale:

Nowa maszyna wirtualna ActionScript Virtual Machine, nazwana AVM2, w ktrej stosowany jest nowy zestawinstrukcji kodu bajtowego i ktra charakteryzuje si znacznie wysz wydajnoci.

Bardziej nowoczesna baza kodu kompilatora, ktra zapewnia dokadniejsz optymalizacj ni poprzednie wersjekompilatora

Rozbudowany i udoskonalony interfejs programowania aplikacji (API, ang. application programming interface)umoliwiajcy sterowanie obiektami na niskim poziomie i oferujcy prawdziwie obiektowy model programowania.

Interfejs API XML oparty na specyfikacji ECMAScript for XML (E4X) (ECMA-357 edition 2). E4X jestrozszerzeniem jzyka ECMAScript, w ktrym dodano typ XML jako jeden z rodzimych typw.

Model zdarze oparty na specyfikacji Document Object Model (DOM) Level 3 Events Specification.

Zalety jzyka ActionScript 3.0ActionScript w wersji 3.0 jest czym wicej ni jzyk skryptowy, ktrym w istocie we wczeniejszych wersjach. Zosta opracowany z myl tworzeniu zoonych aplikacji operujcych na obszernych zbiorach danych oraz opartych na obiektowo-zorientowanych fragmentach kodu przeznaczonych do wielokrotnego wykorzystania w rnych projektach. Mimo e programowanie w jzyku ActionScript 3.0 nie jest konieczne do tworzenia treci uruchamianych w programie Adobe Flash Player, jzyk ten otwiera drog do uzyskania wyszej wydajnoci, ktr zapewnia nowa maszyna wirtualna AVM2. Kod ActionScript 3.0 moe by wykonywany do dziesiciu razy szybciej ni starszy kod ActionScript.

PROGRAMOWANIE W JZYKU ACTIONSCRIPT 3.0 DLA RODOWISKA FLASH 5Wprowadzenie do jzyka ActionScript 3.0

Starsza wersja ActionScript Virtual Machine, AVM1, wykonuje kod ActionScript 1.0 i ActionScript 2.0. Programy Flash Player 9 i 10 obsuguj kod przeznaczony dla maszyny AVM1, aby zapewni zgodno wstecz ze starszymi, istniejcymi ju treciami. Wicej informacji zawiera sekcja Zgodno z poprzednimi wersjami na stronie 8.

Co nowego w jzyku ActionScript 3.0Mimo e jzyk ActionScript 3.0 zawiera wiele klas i innych elementw znanych z poprzednich wersji jzyka ActionScript, wersja ActionScript 3.0 rni si pod wzgldem architektury i koncepcji od wersji wczeniejszych. Udoskonalenia wprowadzone w wersji ActionScript 3.0 to midzy innymi nowe elementy jzyka podstawowego i udoskonalony interfejs API programu Flash Player, ktry zapewnia wiksz kontrol nad obiektami niskopoziomowymi. Uwaga: Aplikacje dla rodowiska Adobe AIR rwnie mog korzysta z interfejsu API programu Flash Player.

Cechy i elementy jzyka podstawowegoJzyk podstawowy to opis bazowych elementw jzyka programowania, takich jak instrukcje, wyraenia, warunki, ptle i typy. Jzyk ActionScript 3.0 zawiera wiele nowych elementw, ktre przyspieszaj proces programowania. Wyjtki w czasie wykonywania rodowisko jzyka ActionScript 3.0 sygnalizuje wicej rodzajw bdw ni poprzednie wersje jzyka ActionScript. Wyjtki w czasie wykonywania odzwierciedlaj typowe bdy, uatwiajc proces debugowania i umoliwiajc tworzenie aplikacji, ktre niezawodnie obsuguj wszelkie bdy. Bdy w czasie wykonywania mog by zgaszane razem z zapisami ladu stosu, informacjami o pliku rdowym i numerze wiersza, co znacznie przyspiesza lokalizowanie bdw. Obsuga typw w czasie wykonywania W jzyku ActionScript 2.0 deklaracje typw miay przede wszystkim charakter uatwienia dla programisty; w czasie wykonywania typy wszystkich wartoci byy okrelane dynamicznie. W jzyku ActionScript 3.0 informacje o typach s zachowywane w czasie wykonywania i wykorzystywane w rnych celach. Program Flash Player i rodowisko Adobe AIR sprawdzaj zgodno typw w czasie wykonywania, co zapobiega wielu bdom wynikajcym z niezgodnoci typw. Informacje o typach s te wykorzystywane przy tworzeniu reprezentacji zmiennych w rodzimej formie maszynowej, co przyspiesza wykonywanie kodu i ogranicza zuycie pamici. Klasy zapiecztowane W jzyku ActionScript 3.0 wprowadzono pojcie klas zapiecztowanych. Klasa zapiecztowana ma ustalony zestaw waciwoci metod zdefiniowany w czasie kompilacji; nie mona do niej dodawa nowych waciwoci ani metod. Takie rozwizanie umoliwia cilejsz kontrol programu w czasie wykonywania, a tym samym poprawia niezawodno aplikacji. Optymalizuje rwnie wykorzystanie pamici, poniewa nie wymaga tworzenia wewntrznej tabeli mieszajcej dla kadej instancji obiektu. Nadal moliwe jest tworzenie klas dynamicznych, ktre jednak musz by deklarowane ze sowem kluczowym dynamic W jzyku ActionScript 3.0 wszystkie klasy s domylnie zapiecztowane, ale dodanie w deklaracji sowa kluczowego dynamic umoliwia utworzenie klasy dynamicznej.

PROGRAMOWANIE W JZYKU ACTIONSCRIPT 3.0 DLA RODOWISKA FLASH 6Wprowadzenie do jzyka ActionScript 3.0

Zamknicia metod W jzyku ActionScript 3.0 zamknicia metod mog automatycznie zapamitywa, do jakiej instancji obiektu pierwotnie naleay. Ta funkcja jest przydatna przy obsudze zdarze. W jzyku ActionScript 2.0 zamknicia metod nie pamitay, z ktrych instancji obiektw zostay wyodrbnione, co prowadzio do nieoczekiwanych zachowa po wywoaniu zamknicia metody. Powszechnie uywanym obejciem byo zastosowanie klasy mx.utils.Delegate. Obecnie to obejcie nie jest ju potrzebne. ECMAScript for XML (E4X) W jzyki ActionScript 3.0 zaimplementowano specyfikacj ECMAScript for XML (E4X), niedawno ujt w standardzie ECMA-357. Specyfikacja E4X zawiera zestaw wygodnych, naturalnie skonstruowanych elementw jzyka sucych do manipulowania kodem XML. Inaczej ni w tradycyjnych interfejsach API sucych do analizy skadniowej kody XML, kod XML wraz z elementami specyfikacji E4X moe by traktowany jak rodzimy typ danych jzyka. Specyfikacja EX4 usprawnia tworzenie aplikacji, ktre manipuluj kodem XML, poniewa radykalnie skraca kod wymagany do realizacji takich manipulacji. Wicej informacji o implementacji E4X w jzyku ActionScript 3.0 mona znale w sekcji Praca z danymi XML na stronie 233. Ze specyfikacj ECMA E4X mona zapozna si pod adresem www.ecma-international.org. Wyraenie regularne Jzyk ActionScript 3.0 oferuje rodzim obsug wyrae regularnych, uatwiajc szybkie przeszukiwanie cigw znakw i manipulowanie nimi. Implementacja wyrae regularnych w jzyku ActionScript 3.0 jest zgodna ze specyfikacj jzyka ECMAScript (ECMA-262) edition 3. Przestrzenie nazw Przestrzenie nazw dziaaj podobnie jak tradycyjne specyfikatory dostpu uywane do sterowania widocznoci deklaracji (public, private, protected). Peni rol niestandardowych specyfikatorw dostpu i mog mie nazwy wybrane przez programist. Przestrzenie nazw maj przypisane uniwersalne identyfikatory URI, ktre zapobiegaj kolizjom, a ponadto su do reprezentacji przestrzeni nazw XML w przypadku korzystania ze specyfikacji E4X. Nowe typy pierwotne W jzyku ActionScript 2.0 istnia jeden typ liczbowy, Number, ktry reprezentowa liczby zmiennopozycyjne o podwjnej precyzji. W jzyku ActionScript 3.0 wprowadzono typy int oraz uint. Typ int reprezentuje 32-bitowe liczby cakowite ze znakiem i pozwala na szybkie realizowanie oblicze na takich liczbach na poziomie procesora. Typ int jest przydatny do realizacji licznikw ptli i zmiennych, ktre przechowuj tylko wartoci cakowite. Typ uint reprezentuje 32-bitowe liczby cakowite bez znaku i jest przydatny w przypadku wartoci kolorw RGB, licznikw bajtw itp.

Charakterystyka interfejsu API programu Flash PlayerInterfejs API programu Flash Player dla jzyka ActionScript 3.0 zawiera wiele klas umoliwiajcych sterowanie obiektami na niskim poziomie. Architektura jzyka jest bardziej intuicyjna ni w poprzednich wersjach. Wprawdzie liczba nowych klas jest zbyt dua, by mona je byo tutaj wszystkie omwi, w poniszych sekcjach zwrcono uwag na pewne najwaniejsze zmiany. Uwaga: Aplikacje dla rodowiska Adobe AIR rwnie mog korzysta z interfejsu API programu Flash Player.

PROGRAMOWANIE W JZYKU ACTIONSCRIPT 3.0 DLA RODOWISKA FLASH 7Wprowadzenie do jzyka ActionScript 3.0

Model zdarze DOM3 Model zdarze Document Object Model Level 3 (DOM3) opisuje standardowe metody generowania i obsugi komunikatw zdarze, pozwalajce na komunikacj i interakcj midzy obiektami w aplikacji. Obiekty pamitaj swoje stany i reaguj na zmiany. Model ten, wzorowany na specyfikacji World Wide Web Consortium DOM Level 3 Events Specification, oferuje bardziej przejrzysty i wydajny mechanizm ni systemy zdarze dostpne w poprzednich wersjach jzyka ActionScript. Klasy zdarze i bdw s umieszczone w pakiecie flash.events. W architekturze skadnikw Flash zastosowano ten sam model zdarze, co w interfejsie API programu Flash Player, a zatem w ramach caej platformy Flash obowizuje jednolity system obsugi zdarze. Interfejs API listy wywietlania Interfejs API zapewniajcy dostp do listy wywietlania programu Flash Player i rodowiska Adobe AIR czyli drzewa zawierajcego wszystkie elementy wizualne aplikacji zawiera klasy suce do pracy z wizualnymi obiektami pierwotnymi. Nowa klasa Sprite to lekki element skadowy, podobny do klasy MovieClip, ale lepiej przystosowany do uycia w charakterze klasy bazowej skadnikw interfejsu uytkownika. Nowa klasa Shape reprezentuje surowe ksztaty wektorowe. Instancje tych klas mona tworzy w sposb naturalny za pomoc operatora new i w dowolnym dynamicznie zmienia ich lokalizacj w hierarchii dziedziczenia. Zarzdzanie gbokoci odbywa si teraz automatycznie i jest mechanizmem wbudowanym w program Flash Player i rodowisko Adobe AIR. Nie jest ju konieczne przypisywanie pozycji gbokoci. Udostpniono nowe metody do okrelania kolejnoci z obiektw i manipulowania ni. Obsuga danych i treci dynamicznych Jzyk ActionScript 3.0 zawiera intuicyjne i spjne w caym interfejsie API mechanizmy suce do adowania i obsugi zasobw oraz danych w aplikacji. Nowa klasa Loader udostpnia jednolity mechanizm adowania plikw SWF i obrazw oraz zapewnia dostp do szczegowych informacji o zaadowanej treci. Klasa URLLoaderudostpnia odrbny mechanizm adowania tekstu i danych binarnych w aplikacjach zorientowanych na manipulowanie danymi. Klasa Socket oferuje mechanizmy odczytywania i zapisywania danych binarnych w gniazdach serwera, w dowolnym formacie. Niskopoziomowy dostp do danych Rne elementy interfejsu API zapewniaj dostp do danych, ktre w poprzednich wersjach ActionScript byy cakowicie niedostpne. Klasa URLStream, implementowana przez klas URLLoader, udostpnia pobierane dane w postaci surowego strumienia binarnego w trakcie pobierania. Klasa ByteArray umoliwia optymalizowanie odczytywania i zapisywania danych binarnych oraz pracy z takimi danymi. Nowy interfejs API do obsugi dwiku zapewnia precyzyjn kontrol nad dwikiem za porednictwem klas SoundChannel i SoundMixer. Nowe elementy interfejsu API zwizane z bezpieczestwem udostpniaj informacje o uprawnieniach dostpu pliku SWF lub zaadowanej treci, umoliwiajc skuteczniejsz obsug bdw zabezpiecze. Praca z tekstem Jzyk ActionScript 3.0 zawiera pakiet flash.text grupujcy wszystkie elementy interfejsu API zwizane z tekstem. Klasa TextLineMetrics udostpnia szczegowe metryki wiersza tekstu w polu tekstowym; zastpuje metod TextFormat.getTextExtent() znan z jzyka ActionScript 2.0. Klasa TextField zawiera szereg nowych, interesujcych metod niskopoziomowych, ktre udostpniaj okrelone informacje o wierszach tekstu lub pojedynczych znakach w polu tekstowym. Naley do nich metoda getCharBoundaries(), ktra zwraca prostokt

PROGRAMOWANIE W JZYKU ACTIONSCRIPT 3.0 DLA RODOWISKA FLASH 8Wprowadzenie do jzyka ActionScript 3.0

reprezentujcy pole otaczajce znak, metoda getCharIndexAtPoint(), ktra zwraca indeks znaku znajdujcego si w okrelonym punkcie, oraz metoda getFirstCharInParagraph(), ktra zwraca indeks pierwszego znaku w akapicie. Do metod operujcych na poziomie wiersza naley metoda getLineLength(), ktra zwraca liczb znakw w okrelonym wierszu tekstu, oraz metoda getLineText(), ktra zwraca tekst z okrelonego wiersza. Nowa klasa Font umoliwia zarzdzanie osadzonymi czcionkami w plikach SWF.

Zgodno z poprzednimi wersjamiJak zwykle program Flash Player gwarantuje pen zgodno wstecz z dotychczas opublikowanymi treciami. Kada tre, ktra dziaaa w poprzedniej wersji programu Flash Player, dziaa take w programie Flash Player 9 i jego pniejszych wersjach. Jednak wprowadzenie jzyka ActionScript 3.0 w wersji Flash Player 9 stwarza jednak pewne utrudnienia we wspdziaaniu midzy starymi a nowymi treciami dziaajcymi w programie Flash Player 9 lub jego pniejszych wersjach. Poniej wymieniono te utrudnienia majce zwizek ze zgodnoci wersji:

Jeden plik nie moe zawiera jednoczenie kodu w jzyku ActionScript 1.0 lub 2.0 i kodu w jzyku ActionScript 3.0. Kod ActionScript 3.0 moe zaadowa plik SWF napisany w jzyku ActionScript 1.0 lub 2.0, ale nie ma dostpu dozmiennych i funkcji w takim pliku SWF.

Pliki SWF napisane w jzyku ActionScript 1.0 lub 2.0 nie mog adowa plikw SWF napisanych w jzykuActionScript 3.0. Oznacza to, e pliki SWF stworzone w programie Flash 8, Flex Builder 1.5 lub wczeniejszych wersjach tych programw nie mog adowa plikw SWF napisanych w jzyku ActionScript 3.0. Jedynym wyjtkiem od tej reguy jest sytuacja, w ktrej plik SWF w jzyku ActionScript 2.0 sam zastpuje si plikiem SWF w jzyku ActionScript 3.0, a wersja pliku SWF w jzyku ActionScript 2.0 nie zaadowaa uprzednio adnych treci (na adnym poziomie). W jzyku ActionScript 2.0 plik SWF moe wykona tak operacj poprzez wywoanie loadMovieNum() z zerow wartoci parametru level.

Co do zasady pliki SWF napisane w jzyku ActionScript 1.0 lub 2.0 wymagaj migracji, jeli maj wspdziaa zplikami SWF napisanymi w jzyku ActionScript 3.0. Zamy, e stworzylimy odtwarzacz multimedialny w jzyku ActionScript 2.0. Odtwarzacz ten aduje rne treci, take utworzone w jzyku ActionScript 2.0. Nie bdzie moliwe zaadowanie do odtwarzacza nowych treci utworzonych w jzyku ActionScript 3.0. Odtwarzacz naley podda migracji do wersji ActionScript 3.0. Jeli jednak napiszemy odtwarzacz multimedialny w jzyku ActionScript 3.0, to bdzie on mg adowa treci w jzyku ActionScript 2.0. W poniszej tabeli podsumowano ograniczenia poprzednich wersji odtwarzacza Flash Player dotyczce adowania nowych treci i wykonywania kodu oraz ograniczenia we wzajemnym wywoywaniu skryptw midzy plikami SWF utworzonymi w rnych wersjach jzyka ActionScript.Obsugiwana funkcjonalno Flash Player 7 Flash Player 8 8 i wczeniejszych AVM1 1.0 i 2.0 Flash Player 9 i 10 9 (lub 10) i wczeniejszych AVM1 i AVM2 1.0, 2.0 i 3.0

Moe adowa SWF opublikowane dla wersji 7 i wczeniejszych Zawiera maszyn AVM Wykonuje SWF napisane w jzyku ActionScript AVM1 1.0 i 2.0

W poniszej tabeli Obsugiwana funkcjonalno oznacza treci dziaajce w programie Flash Player 9 lub nowszych wersjach. Treci dziaajce w programie Flash Player 8 lub starszych wersjach mog adowa, wywietla, wykonywa i wywoywa tylko skrypty utworzone w jzyku ActionScript 1.0 i 2.0.

PROGRAMOWANIE W JZYKU ACTIONSCRIPT 3.0 DLA RODOWISKA FLASH 9Wprowadzenie do jzyka ActionScript 3.0

Obsugiwana funkcjonalno

Treci utworzone w jzykach ActionScript 1.0 i 2.0 tylko ActionScript 1.0 i 2.0

Treci utworzone w jzyku ActionScript 3.0 ActionScript 1.0 i 2.0 oraz ActionScript 3.0

Moe adowa treci i wykonywa kod utworzony w nastpujcych jzykach: Moe wywoywa skrypty utworzone w nastpujcych jzykach:

tylko ActionScript 1.0 i 2.0 (ActionScript 3.0 przez obiekt LocalConnection)

ActionScript 1.0 i 2.0 przez obiekt LocalConnection ActionScript 3.0

10

Rozdzia 3: Pierwsze kroki w jzyku ActionScriptNiniejszy rozdzia zosta pomylany jako wprowadzenie do programowania w jzyku ActionScript. Przedstawiono w nim podstawowe informacje niezbdne do zrozumienia poj i przykadw omwionych w dalszej czci podrcznika. Rozpoczniemy od opisu podstawowych poj z zakresu programowania, w kontekcie stosowania ich w jzyku ActionScript. Omwimy take podstawowe zasady organizacji i budowania aplikacji w jzyku ActionScript.

Podstawy programowaniaPoniewa ActionScript jest jzykiem programowania, poznawanie go najlepiej zacz od kilku oglnych poj z zakresu programowania komputerw.

Co robi programy komputerowePrzede wszystkim warto zastanowi si, czym jest i co robi program komputerowy. Program komputerowy mona postrzega w dwch aspektach:

Program jest szeregiem instrukcji lub krokw, ktre komputer ma wykona. Kady krok sprowadza si do manipulacji na elemencie informacji lub danych.W sensie oglnym program komputerowym jest po prostu list krokw, ktre komputer kolejno wykonuje. Kady taki krok nazywany jest instrukcj. Jak mona zauway w przykadach zawartych w niniejszym podrczniku, kada instrukcja jzyka ActionScript koczy si rednikiem. Co do zasady dziaanie kadej instrukcji w programie sprowadza si do manipulacji jakim elementem danych przechowywanym w pamici komputera. W prostym przypadku moemy nakaza komputerowi dodanie dwch liczb i zapisanie wyniku w pamici. Bardziej skompilowan operacj byoby na przykad przesunicie w inne miejsce prostokta narysowanego na ekranie. Komputer przechowuje okrelone informacje na temat prostokta wsprzdne x i y jego pooenia, jego szeroko i wysoko, jego kolor itd. Kada z tych informacji jest przechowywana w pamici komputera. Program przemieszczajcy prostokt skadaby si np. z takich krokw: zmie wsprzdn x na 2000; zmie wsprzdn y na 150 (innymi sowy, okrelaby nowe wartoci wsprzdnych x i y). Oczywicie komputer musi jeszcze przetworzy te dane, aby faktycznie wywietli obraz na ekranie; jednak na interesujcym nas teraz poziomie szczegw wystarczy wiedzie, e proces przemieszczania prostokta na ekranie sprowadza si w istocie do zmiany danych w pamici komputera.

Zmienne i staePoniewa programowanie polega przede wszystkim na modyfikowaniu informacji w pamici komputera, musi istnie sposb odzwierciedlenia poszczeglnych elementw informacji w programie. Zmienna to nazwa reprezentujca warto w pamici komputera. W instrukcjach manipulujcych wartociami uywamy zamiast tych wartoci nazw zmiennych; za kadym razem, gdy komputer napotka w programie nazw zmiennej, szuka w pamici wartoci, ktr ta zmienna reprezentuje. Na przykad, jeli mamy dwie zmienne o nazwach value1 i value2, a kada z nich zawiera liczb, moemy napisa nastpujc instrukcj dodawania tych dwch liczb:value1 + value2

PROGRAMOWANIE W JZYKU ACTIONSCRIPT 3.0 DLA RODOWISKA FLASH 11Pierwsze kroki w jzyku ActionScript

Realizujc program, komputer odszuka wartoci kadej ze zmiennych i doda te wartoci. W jzyku ActionScript 3.0 zmienna faktycznie skada si z trzech rnych elementw:

nazwy zmiennej; typu danych, jakie mog by przechowywane w zmiennej; faktycznej wartoci przechowywanej w pamici komputera.Wyjanilimy ju, e nazwa zastpuje w programie warto zmiennej. Wan rol odgrywa take typ danych. Gdy tworzymy zmienn w programie w jzyku ActionScript, okrelamy typ danych, jakie bd przechowywane w tej zmiennej; od tego momentu instrukcje programu mog zapisywa w zmiennej tylko dane tego tupu i moemy manipulowa wartociami w sposb waciwy dla ich typu. Aby utworzy zmienn w jzyku ActionScript (proces ten nazywamy deklarowaniem zmiennej), uywamy instrukcji var:var value1:Number;

W tym przypadku nakazalimy komputerowi utworzenie zmiennej o nazwie value1, w ktrej bd przechowywane tylko dane typu Number (Number to typ danych zdefiniowany w jzyku ActionScript, reprezentujcy liczby). Moemy take od razu zapisa warto w zmiennej:var value2:Number = 17;

W programie Adobe Flash CS4 Professional istnieje te inny sposb deklarowania zmiennych. Gdy umiecimy symbol klipu filmowego, symbol przycisku lub pole tekstowe na stole montaowym, moemy nada mu nazw instancji w Inspektorze waciwoci. Wwczas program Flash, w sposb niejawny, utworzy zmienn o tej samej nazwie, co nazwa instancji. Zmiennej tej moemy uywa w kodzie ActionScript, aby odwoywa si do danego elementu na stole montaowym. A zatem, jeli na stole montaowym znajduje si symbol klipu filmowego o nazwie instancji rocketShip, to kadorazowe uycie zmiennej rocketShip w kodzie ActionScript bdzie w istocie polegao na manipulowaniu tym klipem filmowym. Stae s bardzo podobne do zmiennych, tj. s nazwami reprezentujcymi wartoci okrelonego typu w pamici komputera. Rnica polega na tym, e staej mona przypisa warto tylko raz w caej aplikacji ActionScript. Raz przypisana warto staej pozostaje niezmienna przez cay czas wykonywania aplikacji. Skadnia deklaracji staych jest taka sama, jak w przypadku zmiennych, z tym e uywamy sowa kluczowego const zamiast sowa kluczowego var:const SALES_TAX_RATE:Number = 0.07;

Stae s uyteczne do definiowania wartoci uywanych w wielu miejscach w projekcie, ktre w normalnych okolicznociach nie ulegaj zmianie. Uycie staych zamiast wartoci literalnych zwiksza czytelno kodu. Na przykad atwiej bdzie zrozumie znaczenie wiersza kodu, ktry mnoy cen przez sta SALES_TAX_RATE, ni wiersza, ktry mnoy cen przez 0.07. Ponadto, jeli kiedykolwiek w przyszoci zajdzie konieczno zmiany wartoci reprezentowanej przez sta, to wystarczyo bdzie zmieni t warto w jednym miejscu (w deklaracji staej), bez koniecznoci wprowadzania zmian w wielu miejscach programu, co byoby niezbdne w przypadku uycia wartoci literalnych.

Typy danychW jzyki ActionScript istnieje wiele typw danych, ktre mona przypisywa tworzonym zmiennym. Niektre z tych typw s typami prostymi lub podstawowymi:

String: warto tekstowa, taka jak nazwa lub tekst rozdziau ksiki. Typy liczbowe: w jzyku ActionScript 3.0 istniej trzy typy danych reprezentujce dane liczbowe: Number: dowolna warto liczbowa, cakowita lub uamkowa; int: liczba cakowita (bez czci uamkowej);

PROGRAMOWANIE W JZYKU ACTIONSCRIPT 3.0 DLA RODOWISKA FLASH 12Pierwsze kroki w jzyku ActionScript

uint: liczba cakowita bez znaku, czyli liczba cakowita nieujemna. Boolean: warto true (prawda) albo warto (false), okrelajca np. stan przecznika lub informujca, czy dwiewartoci s sobie rwne. Proste typy danych reprezentuj pojedyncze elementy informacji: na przykad jedn liczb lub jeden cig tekstowy. Jednak wikszo typw danych definiowanych w jzyku ActionScript mona nazwa typami zoonymi, poniewa reprezentuj zgrupowane zestawy wartoci. Na przykad zmienna naleca do typu danych Date reprezentuje jedn warto moment w czasie. Jedna w istocie warto typu Date skada si z kilku odrbnych liczb: dnia, miesica, roku, godzin, minut, sekund itd. A zatem, podczas gdy my mylimy o dacie jako o pojedynczej wartoci (i moemy j tak traktowa, tworzc zmienn typu Date), wewntrznie komputer traktuje dat jako grup kilku wartoci zestawionych w jedn grup. Wikszo wbudowanych typw danych, a take typw danych definiowanych przez programistw, to typy zoone. Oto niektre zoone typy danych, z ktrymi czytelnicy mogli si ju porednio zetkn:

MovieClip: symbol klipu filmowego; TextField: dynamiczne lub wejciowe pole tekstowe; SimpleButton: symbol przycisku; Date: informacje o pojedynczym momencie w czasie (dacie i godzinie).Czsto uywanymi synonimami typu danych s: klasa i obiekt. Klasa to po prostu definicja typu danych mona j porwna do szablonu wszystkich obiektw danego typu, np. wszystkie zmienne typu Example maj nastpujce cechy: A, B i C. Z kolei obiekt to faktyczna instancja klasy; zmienn nalec do typu danych MovieClip moemy nazwa obiektem MovieClip. Oto rne sposoby wyraenia tego samego faktu:

Typem danych zmiennej myVariable jest Number. Zmienna myVariable jest instancj typu Number. Zmienna myVariable jest obiektem typu Number. Zmienna myVariable jest instancj klasy Number.

Praca z obiektamiActionScript naley do jzykw programowania zorientowanych obiektowo. Programowanie zorientowane obiektowo to w istocie pewna strategia programowania sposb organizowania kodu w programie przy wykorzystaniu obiektw. Wczeniej zdefiniowalimy program komputerowy jako szereg krokw lub instrukcji wykonywanych przez komputer. A zatem moemy wyobraa sobie program jako jedn dug list instrukcji. Jednak koncepcja programowania zorientowanego obiektowo zakada, e instrukcje programu s podzielone midzy rne obiekty kod jest pogrupowany we fragmenty realizujce okrelone funkcje, a zatem pokrewne rodzaje funkcji lub pokrewne elementy danych s zgrupowane w osobnych kontenerach. W istocie, kady kto pracowa z symbolami w programie Flash, mia ju okazj do pracy z obiektami. Wyobramy sobie, e zdefiniowalimy symbol klipu filmowego np. rysunek prostokta i umiecilimy egzemplarz tego symbolu na stole montaowym. Ten symbol klipu filmowego jest take (literalnie) obiektem w jzyku ActionScript; stanowi instancj klasy MovieClip.

PROGRAMOWANIE W JZYKU ACTIONSCRIPT 3.0 DLA RODOWISKA FLASH 13Pierwsze kroki w jzyku ActionScript

Klip filmowy ma szereg cech, ktre moemy modyfikowa. Na przykad po zaznaczeniu klipu na stole montaowym w Inspektorze waciwoci pojawiaj si wartoci, ktre mona zmieni takie jak wsprzdna x, szeroko, skadowe kolorw (np. alfa, czyli przezroczysto) lub ustawienia filtru cienia. Inne narzdzia programu Flash pozwalaj na wprowadzanie dalszych zmian, np. narzdzie Transformacja swobodna pozwala na obrcenie prostokta. Wszystkie czynnoci, ktre mona wykona, modyfikujc symbol klipu filmowego w rodowisku tworzenia treci Flash, mona take wykona w jzyku ActionScript, zmieniajc elementy danych, ktre powizane ze sob skadaj si na obiekt MovieClip. W obiektowo zorientowanym jzyku ActionScript kada klasa moe mie trzy rodzaje cech:

waciwoci; metody; zdarzenia.cznie elementy te su do zarzdzania elementami danych uywanymi w programie i do podejmowania decyzji o wykonywanych czynnociach oraz kolejnoci czynnoci.

WaciwociWaciwo reprezentuje jeden z elementw danych, ktre powizane ze sob skadaj si na obiekt. Obiekt utworu muzycznego moe mie waciwoci o nazwie artist i title; klasa MovieClip ma takie waciwoci, jak rotation, x, width i alpha. Zmiennymi operujemy tak, jak odrbnymi zmiennymi waciwoci mona traktowa jak zmienne podrzdne, zawarte w obiekcie. Oto przykady kodu w jzyku ActionScript, w ktrych uywane s waciwoci. Ten wiersz kodu przenosi obiekt MovieClip o nazwie square do pooenia o wsprzdnej x=100 pikseli:square.x = 100;

W tym przykadzie uyto waciwoci rotation w celu obrcenia obiektu MovieClip o nazwie square o taki kt, by by obrcony tak samo, jak obiekt MovieClip o nazwie triangle:square.rotation = triangle.rotation;

Ten przykad modyfikuje skal poziom obiektu MovieClip square, tak aby by o ptora raza szerszy ni dotychczas:square.scaleX = 1.5;

Naley zwrci uwag na wspln struktur: uywamy zmiennej (square, triangle) jako nazwy obiektu, po niej stawiamy kropk (.), a nastpnie podajemy nazw waciwoci (x, rotation, scaleX). Kropka, formalnie nazywana operatorem kropki, oznacza odwoanie do jednego z elementw podrzdnych zawartych w obiekcie. Caa struktura nazwa zmiennej-kropka-nazwa waciwoci moe by uywana tak, jak pojedyncza zmienna, czyli nazwa pojedynczej wartoci w pamici komputera.

MetodyMetoda to operacja, ktr obiekt moe wykonywa. Na przykad, jeli w programie Flash utworzylimy symbol klipu filmowego zawierajcy na osi czasu kilka klatek kluczowych i animacj, to ten klip filmowy moe wykonywa rne operacje: rozpocz lub zatrzyma odtwarzanie bd przenie gowic odtwarzania do konkretnej klatki. Ten kod nakazuje obiektowi MovieClip o nazwie shortFilm rozpoczcie odtwarzania:shortFilm.play();

Ten wiersz zatrzymuje odtwarzanie obiektu MovieClip o nazwie shortFilm (gowica odtwarzania zatrzymuje si w biecym pooeniu, tak jak przy wstrzymaniu odtwarzania):

PROGRAMOWANIE W JZYKU ACTIONSCRIPT 3.0 DLA RODOWISKA FLASH 14Pierwsze kroki w jzyku ActionScript

shortFilm.stop();

Ten kod powoduje, e gowica odtwarzania obiektu MovieClip o nazwie shortFilm jest przenoszona do klatki 1, a odtwarzanie jest zatrzymywane (tak jak przy przewiniciu materiau wideo):sh