GRAFIKA ANIMACYJNA 1

Podobne dokumenty
GRAFIKA ANIMACYJNA 1

Ćwiczenie 11 Dynamiczne ładowanie treści wyświetlanych

Ćwiczenie 1 Galeria zdjęć

Ćwiczenie 22 Dynamiczne wczytywanie tekstu z pliku.txt

Krótki kurs JavaScript

1 Zrozumieć Flasha... 1 Co można zrobić za pomocą Flasha?... 2 Tworzenie obrazków do strony 3 Animowanie witryny 4 Tworzenie filmów

INTERAKTYWNA KOMUNIKACJA WIZUALNA. Flash - podstawy

PROGRAMOWANIE W ŚRODOWISKU FLASH wykład 2

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Spis treści. Księgarnia PWN: Roland Zimek - Swish Max3

1 Podstawy c++ w pigułce.

Cw.12 JAVAScript w dokumentach HTML

Języki skryptowe w programie Plans

Ćwiczenie 23 Praca z plikiem.psd

Spis treści. Księgarnia PWN: Roland Zimek - SWiSH Max2 i SWiSH Max3. Wprowadzenie... 9

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Podstawy programowania skrót z wykładów:

JAVAScript w dokumentach HTML (1)

1 Podstawy c++ w pigułce.

Wykład 2 Składnia języka C# (cz. 1)

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

JAVAScript w dokumentach HTML - przypomnienie

Multimedia i interfejsy. Ćwiczenie 5 HTML5

Adobe Flash CS6 i ActionScript 3.0 : interaktywne projekty od podstaw / Paweł Zakrzewski. Gliwice, cop Spis treści

Programowanie w języku Python. Grażyna Koba

Ćwiczenie 25 Działania matematyczne we Flashu

Ćwiczenie 6 Animacja trójwymiarowa

JAVAScript w dokumentach HTML (2)

Tworzenie Stron Internetowych. odcinek 10

Umieszczanie kodu. kod skryptu

Wizualne systemy programowania. Wykład 11 Grafika. dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD

Podstawy Programowania C++

Dodanie nowej formy do projektu polega na:

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

I. Spis treści I. Spis treści... 2 II. Kreator szablonów Tworzenie szablonu Menu... 4 a. Opis ikon Dodanie nowego elementu...

PHP: bloki kodu, tablice, obiekty i formularze

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Uniwersytet Łódzki dla dzieci

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

REKLAMA INTERNETOWA WYMAGANIA TECHNICZNE

Spis treści. Wstęp...5 Co daje ActionScript... 5 Gdzie dołączać skrypty... 6 Prosta interaktywna animacja... 7

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Poznajemy język ACTIONSCRIPT 3.0

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Ćwiczenie 1 Automatyczna animacja ruchu

Wprowadzenie do programowania

Pętle. Dodał Administrator niedziela, 14 marzec :27

Sieciowe Technologie Mobilne. Laboratorium 2

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Podstawy JavaScript ćwiczenia

Rys.2.1. Drzewo modelu DOM [1]

Telewizja przemysłowa (CCTV) w RACS 5

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Grafika PHP dla początkujących

Każde wykonanie bloku instrukcji nazywamy pojedynczym przebiegiem lub iteracją pętli.

Modelowanie rynków finansowych z wykorzystaniem pakietu R

LibreOffice Calc VBA

Kwerenda. parametryczna, z polem wyliczeniowym, krzyżowa

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Ćwiczenie: JavaScript Cookies (3x45 minut)

Należy ściągnąć oprogramowanie Apache na platformę

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

Język ludzki kod maszynowy

