Narzędzia i platformy programowania w Internecie Flash mgr inż. Marek Downar
RIA Rich Internet Applications Powinny dostarczać wydajny sposób wykonywania kodu, zawartości oraz komunikacji (ograniczenia standardowych stron XHTML) Umożliwiać rozszerzalny model obiektów pozwalający na budowanie aplikacji wysoce interaktywnych ( ograniczenia DOM, Javascript, DHTML) Udostępnianie obiektów działających po stronie serwera w postaci usług sieciowych bądź podobnych technologii separacja logiki prezentacji interfejsu użytkownika od logiki aplikacji wdrożonej na serwerze Umożliwienie pracy z aplikacją w przypadku utraty połączenia internetowego Ograniczenie ilości nadmiarowych danych transmitowanych z każdym żądaniem Duża zdolność do zapewnienia ROI
RIA
RIA - technologie AJAX, HTML, DHTML, Javascript, HTML5 Java Virtual Machine - JavaFX Microsoft Silverlight Silverlight XAML Microsoft Expression Studio Expression Web graficzny edytor HTML Expression Blend wytwarzanie aplikacji WPF (Windows Presentation Foundation) oraz aplikacji Silverlight Expression Designer Expression Encoder Moonlight (Linux, FreeBSD)
RIA - technologie Adobe Flash Platform Adobe Flash Player, AIR (Adobe Integrated Runtime) Wtyczki pozwalające na odtwarzanie animacji AIR usuwa zależność uruchamiania aplikacji od przeglądarki, pozwala na uruchamianie aplikacji jako desktopowe Flash Professional narzędzie do tworzenia bogatych graficznych aplikacji Flash Flex aplikacje Flex podobne do aplikacji AJAX, jednak z bogatszymi komponentami wizualnymi Action Script 3.0 język programowania (object oriented) MXML definiowanie GUI Flash Player 10 Flex SDK Flash Builder 4 Flash Catalyst tworzenie aplikacji z wykorzystaniem gotowych komponentów stworzonych w Adobe Photoshop, Illustrator, Fireworks
RIA - technologie Adobe Flash Platform Adobe Flash Player, AIR (Adobe Integrated Runtime) Wtyczki pozwalające na odtwarzanie animacji AIR usuwa zależność uruchamiania aplikacji od przeglądarki, pozwala na uruchamianie aplikacji jako desktopowe Flash Professional narzędzie do tworzenia bogatych graficznych aplikacji Flash Flex aplikacje Flex podobne do aplikacji AJAX, jednak z bogatszymi komponentami wizualnymi Action Script 3.0 język programowania (object oriented) MXML definiowanie GUI Flash Player 10 Flex SDK Flash Builder 4 Flash Catalyst tworzenie aplikacji z wykorzystaniem gotowych komponentów stworzonych w Adobe Photoshop, Illustrator, Fireworks
Porównanie cech platform
Wydajność
Funkcjonalność
Satysfakcja
Flash Standard animacji umieszczanych na stronach www, Nazwa programu Adobe (Macromedia) służącego do tworzenia animacji Nazwa programu do odtwarzania plików Cechy: Pozwala łączyć grafikę wektorową i rastrową, Interaktywnośc animacji Zagnieżdżanie dźwięku Łatwa integracja z www Niewielkie pliki flash swf Zastosowane do tworzenia animacji, reklam, gier, RIA
Historia 1996 Standard Flash 1.0 ogłoszony przez firmę Macromedia 2000 wtyczka do Flasha do najpopularniejszych przeglądarek WWW 2003 nowa wersja flash MX 2004 2005 firma Macromedia przejęta przez Adobe, Flash 8 2007 Adobe Flash CS3 2011 - Adobe Flash CS5.5 (obecna wersja) 2012/2013 spodziewany Adobe Flash CS6
Flash Standard flash jest otwarty ale licencja Adobe nie pozwala na tworzenie darmowych aplikacji do tworzenia plików SWF Duża industrialna kontrola nad standardem 99% przeglądarek www ma zainstalowaną wtyczkę Flash, można go odtwarzać na wszystkich systemach operacyjnych (Windows, Linux, MacOS, PalmOS, Pocket PC, Android, IOS,...) Streaming pozwala na wyświetlenie początku animacji w czasie gdy ładowana jest dalsza część
Flash - uwagi Standard binarny, utrudnione pozycjonowanie zawartości plików Flash przez Google Flashturbation skutkuje powstawaniem program ów do blokowania zawartości flash Pomimo sandbox co jakiś czas we Flash playerze wykrywane są luki, które pozwalają na włamania (animacje Flash ładują się automatycznie) Animacje z odwiedzających stron zapisują swoje dane w katalogu Application Data\Macromedia\FlashPlayer\SharedObjects. Przy następnym odwiedzeniu strony mogą je odczytać (mechanizm podobny do HTTP COOKIE) możliwy atak XSS
Platforma Flash
Programy Flash designer: Tworzenie interaktywnych animacji i kompilowanie ich do plików swf Niska cena Polska wersja Prosty w obsłudze Do ściągnięcia ze strony www.flashdesigner.pl Adobe Flash CSx Professional Wersja 30-dniowa do pobrania ze strony Adobe (Windows, MacOS)
Klatka (ramka) kluczowa Technologia Flash bazuje na pojęciu klatki (ramki kluczowej) key frame W animacji stanowi element łączący klatki pośrednie Zawiera kluczową dla danej sekwencji ruchu informację na temat rozmieszczenia elementów danej sceny (w przypadku animacji obiektów) bądź na temat pozy (w przypadku animacji człowieka) Występuje co określoną, niekoniecznie stałą (w zależności od typu animacji) liczbę klatek pośrednich W programach do animacji pojęcie klatki kluczowej oznacza to samo, co w animacji tradycyjnej, z tą różnicą, że klatki pośrednie tworzone są automatycznie dzięki wykorzystaniu algorytmów (tweening)
Ramki (klatki) Podobnie jak animacje w PowerPoint składają się z ramek (frames) W przeciwieństwie do PowerPoint ramki we Flash z regułu nie zmieniają się przez klikanie, ale pojawiają się na ekranie przez zadany czas (choć możliwa jest też interakcja ze strony użytkownika) Z reguły animacja zaczyna się od pierwszej ramki i kończy na ostatniej Matryca (master frame)
Obiekty i ich właściwości Na slajdach można umieszczać obiekty: Obrazki z plików, Kształty Teksty Obiekty aktywne (np. Przyciski, pola edycyjne) Zagnieżdżone animacje (sprite) Akcje Klonowanie
Zagnieżdżanie w kodzie HTML Znacznik <embed> (pochodzący od firmy Netscape) jest rozumiany przez większość przeglądarek, ale nie jest oficjalną częścią standardu HTML Znacznik <object> (pochodzący od Microsoft) jest rozumiany przez przeglądarki i jest częścią standardu Dołączenie poprzez Javascript z wykorzystaniem DOM (AC- RunActiveContent.js)
Action Script Język programowania wykorzystywany we Flash do tworzenia interaktywnych aplikacji sterowanych zdarzeniami Pojawił się we Flash 5, w pełni umożliwiał programowanie (AS1.0) Flash 7 (MX 2004) wprowadził wersję ActionScript 2.0 typowanie sztywne, jawne deklaracje klas, dziedziczenie, interfejsy, ścisłe typowanie danych Obecna wersja to AS3.0, gdzie uproszczono AS2.0 do wersji przyjaźniejszej programistom oraz wydajniejszej dla użytkowników końcowych w AS3.0 nie jest już możliwe umieszczanie skryptu bezpośrednio w obiekcie, takim jak przycisk czy wideo
Action Script 3.0 Kod dłuzszy niż w przypadku wcześniejszych wersji języka Nie może w prosty sposób integrować się z plikami Flash korzystającymi z wcześniejszych wersji, Flash Player 9 i nowsze odtwarzacze zostały wyposażone w dwa mechanizmy (jeden dla kodu AS3.0, a drugi dla wcześniejszych wersji) AVM1 AS1.0, AS2.0, AVM2 AS3.0 brak prostego miechanizmu komunikacji pomiędzy maszynami wirtualnymi
Action Script 3.0 Wyższa wydajność 2-10 razy, zdarzają sie aplikacje wykonywane nawet 100 razy szybciej możliwość tworzenia większych bardziej rozbudowanych interfejsów np trójwymiarowych i aplikacji powiązanych z bazami danych, Spójniejsza składnia możliwość wykorzystania znanych konstrukcji składniowych przy pracy z wieloma obiektami Lepszy mechanizm sprawdzania i opisu błędów Nowe funkcje dziesiątki nowych klas Środowisko programowania obiektowego bliższe standardom bazuje na normie ECMA i jest podobny do takich języków jak C++, Java, C#
Action Script 3.0 Wyższa wydajność 2-10 razy, zdarzają sie aplikacje wykonywane nawet 100 razy szybciej możliwość tworzenia większych bardziej rozbudowanych interfejsów np trójwymiarowych i aplikacji powiązanych z bazami danych, Spójniejsza składnia możliwość wykorzystania znanych konstrukcji składniowych przy pracy z wieloma obiektami Lepszy mechanizm sprawdzania i opisu błędów Nowe funkcje dziesiątki nowych klas Środowisko programowania obiektowego bliższe standardom bazuje na normie ECMA i jest podobny do takich języków jak C++, Java, C#
Literatura Adobe Flash CS5 Professional ActionSCript 3.0 dla Adobe Flash CS4/CS4 PL Professional Adobe Flex 4 Training from the source Adobe Flash CS4 Community Help Adobe Flash CS4 Support Center Adobe TV...