środa, 30 sierpnia 2006

Ruch open source wokół platformy Flash

Odtąd kiedy Macromedia zaczeła rozwijać Flasha jako narzedzie programistyczne spotkało sie to z dużym zainteresowaniem wsród programistów. Małe rozmiary (co zadzwięcza kompresji i binarnej postaci danych) plików SWF sprawiało że ten format stał się nieformalnym standardem multimedialnej prezentacji danych.

Obecnie wiele produktów ruchu opensource stara się wykorzystywać możliwości jakie daje Flash Player. Oprócz formatu SWF jeszcze obsługuje dane w postaci AMF (binarny odpowiednik serializacji danych) i obsługa protokołu RTMP (Real Time Messaging Protocol)

Są obecnie 2 duże społeczności opensource które intensywnie dzielą swię swoją pracą, aby przyspieszyć rozwój: lab.adobe.com i OSFlash.org

Największą popularnoiść uzyskał MTASC kompilator plików ActionScript 2. Jego największa zaletą było to że byl kompilatorem z linii polecen, co sprawiało że łatwo można było go dopasować do możliwości jakie oferują rózne edytory

Programiści szybko przystosowali platformę programistyczną Eclipse do możliwości oferowanych przez MTASC . Powstał ASDT jako darmowy edytor ActionScriptu. (Istnieje jeszcze jego komercyjny odpowiednik FDT). Ponieważ platforma Eclipse bardzo wolno pracuje na starszych komputerach, niektórzy programiści wola korzystać z FlashDevelop, który też oferuje podkolorywowanie składni i jak autouzupełnianie.

Jednym z najbardziej perspektywistycznych projektów jest Red5. Prosta aplikacja służąca do transmisji danych w formacie multimedialnym (takich jak wideo czy dzwięk) wykorzystując to że Flash Player może obsługiwać obraz z kamer i jak dzwięk z mikrofonu. Jego celem jest obsługa protokolu RTMP.

Dla programistów tworzących wielkie aplikacje internetowe dla przedsiębiorstw dostępne sa 2 frameworki: ARP (dla plikacji pisanych w ActionScript 2.0) i jak Cairngorm 2 (dla aplikacji pisanych w ActionScripcie3). Ich główną siła jest to że umożliwiają wykorzystanie wzrorców projektowych takich jak Model-Control-View czy wykorzystanie testów jednostkowych

Z drugiej strony rozwijają się też projekty które oferują własny model tworzenia i obsługiwania kompomentów Mam tutaj na myśli ASWing i jakActionStep czy bardziej znana platforma OpenLaszlo. Ich współną cechą jest to że można tworzyć wygląd aplikacji za pomocą języka znacznikowego.

Istotną cechą jest "rozszerzalność" aplikacji napisanych we Flashu. Polega to na tym że taka aplikacja zachowuje się jak program komputerowy umożliwiając użytkownikowi np zapisywanie stanu aplikacji na dysku twardym. To jest możliwe dzięki projektowi Screenweawer. Pozwala to na tworzenie interesujących graficznie aplikacji użytkownika. Istnieje też jego komercyjny odpowiednik Multidmedia.

Obecnie na fali fascynacji technologią AJAX pojawiają się propozycje wykorzystujące możliwości komunikacji PlashPlayera z przeglądarkami pozwalając programistom wpływać na wygląd aplikacji flashowej z poziomu JavaScriptu ze strony internetowej. Ich cechą jest to że rozszerzają możliwosci pracy aplikacji AJAX w trybie offline. Są to biblioteki typu AFLAX czy Flex Ajax Bridge.



piątek, 25 sierpnia 2006

Osadzanie dokumentów HTML wewnątrz SWF

Idea osadzania dokumentów HTML czy PDF w aplikacjach zawsze intrygowała użytkowników i jak programistów. Otóż można przeglądać dokument HTML "osadzony" wewnątrz pliku SWF za to odpowiada komponent IFrame stworzony przez Christophe Coenraets A Brian Deite w swoim blogu też pokazał przykład jak ma to funkcjonować. Ciekawe wyjaśnienia są w jego wpisach z lutego i jak z maja a także jego ostatnia wersja komponentu dla Flex 2 Jego demo można obejrzeć i ściągnąć kod zródłowy

