Flash MX. Programowanie - Helion
Tytuł oryginału: Robert Penners Programming Macromedia Flash MX
Tłumaczenie: Marek Binkowski, Rafał Jońca
ISBN: 83-7361-085-5
stron: 400, Format: B5, okładka: miękka
Data wydania: 2003-04-17
Księgarnia: Helion
Cena książki: 49,00 zł
Robert Penner -- ekspert i innowator w dziedzinie języka ActionScript -- dzieli się swoją wiedzą na temat programowania Macromedia Flash. Penner przybliża tajniki łączenia złożonej matematyki i fizyki z atrakcyjną i estetyczną grafiką Flasha. Dzięki książce "Flash MX. Programowanie" poznasz podstawowe zagadnienia związane z przestrzenią, matematyką, kolorem, ruchem i kształtem, a następnie dowiesz się, jak wykorzystać tę teorię do generowania nieprzeciętnych animacji. Przekonasz się, jak wspaniale możesz za pomocą ActionScriptu symulować zjawiska atmosferyczne takie jak tornado, śnieżyca czy zorza polarna.
Książka omawia szeroki zakres zagadnień -- od projektowania i mechaniki ruchu po tajniki pisania poprawnego, zorientowanego obiektowo kodu; służy także pomocą w tworzeniu kolorów, dźwięku, ruchu i interakcji.
- Wyjaśnienie podstaw matematyki w kontekście programu Flash
- Tworzenie skomplikowanych animacji oraz prostego ruchu i efektów typu "rollover"
- Prezentacja możliwości obiektowych języka ActionScript
- Tworzenie łatwych do modyfikacji interfejsów wielokrotnego użytku
- Tworzenie obiektów trójwymiarowych
- Dokładne wyjaśnienie procesu tworzenia kilku przykładowych animacji: śnieżycy, fraktalnego tancerza i zorzy polarnej
- Projektowanie i generowanie dynamicznej animacji za pomocą języka ActionScript.
- Tworzenie grafiki -- od prostych schematów po złożone filmy.
"Ta książka bez wątpienia stanie się klasyczną pozycją w dziedzinie programowania grafiki w programie Macromedia Flash".
Colin Moock, autor ActionScript. Przewodnik encyklopedyczny
O autorze
Robert Penner to niezależny twórca filmów w programie Macromedia Flash, konsultant, pisarz i wykładowca. Na całym świecie znany jest z innowacyjnych pomysłów i animacji odtwarzających piękno natury. Jego biografię artystyczną i efekty eksperymentów można znaleźć na witrynie http://robertpenner.com.
Osoby które kupowały "Flash MX. Programowanie", wybierały także:
- Tablice informatyczne. Flash MX 2004 ActionScript 12,58 zł, (3,90 zł -69%)
- Flash i Wallaby. Projektowanie animacji zgodnych z HTML5 24,69 zł, (7,90 zł -68%)
- Flash i ActionScript. Aplikacje 3D od podstaw 97,23 zł, (54,45 zł -44%)
- Adobe Flash CS5/CS5 PL Professional. Biblia 126,70 zł, (70,95 zł -44%)
- ActionScript 3.0. Biblia 97,23 zł, (54,45 zł -44%)
Spis treści
Flash MX. Programowanie -- spis treści
O Autorze (17)
Wprowadzenie (19)
- Co omawia ta książka? (opisy części i rozdziałów) (19)
- Jak czytać tę książkę? (21)
- Pliki z przykładami (21)
Część I Początek procesu (23)
Rozdział 1. Jak poznałem Flasha? (25)
- Zaplecze osobiste (25)
- Lata studenckie (27)
- Studium techniczne (28)
- Odkrycie Flasha (28)
- Istota dyscypliny (30)
- Co to sÄ… dyscypliny? (30)
- Nawyki (31)
- Moje dyscypliny (32)
- Samodzielna nauka (32)
- Rozwój przez ćwiczenie (33)
- Przykład: nauka skrótów klawiszowych (34)
- Społeczność (35)
- Uczenie siÄ™ przez nauczanie innych (36)
- Udostępnianie kodu źródłowego (37)
- Proces iteracyjny (38)
- Nauka jest okrągła (38)
- Ustalanie priorytetów (39)
- Tworzenie z myślą o przyszłości (40)
- Układ książki (41)
Rozdział 2. Programowanie zorientowane obiektowo (43)
- Istota programowania (43)
- Pamięć i zmienne (44)
- Umiejętności i funkcje (44)
- Obiekty: pamięć i umiejętności (45)
- Właściwości i metody (45)
- Klasy (47)
- Wbudowane klasy i obiekty Flasha (47)
- Konstruktory klas (49)
- Klonowanie klas wizualnych (51)
- Właściwość prototype (51)
- Dodawanie metod do klas (53)
- Zastępowanie wbudowanych metod (54)
- Rozszerzanie możliwości obiektów statycznych (54)
- Klasyczne pojęcia z dziedziny OOP (55)
- Abstrakcja (55)
- Separacja (56)
- Polimorfizm (59)
- Tworzenie własnej klasy (59)
- Analiza (60)
- Lista zadań (60)
- Scenariusze poszczególnych zadań (61)
- Projektowanie (62)
- Dobór właściwości (63)
- Dobór metod (63)
- Relacje między obiektami (64)
- Diagramy klas (65)
- Tworzenie klas w języku ActionScript (66)
- Konstruktor klasy PhotoAlbum (66)
- Metoda showPhotoAt() (68)
- Metoda next() (69)
- Metoda prev() (70)
- Klasa PhotoAlbum w akcji (71)
- Dziedziczenie klas (72)
- Dziedziczenie właściwości a dziedziczenie metod (72)
- Dziedziczenie właściwości za pomocą funkcji super() (73)
- Dziedziczenie metod (74)
- Obiekt super (74)
- Dziedziczenie metod za pomocą słowa kluczowego new (75)
- Dziedziczenie metod przy użyciu właściwości __proto__ (76)
- Rozwiązanie korzystające z właściwości __constructor__ (76)
- Metoda superCon() (78)
- Wnioski (79)
Część II Podstawowe pojęcia (81)
Rozdział 3. Matematyka część I: trygonometria i układy współrzędnych (83)
- Trygonometria (84)
- Trójkąt prostokątny (84)
- Twierdzenie Pitagorasa (84)
- Odległość między dwoma punktami (85)
- Kąty w trójkątach prostokątnych (86)
- Sinus (88)
- Kosinus (91)
- Tangens (93)
- Arcus tangens (94)
- Arcus kosinus (96)
- Arcus sinus (97)
- Układy współrzędnych (98)
- Kartezjański układ współrzędnych (98)
- Układ współrzędnych Flasha (99)
- Współrzędne biegunowe (102)
- Wnioski (107)
Rozdział 4. Matematyka część II: wektory w dwóch wymiarach (109)
- Wektory (109)
- Klasa Vector (110)
- Konstruktor klasy Vector (111)
- Metoda Vector.toString() (111)
- Metoda Vector.reset() (112)
- Metoda Vector.getClone() (112)
- Metoda Vector.equals() (113)
- Dodawanie wektorów (114)
- Metoda Vector.plus() (115)
- Metoda Vector.plusNew() (115)
- Odejmowanie wektorów (116)
- Metoda Vector.minus() (116)
- Metoda Vector.minusNew() (116)
- Odwracanie wektora (117)
- Metoda Vector.negate() (117)
- Metoda Vector.negateNew() (118)
- Skalowanie wektorów (118)
- Metoda Vector.scale() (118)
- Metoda Vector.scaleNew() (119)
- Długość wektora (119)
- Metoda Vector.getLength() (120)
- Metoda Vector.setLength() (120)
- Orientacja wektora (121)
- Metoda Vector.getAngle() (121)
- Metoda Vector.setAngle() (122)
- Obracanie wektora (122)
- Metoda Vector.rotate() (123)
- Metoda Vector.rotateNew() (123)
- Iloczyn skalarny (124)
- Interpretacja iloczynu skalarnego (124)
- Metoda Vector.dot() (124)
- Wektory prostopadłe (125)
- Poszukiwanie normalnej wektora (125)
- Metoda Vector.getNormal() (125)
- Sprawdzanie prostopadłości wektorów (126)
- Metoda Vector.isNormalTo() (126)
- Obliczanie kąta między dwoma wektorami (127)
- Wyprowadzenie wzoru na kąt między wektorami (127)
- Metoda Vector.angleBetween() (128)
- Traktowanie punktów jako wektory (128)
- Wnioski (130)
Rozdział 5. Matematyka część III: wektory w trzech wymiarach (131)
- Osie X, Y i Z (131)
- Klasa Vector3d (132)
- Konstruktor klasy Vector3d (132)
- Metoda Vector3d.toString() (132)
- Metoda Vector3d.reset() (133)
- Metoda Vector3d.getClone() (133)
- Metoda Vector3d.equals() (134)
- Podstawowe operacje z udziałem trójwymiarowych wektorów (134)
- Metoda Vector3d.plus() (134)
- Metoda Vector3d.plusNew() (135)
- Metoda Vector3d.minus() (135)
- Metoda Vector3d.minusNew() (136)
- Metoda Vector3d.negate() (136)
- Metoda Vector3d.negateNew() (137)
- Metoda Vector3d.scale() (137)
- Metoda Vector3d.scaleNew() (137)
- Metoda Vector3d.getLength() (138)
- Metoda Vector3d.setLength() (138)
- Iloczyny wektorów (139)
- Iloczyn skalarny (139)
- Metoda Vector3d.dot() (140)
- Iloczyn wektorowy (140)
- Metoda Vector3d.cross() (142)
- Kąt między dwoma wektorami (142)
- Równanie pozwalające na wyznaczenie kąta (143)
- Metoda Vector3d.angleBetween() (143)
- Rzutowanie wektora na płaszczyznę ekranu (144)
- Metoda Vector3d.getPerspective() (144)
- Metoda Vector3d.persProject() (145)
- Metoda Vector3d.persProjectNew() (146)
- Obroty w trzech wymiarach (146)
- Obrót wokół osi X (146)
- Metoda Vector3d.rotateX() (146)
- Metoda Vector3d.rotateXTrig() (147)
- Obrót wokół osi Y (148)
- Metoda Vector3d.rotateY() (148)
- Metoda Vector3d.rotateYTrig() (149)
- Obrót wokół osi Z (149)
- Metoda Vector3d.rotateZ() (150)
- Metoda Vector3d.rotateZTrig() (150)
- Metoda Vector3d.rotateXY() (151)
- Metoda Vector3d.rotateXYTrig() (151)
- Metoda Vector3d.rotateXYZ() (152)
- Metoda Vector3d.rotateXYZTrig() (152)
- Rysowanie czÄ…steczek w trzech wymiarach (153)
- Klasa Particle3d (153)
- Metoda Particle3d.attachGraphic() (155)
- Metoda Particle3d.render() (155)
- Przykład: ściana cząsteczek (156)
- Przygotowania (157)
- Funkcja getWallPoints() (157)
- Inicjalizacja ściany (158)
- Funkcja arrayRotateXY() (159)
- Animowanie z udziałem zdarzenia onEnterFrame (159)
- Wnioski (160)
Rozdział 6. Programowanie zdarzeń (161)
- Model zdarzeń we Flashu 5 (161)
- Model obsługi zdarzeń we Flashu MX (162)
- Detektory zdarzeń przycisków i klipów filmowych we Flashu MX (163)
- Przykład: Poślizg MX (164)
- Sondy (167)
- Programowanie bazujÄ…ce na czasie (167)
- Programowanie bazujÄ…ce na zdarzeniach (168)
- Nasłuchiwanie zdarzeń obiektów Flasha MX (169)
- Przykład: nasłuchiwanie zdarzeń pola tekstowego (170)
- Wysyłanie zdarzeń do wielu obiektów (171)
- Wbudowane źródła zdarzeń (172)
- Zajrzyjmy głębiej (172)
- Możliwości źródeł zdarzeń (173)
- Obiekt ASBroadcaster (174)
- Inicjalizacja źródła zdarzeń (174)
- Rozsyłanie zdarzeń (175)
- Źródło zdarzeń NewsFeed (176)
- Konstruktor obiektu NewsFeed (177)
- Metoda NewsFeed.toString() (177)
- Inicjalizacja źródła zdarzeń za pomocą metody ASBroadcaster (177)
- Modyfikacja konstruktora (178)
- Metoda NewsFeed.sendNews() (178)
- Przygotowywanie systemu (179)
- Tworzenie obiektu będącego źródłem zdarzeń (180)
- Tworzenie obiektu, dla którego zostanie założona sonda (180)
- Definiowanie detektorów zdarzeń (180)
- Zakładanie sond (181)
- Rozsyłanie zdarzeń (181)
- Wnioski (182)
Część III Dynamiczna grafika (183)
Rozdział 7. Ruch, klatki pośrednie, przyspieszanie i zwalnianie (185)
- Zasady ruchu (185)
- Dodatkowe informacje o położeniu (186)
- Położenie jako funkcja czasu (187)
- Ruch jako wykres (187)
- Statyczne klatki pośrednie we Flashu (188)
- Dynamiczne klatki pośrednie w ActionScript (189)
- Przejście wykładnicze (189)
- Podstawowe komponenty przejścia (191)
- Funkcje przejść (191)
- Przejście liniowe (192)
- Wykres (192)
- Funkcja w ActionScript (194)
- Implementacja przejścia za pomocą funkcji (194)
- Estetyka ruchu liniowego (196)
- Wygładzanie ruchu (197)
- Estetyka ruchu przyspieszonego (198)
- Przyspieszenie (198)
- Spowolnienie (199)
- Przyspieszenie i spowolnienie w jednym (199)
- Odmiany przejść z przyspieszeniem (200)
- Przyspieszenie kwadratowe (200)
- Przyspieszenie stopnia trzeciego (201)
- Przyspieszenie stopnia czwartego (202)
- Przyspieszenie stopnia piÄ…tego (203)
- Przyspieszenie sinusoidalne (204)
- Przyspieszenie wykładnicze (205)
- Przyspieszenie kołowe (206)
- Wprowadzenie do klasy Tween (207)
- Klasa Motion (207)
- Konstruktor Motion (207)
- Metody publiczne (209)
- Metody ustawiania i pobierania (213)
- Metody prywatne (217)
- Właściwości pobierania i ustawiania (218)
- Zakańczanie (219)
- Klasa Tween (219)
- Konstruktor Tween (220)
- Metody publiczne (221)
- Metody pobierania i ustawiania (223)
- Właściwości pobierania i ustawiania (224)
- Zakańczanie (225)
- Wnioski (225)
Rozdział 8. Fizyka (227)
- Kinematyka (227)
- Położenie (227)
- Przemieszczenie (228)
- Odległość (229)
- Prędkość (229)
- Szybkość (231)
- Przyspieszenie (231)
- Siła (233)
- Pierwsze prawo dynamiki Newtona (233)
- Siła niezrównoważona (siła wypadkowa) (234)
- Drugie prawo dynamiki Newtona (235)
- Ruch we Flashu sterowany siłą (236)
- Tarcie (237)
- Tarcie kinetyczne (238)
- Tarcie statyczne (239)
- Tarcie dla cieczy i gazów (240)
- Grawitacja w kosmosie (241)
- Grawitacja w pobliżu powierzchni (244)
- Elastyczność (sprężystość) (245)
- Stan spoczynkowy (246)
- Prawo Hooke'a (246)
- Stała sprężystości (246)
- Kierunek siły sprężystości (247)
- Implementacja w ActionScript (247)
- Ruch falowy (248)
- Amplituda (249)
- Częstotliwość (249)
- Okres (250)
- Przesunięcie czasu (251)
- Offset (251)
- Równanie fali (252)
- Klasa WaveMotion (252)
- Konstruktor WaveMotion (252)
- WaveMotion.getPosition() (253)
- Metody ustawiania i pobierania (253)
- Właściwości ustawiania i pobierania (255)
- Używanie WaveMotion (255)
- Wnioski (256)
Rozdział 9. Kolorowanie w ActionScript (257)
- Ustawianie koloru (257)
- Color.setRGB() (257)
- MovieClip.setRGB() (258)
- Color.getRGB() (259)
- MovieClip.getRGB() (259)
- Color.setRGBStr() (259)
- MovieClip.setRGBStr() (260)
- Color.getRGBStr() (260)
- MovieClip.getRGBStr() (261)
- Color.setRGB2() (262)
- MovieClip.setRGB2() (262)
- Color.getRGB2() (263)
- MovieClip.getRGB2() (264)
- Przekształcenia kolorów (264)
- Color.setTransform() (264)
- MovieClip.setColorTransform() (265)
- Color.getTransform() (265)
- MovieClip.getColorTransform() (265)
- Powrót do oryginalnego koloru (265)
- Color.reset() (265)
- MovieClip.resetColor() (266)
- Sterowanie jasnością (266)
- Color.setBrightness() (267)
- MovieClip.setBrightness() (267)
- Color.getBrightness() (268)
- MovieClip.getBrightness() (268)
- Przesunięcie jasności (268)
- Color.setBrightOffset() (269)
- MovieClip.setBrightOffset() (269)
- Color.getBrightOffset() (270)
- MovieClip.getBrightOffset() (270)
- Zabarwienie (270)
- Color.setTint() (270)
- MovieClip.setTint() (271)
- Color.getTint() (271)
- MovieClip.getTint() (271)
- Offset zabarwienia (272)
- Color.setTintOffset() (272)
- MovieClip.setTintOffset() (272)
- Color.getTintOffset() (272)
- MovieClip.getTintOffset() (273)
- Odwrócenie kolorów (273)
- Color.invert() (273)
- MovieClip.invertColor() (274)
- Color.setNegative() (274)
- MovieClip.setNegativeColor() (274)
- Color.getNegative() (274)
- MovieClip.getNegativeColor() (275)
- Zmiany poszczególnych kolorów (275)
- setRed() (275)
- setGreen() (275)
- setBlue() (276)
- getRed() (276)
- getGreen() (276)
- getBlue() (276)
- Dodawanie właściwości koloru do klipu filmowego (277)
- MovieClip._red, _green i _blue (277)
- MovieClip._rgb (279)
- MovieClip._brightness (279)
- MovieClip._brightOffset (280)
- Wnioski (280)
Rozdział 10. Rysowanie w ActionScript (281)
- Interfejs programistyczny rysowania kształtów (281)
- MovieClip.moveTo() (282)
- MovieClip.lineTo() (282)
- MovieClip.lineStyle() (282)
- MovieClip.curveTo() (283)
- MovieClip.beginFill() (283)
- MovieClip.beginGradientFill() (284)
- MovieClip.endFill() (284)
- MovieClip.clear() (285)
- Animacja i dynamiczne rysowanie (285)
- Animacja klipu filmowego (285)
- Animacja kształtu (286)
- Rysowanie typowych kształtów (287)
- Linie (287)
- Trójkąty (288)
- Czworobok (290)
- ProstokÄ…ty (290)
- Kwadraty (293)
- Kropki (294)
- Wieloboki (295)
- Wieloboki foremne (296)
- Elipsy (297)
- Okręgi (298)
- Znajdowanie położenia kursora rysowania (298)
- Właściwości MovieClip._xpen i _ypen (298)
- Właściwości MovieClip._xpenStart i _ypenStart (299)
- Inicjalizacja właściwości (300)
- Krzywe Beziera stopnia trzeciego (300)
- Krzywe Beziera stopnia drugiego a trzeciego (301)
- Metody rysowania krzywych Beziera stopnia trzeciego (303)
- Wnioski (305)
Część IV Przykłady (307)
Rozdział 11. Nocna aura (309)
- Rozwój pomysłu (309)
- Klasa PhysicsParticle (310)
- Konstruktor (310)
- Metody publiczne (312)
- Metody pobierania i ustawiania (313)
- Metody prywatne (315)
- Właściwości pobierania i ustawiania (320)
- Wykańczanie (320)
- Klasa Force (320)
- Konstruktor (321)
- Metody pobierania i ustawiania (321)
- Pozostałe metody (323)
- Właściwości pobierania i ustawiania (324)
- Wykańczanie (325)
- Klasa ElasticForce (325)
- Konstruktor (325)
- Metody (326)
- Właściwości pobierania i ustawiania (328)
- Zakańczanie (328)
- Prosty przykład (328)
- Kod FLA przykładu Aurora Borealis (329)
- Kod głównej listwy czasowej (329)
- Komponent aurora (330)
- Klip filmowy czÄ…steczki (330)
- Wnioski (334)
Rozdział 12. Śnieżyca (335)
- Klasa Snowflake (335)
- Funkcje pomocnicze (337)
- Konstruktor Snowflake (338)
- Metody ustawiania i pobierania (339)
- Metody prywatne (341)
- Klasa Snowstorm (346)
- Konstruktor Snowstorm (346)
- Metody publiczne (347)
- Kod przykładu Snowstorm (349)
- Kod głównej listwy czasowej (349)
- Komponent snowstorm (349)
- Metody komponentu (350)
- Wnioski (352)
Rozdział 13. Fraktalny tancerz (353)
- Komponent FractalTree (354)
- Parametry komponentu (354)
- Metody (355)
- Klasa FractalBranch (357)
- Konstruktor FractalBranch (357)
- Metody (358)
- Klasa MotionCam (362)
- Konstruktor MotionCam (362)
- Metody publiczne (363)
- Metody pobierania i ustawiania (365)
- Metody prywatne (367)
- Wnioski (368)
Rozdział 14. Cyklon (369)
- Wymyślanie cyklonu (370)
- Rozbijamy zagadnienie (373)
- CzÄ…steczka (373)
- Ścieżka (373)
- Path.onEnterFrame() (373)
- Path.init() (374)
- Oval (375)
- Oval.init() (375)
- Oval.sidewind() (376)
- Komponent Cyclone (376)
- Cyclone.init() (377)
- Cyclone.makeParticle() (377)
- Cyclone.grow() (378)
- Cyclone.sidewind() (379)
- Cyclone.startSidewind() i stopSidewind() (380)
- Parametry komponentu (380)
- Dragger (381)
- Akcje w klatkach (381)
- Dragger.appear() (381)
- Dragger.onEnterFrame() (381)
- Akcje przycisku (382)
- Wnioski (382)
Dodatki (383)
Skorowidz (385)