if ((_root.clickthru == undefined) && (_root.clicktag)) { _root.clickthru = _root.clicktag;

Bazy Danych i Usługi Sieciowe

4. Funkcje. Przykłady

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PODSTAWOWY.

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Podstawowe części projektu w Javie

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

1 Wielokrotne powtarzanie tych samych operacji

Ćwiczenie 1. Wprowadzenie do programu Octave

Pascal - wprowadzenie

OBIEKTY TECHNICZNE OBIEKTY TECHNICZNE

Baltie 3. Podręcznik do nauki programowania dla klas IV - VI szkoły podstawowej. Tadeusz Sołtys, Bohumír Soukup

PyX jest pakietem Pythona do grafiki wektorowej. Pozawala zatem tworzyd pliki EPS oraz PDF.

Wykład 03 JavaScript. Michał Drabik

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Specyfikacja techniczna

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

XML extensible Markup Language. część 5

Specyfikacja techniczna formatów reklamowych w serwisach internetowych Wydawnictwa Te-Jot.

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Pętla for. Wynik działania programu:

Funkcje i instrukcje języka JavaScript

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Way2traffic.com. Specyfikacja techniczna dla reklamodawców. Formy reklamowe serwowane w sieci Pixad.

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

Transkrypt:

1

Dynamiczna Animacja Komputerowa Rok akademicki 2015/2016 opracowanie: dr Joanna Sekulska-Nalewajko 2

Plan wykładu cz. I Podstawy ActionScript Obiekt i jego obsługa Klasy Operatory i znaki specjalne 3

ActionScript 3.0 Sercem języka ActionScript są obiekty i klasy Obiekt jest typem danych, który wykorzystujemy do kontrolowania filmu. Obiektami są np: dźwięk, tekst, grafika, klip filmowy wartość liczbowa, data, tablica (zbiór danych) 4

ActionScript 3.0 Wszystkie tworzone obiekty należą do większej zbiorczej grupy zwanej Klasą. Np. klasa Sound //dźwięk klasa Video //obraz wideo klasa Array //tablica klasa Math //funkcje i stałe matematyczne klasa MovieClip //klip filmowy klasa SimpleButton //przycisk Obiekty tworzony w danej klasie jest egzemplarzem danej klasy. 5

Konstruktor klasy Tworzenie obiektu przy użyciu operatora new jest często nazywane wywołaniem konstruktora klasy. var circle:sprite = new Sprite(); Operatora new można używać nawet do tworzenia instancji obiektów należących do typów danych, które dopuszczają tworzenie instancji na podstawie wyrażeń literałowych. var somenumber:number = 6.33; var somenumber:number = new Number(6.33); 6

Przykłady 7

ActionScript 3.0 Obiekty z jednej klasy mogą różnić się między sobą właściwościami We Flashu każda z klas ma predefiniowany zestaw właściwości np. klasa Sound ma właściwość length określającą czas trwania dźwięku (w ms) klasa MovieClip ma właściwość height, width, x, y, rotation, które określają wymiary, położenie... 9

ActionScript 3.0 Obiekty mogą wykonywać też pewne czynności, które nazywa się metodami Każda klasa ma własny zestaw metod np.: klasa MovieClip posiada metodę gotoandstop(), która zmienia aktywną klatkę klasa Date posiada metodę getday(), która pobiera bieżący dzień tygodnia. Mówimy, że dana metoda jest wywoływana przez obiekt albo, że obiekt wywołuje metodę 10

ActionScript 3.0 Notacja kropkowa umożliwia łączenie obiektów, ich właściwości i metod w instrukcje: pierwszy_mc.width = 155; drugi_mc.rotation = 45; trzeci_mc.gotoandstop(10); czwarty_mc.scalex = 1.5; Mouse.hide(); 11

Znaki specjalne Znaki interpunkcyjne: ; - (średnik) kończy wiersz instrukcji { } - (nawias klamrowy) grupuje instrukcje, które mają być wykonane razem np. wewnątrz funkcji function dothis(event:mouseevent):void { pierwszy_mc.stop(); pierwszy_mc.rotation = 45; } 12

Znaki specjalne Znaki interpunkcyjne:, - (przecinek) oddziela parametry przekazywane do metod pierwszy_mc.gotoandstop( Scene 1,20); Wielkie i małe litery AS rozróżnia wielkość liter. 13

Komentarz // - komentuje jedną linie kodu /*... */ - komentuje fragment kodu /* function dothis(event:mouseevent):void { pierwszy_mc.stop(); pierwszy_mc.rotation = 45; } */ 14

Operatory Operatory to specjalne symbole (a niekiedy słowa) służące do wykonywania obliczeń. Używane są do wykonywania operacji matematycznych: Operator dodawania (+) Operator odejmowania(-) var sum:number = 23 + 32; var roznica:number = 43-32; 15

Operatory Operator dodawania (+) Jeśli oba operandy są ciągami znaków, operator dodawania zwraca ciąg znaków będący konkatenacją obu operandów. var liczba:string = 5 + 5 ; //55 16

Operatory multiplikatywne E=mc 2 var energy:number = mass * speedoflight * speedoflight; 17

Operatory jednorgumentowe operator inkrementacji (++) operator dekrementacji (--) - przyjmują tylko jeden operand. zmienna1 ++ lub ++ zmienna1 zmienna2 -- lub -- zmienna2 zmienna3 += 5 zmienna4 -=10 18

Operatory porównania //true lub false if (dayofweek == "Wednesday"){ takeouttrash();} operatory porównań najczęściej używane są z instrukcją if w celu ustalenia, czy określone instrukcje powinny być wykonane, czy nie. 19

Operatory logiczne Operatory logiczne mają dwa operandy i zwracają wynik typu Boolean (prawda, fasz) Logiczne AND if(scoreright==0 && scoreleft==0){ scorel.text="score of Player 2:" + scoreleft; scorep.text="score of Player 1:" + scoreright;} 20

Instrukcja warunkowa if...else Instrukcja warunkowa if..else umożliwia sprawdzenie warunku i wykonanie jednego bloku kodu, jeśli warunek jest spełniony, albo innego bloku kodu, jeśli warunek nie jest spełniony. if (x > 20){ trace("x is > 20");} else{ trace("x is <= 20");} Jeśli nie chcemy wykonywać alternatywnego bloku kodu, możemy użyć instrukcji if bez instrukcji else. 21

if...else if Korzystając z instrukcji warunkowej if..else if, można sprawdzać więcej niż jeden warunek. if (x > 20){ trace("x is > 20");} else if (x < 0){ trace("x is negative");} Jeśli po instrukcji if lub else następuje tylko jedna instrukcja, nie trzeba jej ujmować w nawiasy sześcienne. 22

switch Instrukcja switch jest użyteczna, jeśli mamy kilka możliwych ścieżek wykonania, a wybór jednej z nich zależy od wartości tego samego wyrażenia warunkowego. Zamiast sprawdzać wartość logiczną warunku, instrukcja switch oblicza wartość wyrażenia i na podstawie wyniku wybiera jeden z bloków kodu do wykonania. 24

switch var somedate:date = new Date(); var daynum:uint = somedate.getday(); switch(daynum){ case 0: trace("sunday"); break;... case 6: trace("saturday"); break; default: trace("out of range"); break; } 26

Pętle Instrukcje pętli umożliwiają wielokrotne wykonywanie określonego bloku kodu z różnymi wartościami lub zmiennymi. blok kodu należy ujmować w nawiasy sześcienne ({ }). Nawiasy te można pominąć, jeśli kod zawiera tylko jedną instrukcję. 27

For Pętla działa poprzez iteracyjną zmianę wartości zmiennej w ramach określonego przedziału wartości znana jest liczba wykonań pętli. W nawiasie instrukcji for należy podać trzy wyrażenia: zmienną z przypisaną wartością początkową, instrukcję warunkową, która decyduje o zakończeniu pętli, wyrażenie zmieniające wartość zmiennej w każdej iteracji. var i:int; for (i = 0; i < 5; i++) { } trace(i); //funkcja trace wyświetla wartość w oknie Informacje wyjściowe 28

while Pętla while działa jak instrukcja if powtarzana tak długo, jak długo warunek jest spełniony (true). Poniższy przykładowy kod generuje te same wyniki, co wcześniejszy przykład z pętlą for: var i:int = 0; while (i < 5) { trace(i); i++; } ile razy wykonała sie ta pętla? 29

do...while Pętla do..while jest to pętla while, w której blok kodu zostanie zawsze wykonany co najmniej jeden raz, ponieważ warunek jest sprawdzany po wykonaniu bloku kodu. var i:int = 5; do { trace(i); i++; } while (i < 5); // output: 5 ile razy wykonała sie ta pętla? 30

Plan wykładu Obsługa zdarzeń Klasa Loader Klasa URLLoader Klasa Timer Klasa Video, NetConnection, NetStream Detekcja kolizji 31

Zdarzenia Każda taka interakcja użytkownika z plikiem SWF jest traktowana jako zdarzenie. Zdarzenia mogą również występować bez bezpośredniej interakcji użytkownika. Przykłady zdarzeń: wprowadzenie danych przez użytkownika kliknięcie przycisku załadowanie obrazu odtwarzanie klatki. 32

Obsługa zdarzeń Pisząc kod obsługujący zdarzenia, musimy brać pod uwagę trzy ważne elementy: Źródło zdarzenia: na przykład, który przycisk zostanie kliknięty lub który obiekt Loader ładuje obraz. Zdarzenie: co takiego ma się stać i na co będziemy reagować? Identyfikacja zdarzenia jest ważna, ponieważ w wielu obiektach może zachodzić więcej niż jeden rodzaj zdarzeń. Reakcja: jakie operacje chcemy wykonać, gdy zajdzie zdarzenie? 33

Obsługa zdarzeń Kod obsługi zdarzeń w języku ActionScript zawsze będzie zawierał wymienione wyżej trzy elementy. Oto podstawowa struktura takiego kodu: function eventresponse(eventobject:eventtype):void { // instrukcje do wykonania. } eventsource.addeventlistener(eventtype.event_name, eventresponse); 34

Obsługa zdarzeń function showhello(event:mouseevent):void{ if (powitanie_mc.currentlabel=="goout"){ powitanie_mc.gotoandplay("goin");} } start_btn.addeventlistener(mouseevent.click, showhello); 35

Przyciski interaktywne function showhello(event:mouseevent):void{ if (powitanie_mc.currentlabel=="goout"){ powitanie_mc.gotoandplay("goin");} } start_btn.addeventlistener(mouseevent.click, showhello); 36

Zdarzenia myszy Zdarzenia myszy obsługiwane przez klasę obiektów MouseEvent: MOUSE_OVER kursor myszy nad obiektem MOUSE_DOWN przycisk myszy jest wciśnięty MOUSE_UP przycisk myszy nie jest wciśnięty MOUSE_MOVE przesunięcie myszy kursora po ekranie MOUSE_OUT kursor opuszcza obszar obiektu docelowego MOUSE_WHEEL kółko myszy obraca się CLICK naciśnięcie i zwolnienie przycisku myszy DOUBLE_CLICK szybkie dwukrotne naciśnięcie i zwolnienie przycisku myszy 37

Odbiorniki zdarzeń myszy Flash może nasłuchiwać zdarzeń myszy w obrębie każdego obiektu należącego do klasy InteractiveObject: przyciski pola tekstowe obiekty z klasy Loader obiekty z klasy Sprite klipy filmowe scena filmu 38

Zdarzenia filmu i obiektów ENTER_FRAME każdy obiekt wyświetlany zawiera to zdarzenie wywoływane zgodnie z liczbą klatek na sekundę pliku SWF jedno zdarzenie na jedną klatkę sposób na powtarzanie określonych operacji w czasie this.addeventlistener(event.enter_frame, onenterframe); 39

Zdarzenia pól tekstowych var mytextbox:textfield = new TextField(); var myoutputbox:textfield = new TextField(); var mytext:string = "Type your text here."; function capturetext():void{ mytextbox.type = TextFieldType.INPUT; mytextbox.background = true; addchild(mytextbox); mytextbox.text = mytext; } mytextbox.addeventlistener(textevent.text_input, textinputcapture); function textinputcapture(event:textevent):void{ var str:string = mytextbox.text; createoutputbox(str); } function createoutputbox(str:string):void... 40

Dynamiczność projektów Dynamiczne tworzenie grafiki, instancji klipów, przycisków i pól tekstowych Dynamiczne tworzenie masek Dynamiczne animacje Dynamiczne wprowadzanie tekstu Dynamiczne ładowanie treści graficznych (obrazów rastrowych i plików.swf) Dynamiczne ładowanie filmów i dźwięków Obliczenia matematyczne na zmiennych liczbowych inne działania na zmiennych 41

Dynamiczne tworzenie grafiki var rect:sprite = new Sprite(); //kwadrat rect.graphics.beginfill(0xff0000); rect.graphics.drawrect(50,50,100,100); rect.graphics.endfill(); var circle:sprite = new Sprite(); //koło circle.graphics.beginfill(0xff4000); circle.graphics.drawcircle(100,100,10); circle.graphics.endfill(); klasa Shape lub Sprite 42

Grafika do animacji var circle:sprite = new Sprite(); circle.graphics.beginfill(0x990000); circle.graphics.drawcircle(50, 50, 50); circle.graphics.endfill(); addchild(circle); import flash.display.sprite; import flash.events.event; import flash.events.mouseevent; circle.addeventlistener(mouseevent.click, startanimation); function startanimation(event:mouseevent):void{ circle.addeventlistener(event.enter_frame, fadecircle);} function fadecircle(event:event):void{ circle.alpha -=.05; if (circle.alpha <= 0){ circle.removeeventlistener(event.enter_frame, fadecircle);} } 43

Klasa Graphics Klasa GRAPHICS udostępnia wiele metod rysowania i wypełniania obiektów: linestyle Definiuje styl linii linegradientstyle Wypełnienie linii gradientem beginfill Zdefiniowanie koloru wypełnienia jednolitego begingradientfill Zdefiniowanie wypełnienia gradientowego beginbitmapfill Wypełnia obszar rysunkowy obrazem bitmapowym beginshaderfill Określa wypełnienie cieniowane, endfill Koniec danego wypełnienia clear Resetuje wypełnienia i style linii moveto Zmienia położenie kursora rysowania na (x, y) lineto Rysuje linię z obecnej pozycji rysowania do (x,y) curveto Rysuje krzywą Beziera drawcircle Rysuje okrąg drawellipse Rysuje elipsę drawrect Rysuje prostokąt drawroundrect Rysuje zaokrąglony prostokąt 44

Dynamiczne tworzenie przycisku Przycisk można utworzyć za pomocą ActionScript. Należy w tym celu: posłużyć się konstruktorem obiektu klasy SimpleButton() zdefiniować cztery klatki kluczowe przycisku za pomocą właściwości: upstate, overstate, downstate, oraz hitteststate przechwycić grafikę do stanów przycisku (może być to dowolny obraz, klip, dynamicznie stworzona grafika klasy Shape lub Sprite, pole tekstowe) 45

Dynamiczne tworzenie przycisku Importowanie klas tworzonych obiektów Zdefiniowanie grafiki dla stanu Up przycisku Zdefiniowanie grafiki dla stanu Over przycisku Konstruktor nowego obiektu typu przycisk Zdefiniowanie zawartości klatek kluczowych przycisku Dodanie przycisku do listy wyświetlania 46

Dynamiczne tworzenie klipów Klip można utworzyć z poziomu ActionScript w klasie MovieClip lub Sprite: var myclip:movieclip = new MovieClip();...//definiowanie grafiki lub inne czynności var mymask:sprite = new Sprite();...//definiowanie grafiki addchild(myclip); addchild(mymask); myclip.alpha = 50; mymask.buttonmode = true; 47

Dynamiczne ładowanie treści Do aplikacji Flash można załadować dynamicznie: Plik SWF utworzony w języku ActionScript 3.0 Plik SWF zapisany w języku ActionScript 1.0 lub 2.0. Plik obrazu JPG, PNG i GIF. tekst film dźwięk zmienne 48

Dynamiczne ładowanie obrazów Do ładowania plików graficznych oraz plików.swf służy klasa Loader. Plik będący kontenerem, zawiera kod AS ładujący plik SWF Zewnętrzny plik SWF ładowany do kontenera 49

Dynamiczne ładowanie obrazów należy stworzyć obiekt Loader, wskazać podrzędny obiekt wyświetlany (np. plik.swf), a następnie dodać obiekt Loader do listy wyświetlania: var movieloader:loader = new Loader(); var movieurl:string = "galeria.swf"; var movieurlreq:urlrequest = new URLRequest(movieURL); movieloader.load(movieurlreq); this.addchild(movieloader); 50

Monitorowanie postępu ładowania Po rozpoczęciu ładowania pliku następuje utworzenie obiektu LoaderInfo. Obiekt ten zawiera informacje, takie jak: postęp ładowania, adresy URL modułu ładującego adresy URL treści ładowanej, sumaryczna liczba bajtów dla nośnika, a także nominalna wysokość i szerokość nośnika. Obiekt LoaderInfo wywołuje również zdarzenia dla monitorowania postępu ładowania. 51

Monitorowanie postępu ładowania W celu uzyskania dostępu do ładowanej treści należy dodać do obiektu LoaderInfo detektor zdarzeń var ldr:loader = new Loader(); var urlreq:urlrequest = new URLRequest("Circle.swf"); ldr.load(urlreq); ldr.contentloaderinfo.addeventlistener(event.complete, loaded); addchild(ldr); function loaded(event:event):void{ var content:sprite = event.target.content; content.scalex = 2; } 52

Monitorowanie postępu ładowania movieloader.contentloaderinfo.addeventlistener(progressevent.progress, progresshandler); function progresshandler(myevent:progressevent):void{ var myprogress:number= myevent.target.bytesloaded/myevent.target.bytestotal; bar_mc.scalex = myprogress; mytextfield_txt.text=math.round(myprogress*100)+"%"; } 54

Przenoszenie załadowanej treści Po załadowaniu pliku SWF lub obrazu możliwe jest przesunięcie załadowanego obiektu wyświetlanego do innego kontenera: var container:sprite = new Sprite(); import flash.display.*; addchild(container); import flash.net.urlrequest; var pictldr:loader = new Loader(); import flash.events.event; var picturlreq:urlrequest = new URLRequest("banana.jpg"); pictldr.load(picturlreq); pictldr.contentloaderinfo.addeventlistener(event.complete, imgloaded); function imgloaded(event:event):void{ } container.addchild(pictldr.content); 55

Obsługa danych i tekstu dynamicznie Klasa URLLoader udostępnia odrębny mechanizm ładowania tekstu i danych binarnych w aplikacjach zorientowanych na manipulowanie danymi. 56

Dynamiczne ładowanie tekstu Do ładowania tekstu i zmiennych z zewnętrznych plików tekstowych służy klasa URLLoader: var textloader:urlloader = new URLLoader(); var texturlrequest:urlrequest = new URLRequest("mapa.txt"); textloader.load(texturlrequest); textloader.addeventlistener(event.complete, dataok); var mytextfield:textfield=new TextField(); addchild(mytextfield); 57

Dynamiczne ładowanie tekstu 58

Klasa Timer Obiekt Timer służy do odliczania czasu według zadanych odstępów czasowych, dzieki temu można wykonywać zadania cyklicznie lub opóźniania wykonania pewnych czynności. Poniższy przykładowy kod tworzy instancję klasy Timer, która wywołuje zdarzenie co sekundę, przez 60 sekund: var oneminutetimer:timer = new Timer(1000, 60); 59

Klasa Timer Główne metody klasy Timer: oneminutetimer.start() oneminutetimer.stop() do zliczania odmierzonych okresów można wykorzystać właściwość event.target.currentcount 60

Klasa Timer Obiekt Timer wywołuje obiekt zdarzenia TimerEvent za każdym razem po upływie zadanego przedziału czasu. Typem zdarzenia skojarzonym z obiektem TimerEvent jest timer (typ zdefiniowany przez stałą TimerEvent.TIMER). 61

Klasa Timer Jeśli dla instancji klasy Timer zostanie określona liczba okresów, to po odliczeniu ostatniego okresu wywołane zostanie zdarzenie timercomplete zdefiniowane przez stałą TimerEvent.TIMER_COMPLETE 62

Klasa Timer 63

Klasa Video klasa tworzy obiekt Video, który odtwarza: zarejestrowane pliki wideo zapisane na serwerze lub lokalnie wideo przechwycone na żywo przez użytkownika. Obiekt Video jest obiektem wyświetlanym na liście wyświetlania aplikacji i reprezentuje obszar ekranu, na którym wyświetlany jest obraz wideo w interfejsie użytkownika. 64

Akceptowany format wideo FLV Formaty wideo dodatkowo: dane wideo zakodowane w ramach standardowych formatów plików MPEG-4. Formaty te umożliwiają strumieniowe przesyłanie wideo o wysokiej jakości przy mniejszej szybkości transmisji. 65

Wczytywanie wideo Wczytywanie wideo przy użyciu jest procesem wieloetapowym. Odbywa się za pomocą klas Video NetConnection NetStream 66

Etapy wczytywania wideo -1 Tworzenie obiektu Video przeznaczonego do wyświetlania wideo i dodanie go do listy wyświetlania stołu montażowego. var vid:video = new Video(); addchild(vid); 67

2 - Klasa NetConnection tworzy dwukierunkowe połączenie między klientem a serwerem. Aby nawiązać połączenie, należy wywołać metodę NetConnection.connect() przekazanie wartości null do metody connect() odtworzy plik spod adresu HTTP (serwera www) lub z dysku lokalnego. var nc:netconnection = new NetConnection(); nc.connect(null); 68

3 - Klasa NetStream Klasa NetStream otwiera jednokierunkowy kanał transmisji strumieniowej przez połączenie NetConnection. Tworząc obiekt NetStream, należy przekazać obiekt NetConnection jako argument do konstruktora. var ns:netstream = new NetStream(nc); 69

3 - Klasa NetStream Wywołanie metody NetStream.play() służy do odtworzenia pliku. jako argument podajemy adres URL pliku wideo. Następujący kod wczytuje i odtwarza plik wideo o nazwie video.mp4 znajdujący się w tym samym katalogu co plik SWF: ns.play("video.mp4"); 70

Etapy wczytywania wideo - 4 Przyłączanie obiektu NetStream do obiektu Video przy użyciu metody attachnetstream() obiektu Video. vid.attachnetstream(ns); 71

Wczytywanie wideo - kod var vid:video = new Video(); addchild(vid); var nc:netconnection = new NetConnection(); nc.connect(null); var ns:netstream = new NetStream(nc); ns.play("video.mp4"); vid.attachnetstream(ns); 72

Detekcja kolizji obj1.hittestobject(obj2) // true, false wyznacza prostokąt ograniczający obiekt wyświetlany w celu sprawdzenia, czy zachodzi on lub przecina się z prostokątem ograniczającym obiektu wyświetlanego obj. if(ball_mc.hittestobject(graczl_mc)){ stopdragobstacle(graczl_mc);} 73