Kod składa się z trzech plików - pliku html który zawiera kod JavaSscript do uruchomienia pliku SWF a także pole w którym załadowana jest ukryta ramka. Ta ukryta ramka jest potrzebna z powodów obejścia zabezpieczeń związanych z obsługą domen przez FlashPlayera 9. Zmiany w przewijanych stronach zachodzą na poziomie przeglądarki co pozwala na uzyskanie wrażenia że to Flash Player odtwarza strony WWW. Plik IFrameDemo.mxml jest plikiem z którego tworzy się plik SWF. Zawiera w sobie dane w postaci XML z których będzie korzystać komponent Tree. Te dane można uzyskać w różny sposób np pobrać taki dokument z sieci. Dane w komponencie Tree informują o stronach które mają być załadowane do komponentu IFrame.
Plik IFrame.mxml zawiera właściwie kod skryptu komponentu pozwalający się na komunikowanie się ze stroną www na której znajduje się plik SWF korzystający z tego komponentu. Skrypty ActionScriptu tego komponentu wywołują skrypty JavaScript w celu pobrania danych z ukrytej ramki na tej stronie czy przechodzenia do kolejnych stron.

wtorek, 22 sierpnia 2006

HaXe i Neko

Programowanie jest zawsze fajną przygodą. Więc zobaczymy coś nowego. Tworzenie stron WWW obecnie wymaga znajomości PHP po stronie klienta oraz JavaScriptu i ActionScriptu po stronie klienta. Gdyby można było napisać metajęzyk który robiłby to wszystko? Generowałby kod dla serweraj jak dla klienta (jako skrypt JS, bądż plik SWF). Nie od dzis wiadomo, że aplikacje napisane w bajtkodzie są szybsze od aplikacji które są kompilowane podczas uruchomienia. Oznacza to załadowanie i uruchomienie bajtkodu w maszynie witualnej. W ten sposób na poziomie binarnym można napisać całą aplikację, którą da się uruchomić na każdej maszynie wirtualnej.

Taką możliwość oferuje nowa maszyna wirtualna o nazwie Neko. Narazie jest tylko jeden język HaXe w którym można programować dla tej maszyny wirtualnej. Kompilator HaXe pozwala też na generowanie kodu JavaScriptu dla Ajax i jak tworzenie plików SWF ( w tym dla wersji 9).
Sam język HaXe przypomina w składni ActionScript ( z kilkoma nowościami takimi jak typy interfejsu, dynamiczna obsługa typów danych, anominowe obiekty, typy ogólne, iteratory)
Ten kompilatoir obsługuje takze konpilację waunkową. HaXe może wygenerować bajtkod dla maszyny wirtualnej Neko. Do obsługi po stronie serwera napisano moduł do serwera Apache, który pozwala na wykonywanie bajtkodu przez Apache.

Na dzień dzisiejszy w HaXe napizasno biblioteki do:

  • parsowania i obsługi dokumentów XML w oparciu o DOM
  • wyrazeń regularnych
  • aplikacji po stronie serwera korzystających z prostego systemu szablonów
  • testów jednostkowych
  • wykorzystania logów, komunikatów do debugowania
  • obsługi wyjatków
  • ładowania danych z zewnatrz

  • można pisać aplikacje typu Ajax
  • po stronie serwera mamy obsługę baz danych SQLite, PostgreeSQL i jak MySQL
  • dostraczono obiektowy model obsługi zapytań SQL wraz z mapowaniem struktury bazy danych do obiektów
  • do obsługi poczty, obsługi adresów URL
  • do obsługi tekstów takich jak kolorowanie składni języka HaXe
  • wykorzystania Flash Remoting do komunikacji pomędy serwerem a aplikacja (przy pomocy protokolu AMF)
Opis języka HaXe i jak jego API moża przeczytać na stronie poświęconej temu językowi.

Obecnie mamy możliwość tworzenia aplikacji okienkowych dzięki ScreenWeaver HX. Istnieje wiele ciekawych projektów mi.in do obsługi grafiki Polecam zapoznanie się z grami we Flashu (zawieraja kod zródłowy HaXe). Bardzo interesujacym przykładem jest aplikacja hxBlog pokazująca to jak można napisać aplikację internetową. Dla tych, którzy interesują się wykorzystaniem wzorca projektowego MCV polecam zapoznanie się z kodem zródłowym małej aplikacji: pokaz slajdów.

Twórca Neko i HaXe Nicolas Cannasse na pewnej konferencji przedstawił możliwości HaXe. Napisał też inspirujący artykuł na temat tego języka.

Technorati Tags:

sobota, 19 sierpnia 2006

Adobe PHP SDK

Mike Potter na swoim blogu ogłosił nieoficjalny pakiet dla programistów PHP
Ten pakiet jest bardzo interesującym rozwiązaniem pokazującym jak zastosować technologie takie jak AJAX, Flex, JSON, Flex Ajax Bridge, oraz AMFPHP

Zawiera ono kod kilku bibliotek.
AMFPHP jest to biblioteka PHP która używa do konwersji danych do formatu AMF która jest binarną serializacją danych dla Flasha (warto jej używać jak serwis wymaga przesyłania efektywnie małych ilości danych)

Fabridge jest to biblioteka kliencka w JS (po stronie przegladarki) i AS3 (po stronie aplikacji Flex) pozwalająca skryptom JS ze strony komunikować się z aplikacją Flex i odwrotnie.

Spry to framework AJAX którego zadaniem jest obsługa asynchronicznych połaczeń ze strony WWW. Składa się bliliotek JS odpowiedzialnej za obsługę XML, XPath, i efektów specjalnych.
Pozwala to na tworzenie własnych widgetów gotowych do osadzenia na stronach WWW.

SDK zawiera przykłady PHP z zastosowaniem AJAX (przy wykorzystaniu frameworka Spry). Flex może współpracować z PHPAMF, z generowanymi plikami XML. Interesujaco też może wyglądać współpraca Flex z danymi w formacie JSON. Pokazano też przykład zastosowania Flex Ajax Bridge.

Jako ciekawostkę zamieszczono testy wydajnościowe pomiędzy AMF, JSON, a danymi w formacie XML. (wymaga zainstalowania Zend Frameworka).

Razem stanowią bardzo interesujące narzędzie do tworzenia aplikacji korzystających z internetu.

Korzyści:

  • wykorzystuje nieformalny standard prezentacji danych
  • ułatwia dodawanie elementów multimedilanych
  • łatwość przekształcenia do postaci aplikacji uruchomieniowych (desktoptowych)
  • napisz raz uruchom wszędzie
Wady
  • niemożność wpływania na indeksowanie tych aplikacji przez roboty wyszukiwarek
  • wymóg stosowania alternatywnej treści (tj niedopuszczalna jest sytuacja w której użytkownicy którzy nie mają ochoty czy możliwości ogladania tych aplikacji)
  • framework Spry dodaje sporo dodatkowego kodu w kodzie XHTML co sprawia że strony zawierają kod niezgodny ze standardem.
  • aplikacje Flex czasami mogą być duzych rozmiarów (od 200 KB w górę w całości może sprawić że do uruchomienia aplikacji trzeba będzie załadować 1 MB danych)

środa, 16 sierpnia 2006

Flex 2 i AJAX

Serwis informacyjny  Sys-con.com zamieścił webcast o możliwościach wykorzystania Ajax w technologii Flex. Webcast przeprowadza Christophe Coenraets. Warto polecam ze wzgledu na fragmenty kodu w których pokazano wykorzystanie biblioteki Flex-Ajax Bridge. To jest nagranie z konferencji RealWorld Flex Seminar August z Nowego Jorku. Podobny webcast już był 24 marca

piątek, 11 sierpnia 2006

Szablony Flex

Jak pisałem Flex zawiera interesiujący mechanizm obsługi dokumentów XML oparty na E4X.To pozwala na budowanie szablonów z których pliki SWF potrafią wyświetlić dane. Ted Patrick pokazał przykład jak obsługiwać takie szablony. Jego idea polega na tym żeby z zawartości strony WWW ( w kodzie XHTML pobierać interesującą zawartość, a następnie to wyświetlić przez plik SWF).

Jak to działa?

Kod strony WWW można podzielić na dwie częsci. Pierwsza z nich to osadzony kod dokumentu XML zacznający się


<script type="text/xml">
<!--FXTMODEL-->


i zawierajacy dane do wyświetlenia przez plik SWF

<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
...........
</CATALOG>
Takie dane mozna nazwać danymi Modelu

Druga część kodu to sktypty JS których zadaniem jest sprawdzić wersję Flash Playera, pobrać dane ze strony WWW przesłać je jako zmienną Flash do pliku SWF.

Oto kod JS ze strony, który tak robi.

"flashvars","historyUrl=history.htm%3F&lconid='
+ lc_id + '&model='+ escape( document.body.innerHTML ) +'"

Kod JS to nazwać Kontrolerem

Natomiast plik SWF jest Widokiem. Pobiera dane ze strony i wyświetla je.
Oto kod MXML realizujacy powyższą rzecz (potem staje się plikiem view.swf)

<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="templateInit()"
backgroundGradientColors="[#c0c0c0, #c0c0c0]"
height="100%"
width="100%">

<mx:Script>
<![CDATA[

import flash.external.ExternalInterface;

[Bindable]
public var model:XML;

public function templateInit():void
{
var strModel:String = unescape( Application.application.parameters.model ) ;
var start:uint = strModel.indexOf( "<!--FXTMODEL-->" ) + 15;
var end:uint = strModel.lastIndexOf( "<!--FXTMODEL-->" ) ;
taout.text = strModel.substring( start , end ) ;
}

]]>
</mx:Script>

<mx:TextArea id="taout" top="10" bottom="10" right="10" left="10"/>

</mx:Application>


Wyjaśnienie kodu.
Do pliku SWF ze strony WWW dane trafiają jako ciąg znaków. Ten ciag znaków jjest jako para zmienna=watrość. Zmienną poprzedza znak amperstanda. W kodzie AS trzeba zdefiniować jakiego typu jest ta zmenna. Zmienna "model" zawiera informację w postaci kodu XML. Tak więc ta zmienna jest typu XML. Atrybut Bindable informuje że ta zmienna będzie zawierała dane z zewnatrz, w momencie inicjalizacji nie jest znana jej zawartość. Po załadowaniu i zainicjalizowaniu kompomentów wykonywane jest zdarzenie creationComplete które wywołuje metodę templateInit(): Ta metoda parsuje zawartość zmiennej "model" i wynik przekazuje do pola tekstowego.

Wynika z tego mechanizm bardzo interesujacy.
  • Pozwala tworzyć zawartość stron internetowych z jedna treścia ale z 2 widokami głównym jako XHTML i opcjonalnym jako SWF. Za pomocą skryptów JS można przełaczać pomiędzy tymi widokami.
  • Widok w pliku SWF pobiera dane ze strony na której się znajduje.
  • Roboty wyszukiwarek i tak wyindeksuja zawartość strony XHTML
  • Plik czy pliki SWF sa pobierane tylko raz, następne pobierane są tylko strony WWW w których wizualizacją zajmuje się tylko ten sam plik.
  • W tym przypadku Konrolerem jest skrypt JS, istnieje też możliwość przeniesienia tej funkcjonalności Kontrolera na plik SWF (to dzięki zastosowaniu Flex States).
  • Występuje obsługa przycisku Cofnij i Dalej z poziomu przeglądarki.

wtorek, 8 sierpnia 2006

Sprawdzanie pisowni polskiej w edytorze online

Hilary Bridel napisał kompoment do sprawdzania pisowni korzystając z nieoficjalnego API Google do sprawdzania pisowni. Najbardziej mnie zaskoczyło sprawdzanie pisowni polskiej. Wiem że tego Google używa w polskim Gmail. Ale nie spodziewałem się że można z tego korzystać online.

Udostępnił nawet binarna tego komponentu, aby można było tego używać we własnych edytorach. Tego czego potrzebuję to napisanie klasy pośredniczącej w PHP pomiędzy usługą Google a serwisem WWW na którym ma być wykorzystany ten komponent do sprawdzania pisowni online ( jest on opublikowany tutaj). Autor komponentu napisał taką klasę dla ColdFusion. W kwietniu 2007 roku autor opublikował kod źródłowy. tego komponentu.

No na tym polu widać już przewagę technologii formularzy MXML nad edytorami na stronach WWW typu FCKEdytor. Flex posiada własną prostą kontrolkę do pisania tekstu RichTextEditor. Hilary Bridel pokazał także jak można przystosować tą kontrolkę do własnych potrzeb. (kod źródłowy).

piątek, 4 sierpnia 2006

XPanel - program do logowania

Od pewnego czasu poszukuję programu który pozwalałby mi informować o stanie aplikacji. Czyli coś więcej niż tradycyjne trace() w AS czy też w AS3 trzeba użyć import flash.util.trace;

To jest coś w tym stylu


package {
import flash.util.trace;
import flash.display.MovieClip;

public class Test extends MovieClip {
public function Test() {
trace("hi, i'm " + this);
}
}
}


ale to nie wystarcza w całości. Następnie trzeba to ogladać w odpowiednim Standalone Flash Player Debug. Jak mamy do dyspozycji tylko SDK ?

Mamy narzędzie do obsługi logów w aplikacjach Flex 2 Firma FarataSystems wypuściła darmowy XPanel 3. Jest to program który nadsłuchuje komunikatów z Flash Playera i wyświetla je w specjalnym panelu. Programista ma możliwośc oznaczania rodzaju komunikatu jako informacyjnego, krytycznego, ostrzegawczego, błędnego. Dane z logów można zapisać a nawet wydrukować.

Oto prosty przykład

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
initialize="doTest()">
<mx:Button label="Test" click="Logger.debug('111');">
<mx:Script>
<!--[CDATA[
function doTest()
{
_log("some trace");
Logger.info("some info");
_error("some error");
_warn("some warning");
_debug("multi\n line");
for(var i:Number=0; i<10; i++) _log("item "+i);
}
function _debug(s) { Logger.debug("[testXPanel] "+s); }
function _log(s) { Logger.info("[testXPanel] "+s); }
function _error(s) { Logger.error("[testXPanel] "+s); }
function _warn(s) { Logger.warn("[testXPanel] "+s); }
]]>

</mx:Script>
</mx:Button>
</mx:Application>


Zapraszam do korzystania

czwartek, 3 sierpnia 2006

Aplikacja online we Flex 2


Ralf Bokelberg prowadzący serwis QLOD zrobił pierwszą aplikację dla Nationwide o nazwie Navigator

To jest przyklad jak wykorzystać potencjał tkwiący w Flex 2 do tworzenia aplikacji seiciowych do tworzenia interaktywnych formularzy. Chociaż zauważyłem niedociągnięcia w tej aplikacji np: nie można dobrze sterować klawiaturą po aplikacji. To chyba sprawa że ta aplikacja nie została skompilowana jako dostępna.

Flash Player 9 kontra przeglądarki

Wygląda na to że na razie w dobie aplikacji AJAX Flash przejdzie do historii z powodu:
- że roboty nie indeksują zawartości plików SWF
- że są kłopoty z zapewnieniem dostępności treści w plikach SWF
- nie potrafi dobrze współpracować z aplikacjami AJAX
- mało kto tworzy aplikacje Flash z zasadami uzyteczności
- inwestycja w poznawanie Flash i programowania w ActionScript jest kosztowna

Obecnie Flash wygrywa na polu multimedialnym jako doskonały format do transmisji danych audio/video przez internet. Mozna zauważyć że większość ludzi przegladajać internet woli oglądać i słuchać niż czytać.

Słabą stroną aplikacji AJAX jest brak pracy w trybie offline. Dzięki SharedObject w Flash API można zapewnić prace w trybie offline. Kolejną słabą stroną AJAX jest duże obciążenie serwerów bo muszą dostarczać dane małymi porcjami. Natomiast w Flash 9 API dodano możliwość kompresji i dekompresji danych. Pozwala to na załadowanie raz duzej porcji danych a potem w razie potrzeby uzupełniać je. Cięzar aplikacji AJAX bazuje na po stronie serwera. Natomiast w przypadku aplikacji Flex 2 serwer zajmuje sie tylko dostarczaniem danych.

W tradycyjnym ujęciu Model pobiera dane dla Kontrolera a on przesyła do Widoku
Widok przekazuje je do systemu szablonów których zadaniem jest wyświetlenie po stronie przeglądarki.
Tworzenie aplikacji AJAX zakłada że Kontroler będzie obsługiwał wiele ządań a układem tego co jest na stronie przejmie przglądarka czyli przeglądarka przejmuje rolę Widoku.
Natomiast w przypadku aplikacji Flash / Flex może być tak że tworzy się główny plik SWF pelniący rolę Kontrolera, który pobiera mniejsze pliki SWF pełniące rolę Widoków natomiast po stronie serwera działa dalej ten sam wzorzec tylko że zmodyfikowany o to że Widok przesyła do aplikacji Flash/SWF dane w postacii skompresowanego XML bądz binarnej AMF (dla dużych aplikacji sieciowych daje to korzyść że generuje mniejszy ruch w sieci).

Zarzut że strony we Flashu nie są indeksowane przez wyszukiwarki jest półprawdziwy. W pliku SWF możesz przechowywać metadane tekstowe z których roboty sieciowe potrafią wyciagnac odpowiednią treść. Z drugiej strony zawsze można przygotować zawartość serwisu WWW który będzie funkcjonował równolegle do serwisu Flash / Flex 2.

Kolejna sprawa to dostępność aplikacji Flash / Flex. Jest w Flash API zbiór klas odpowiedzialnych za to że kompomenty interfejsu użytkownika stają się dostępne dla użytkowników z róznymi dysfunkcjami. Jest też API pozwalajace decydować o wydruku takiej aplikacji. To że nie sa one masowe stosowane wynika z częsci z niewiedzy o tym i jak postrzegania Flasha jako aplikacji do animacji czy obsługi audio i wideo, niż jako narzędzie programistyczne do tworzenia interfejsów aplikacji użytkownika.

Współpraca Flasha z aplikacjami AJAX była problematyczna ze względu na wykorzystanie przez Flash Playera formatu AMF do tego celu. Wymagało to stosowania Flash Remoting. Natomiast nie było łatwe przekazywanie danych z aplikacji AJAX do plików SWF. Rozwineły się 2 podejścia: bezpośredni kiedy dane trafiają do pliku SWF i pośredni kiedy to przeglądarka przekazuje dane uzyskane z AJAX do pliku SWF. Pierwszy sposób jest realizowany przez FABridge a drugi przez AFLAX.

Użyteczność aplikacji realizowanych w Flash byłaby nawet większa gdyby programiści potrafili dobrze wdrażać mechanizmy sprawiające że nawigacja staje się przyjemnością nawet gdy użytkownikowi zawiesi się myszka. W ActionScript 3 mamy obsługę wyrazeń regularnych co pozwoli na budowanie inteligentych formularzy sprawdzajacych zawartość pół. Mało kto wie, ale we Flash można realizować aplikacje wykorzystujące przyciski Wstecz i Dalej przegladarek internetowych.

Pisanie aplikacji we Flash staje się coraz bardziej złożone, bo rośnie coraz bardziej API. Zmiany pomiędzy AS a AS2 są spore ale pomiędzy AS2 a AS3 jeszcze większe. Wynika to że zastosowano nową maszynę wirtualną we Flash Playerze 9. Gdybym teraz miał wybierać naukę programowania ActionScriptu to postawiłbym na najnowszą wersję. Dlaczego? Bo kompilator jest za darmo i dużo wiecej rzeczy mozna zrobić w nim niż w poprzednich wersjach.

A co z uzytkownikami Linuksa? Niech poczekają, mam nadzieję, że Adobe wypuści Flash Playera 9 dla Linuksa. Zresztą oni mogą już wykorzystywać kompilator z Flash 2 SDK, który jest aplikacją Java.

środa, 2 sierpnia 2006

Przykładów jest sporo

Na IFBN przykłady są czasami stare np: trzeba zamieniać typ danych z Void na void pisane mała literą

Bardziej polecam ściagniecie przykładów do oficjalnej dokumentacji ActionScriptu 3 ze strony Adobe
A potem zapoznawanie się z Flex 2 i składnią MXML. Dlaczego? Bo Adobe wprowadziło "rewolucję" w kodowaniu ActionScriptu do tego stopnia że lepiej zapomnieć czym było AS 1 i AS 2 żeby nie myliło się pisanie kodu. (chociażby ten przykład z Void na void).

Przykłady z Flex2

Słynne repozytorium IFBIN Networks przykładów z Flex 2 bazujące na pracy kilkundziesięciu programistów właśnie zostało otwarte  dla każdego kto się tym interesuje. Tą wiadomość zostawił szef tego repozytorium Theodore Patrick. Wystarczy ściagnać odpowiednią wtyczkę. Większość tych przykładów pochodzi jeszcze z wersji Beta ( i czasami może okazać się ze wymaga kolejnego skompilowania).