W takim skrócie (dotyczy zarówno as3 jak i środowiska flash playera):
as3 wspiera ‘normalne’ klasy, dziedziczenie, interfejsy (klasyczne oop, tutaj niemal tak samo jak w javie)
as3 ma (opcjonalne, ale jest to bardziej preferowane) typowanie statyczne, dzięki czemu mam bardzo szybki feedback jeśli zmieniam nazwę metody/klasy/stałej i zapomnę to zrobić wszędzie (inna sprawa, że większość IDE do as3 wspiera taki refaktoring 1 kliknięciem)
piszę w as3 zupełnie nie stresując się myślami “czy aby na pewno to zadziała pod przeglądarką X w wersji Y?”
pakiety, importy w kodzie = porządek
kompilowanie do bytecodu - łatwiej ukryć/zobfuskować coś przed ‘złym hackerem’ (oczywiście jak wszystko odpalane po stronie klienta da się to obejść ale jest to dużo trudniejsze niż dla kodu, który takiej kompilacji nie ma)
api, które przypadło mi do gustu, czyli operowanie elementami na scenie, rysowanie grafiki, filtry, wczytywanie dźwięków
model zdarzeń, bardzo podobny do tego co jest w DOM, ale można go stosować w swoich klasach
Co do samego flasha/swf:
embedowanie assetów w .swf (skompilowana binarka flasha), dzięki temu dostaję 1 plik, w którym mam całą aplikację (jednak nic nie stoi na przeszkodzie by część plików osadzać a część ładować dynamicznie)
dynamiczne ładowanie .swf (tak robi się większość preloaderów), dzięki temu można część aplikacji załadować z osobnego .swf (np. assety), albo pobrać zaszyfrowany .swf z serwera, odkodować go już po stronie klienta i odpalić
działające multimedia (przede wszystkim dźwięk), taka ciekawostka: Angry Birds (http://chrome.angrybirds.com/), które uchodzą za sztandarowy przykład aplikacji html5 do odtwarzania dźwięków używają flasha
W tej chwili jestem bliski ukończenia pierwszej gry we flashu. Na tę chwilę to jest 6k linii kodu. Nie miałem praktycznie problemów na poziomie języka/składni/api/interpretera (nie mówiąc już o niezgodności wersji). Po prostu skupiałem się na pisaniu i wszystko idzie pięknie. Kompilator na bieżąco krzyczał jak mu coś nie pasowało (nie jest idealny bo tak jak pisałem typowanie statyczne jest opcjonalne, ale wykrywa większość głupich błędów, które w js skończyły by się wyjątkiem uruchomieniowym).
W sumie myślałem o tym. Jak uporam się z projektem to chętnie go zaprezentuję i zrobię jakąś małą prezkę, tylko trzeba by wypytać ludzi czego oczekiwaliby (jak wiadomo ogólnie flash nie ma zbyt dobrej opinii zwłaszcza w dobie html5).
Taaak, bo ActionScript i JavaScript to dwa zupełnie różne i niespokrewnione ze sobą języki ;)[/quote]
Hmm… to jest FUD rozsiewany w internecie od 10 lat. Na początku te dwa języki były bardzo do siebie podobne (oba wykorzystywały ES3 jako baze), Macromedia (a póżniej Adobe) miały większe pole manewru jeśli chodzi o aktualizacje samego języka do ES4, przeglądarki w zasadzie pożuciły ES4 i skupiły się na ES5 (mogę się mylić ale w w 2007 Microsoft kategorycznie odrzucił ES4 jako następne wcielenie JavaScript) Porównywanie Javascript 1.7 i ActionScript 3.0 jest bezsensu to tak jakby porównywać MRI 1.4 z Rubinius 2.0
Offtopic:
Osobiście jestem zaskoczony zwrotem Adobe ku HTML5 i pokazaniem środkowego palca wszystkim Flash i Flex developerom teraz. Jest o 2 lata zawcześnie, Flex i Flash oferują obecnie mase API których przeglądarki aktualnie jeszcze nie są w stanie dostarczyć a to co mamy jest na różnych etapach rozwoju:
ES5 nadal niezaimplementowane w pełni w żadnej z 4 wiądących przeglądarek (niektóre dopiero zaczynają
prace nad DOM 4 dopiero nabierają tempa (chrome od kilku dni ma DOM 4 Event Mutation)
Pierwsza implementacja WebRTC to pewnie Q1 2012
WebSockets są w statusie rekomendacji dopiero od zeszłego tygodnia (po 3 latach od pierwszych implementacji! SIC!)
Mouse Lock API jest w bardzo wczesnej fazie (bez tego gry w JS z użyciem WebGL są bezsensu)
Żadna z wyżej wymienionych rzeczy nie należy do HTML5 a są to kluczowe elementy.
[quote=radarek]W takim skrócie (dotyczy zarówno as3 jak i środowiska flash playera):
as3 wspiera ‘normalne’ klasy, dziedziczenie, interfejsy (klasyczne oop, tutaj niemal tak samo jak w javie)
as3 ma (opcjonalne, ale jest to bardziej preferowane) typowanie statyczne, dzięki czemu mam bardzo szybki feedback jeśli zmieniam nazwę metody/klasy/stałej i zapomnę to zrobić wszędzie (inna sprawa, że większość IDE do as3 wspiera taki refaktoring 1 kliknięciem)
piszę w as3 zupełnie nie stresując się myślami “czy aby na pewno to zadziała pod przeglądarką X w wersji Y?”
pakiety, importy w kodzie = porządek
kompilowanie do bytecodu - łatwiej ukryć/zobfuskować coś przed ‘złym hackerem’ (oczywiście jak wszystko odpalane po stronie klienta da się to obejść ale jest to dużo trudniejsze niż dla kodu, który takiej kompilacji nie ma)
api, które przypadło mi do gustu, czyli operowanie elementami na scenie, rysowanie grafiki, filtry, wczytywanie dźwięków
model zdarzeń, bardzo podobny do tego co jest w DOM, ale można go stosować w swoich klasach
Co do samego flasha/swf:
embedowanie assetów w .swf (skompilowana binarka flasha), dzięki temu dostaję 1 plik, w którym mam całą aplikację (jednak nic nie stoi na przeszkodzie by część plików osadzać a część ładować dynamicznie)
dynamiczne ładowanie .swf (tak robi się większość preloaderów), dzięki temu można część aplikacji załadować z osobnego .swf (np. assety), albo pobrać zaszyfrowany .swf z serwera, odkodować go już po stronie klienta i odpalić
działające multimedia (przede wszystkim dźwięk), taka ciekawostka: Angry Birds (http://chrome.angrybirds.com/), które uchodzą za sztandarowy przykład aplikacji html5 do odtwarzania dźwięków używają flasha
W tej chwili jestem bliski ukończenia pierwszej gry we flashu. Na tę chwilę to jest 6k linii kodu. Nie miałem praktycznie problemów na poziomie języka/składni/api/interpretera (nie mówiąc już o niezgodności wersji). Po prostu skupiałem się na pisaniu i wszystko idzie pięknie. Kompilator na bieżąco krzyczał jak mu coś nie pasowało (nie jest idealny bo tak jak pisałem typowanie statyczne jest opcjonalne, ale wykrywa większość głupich błędów, które w js skończyły by się wyjątkiem uruchomieniowym).[/quote]
Chcesz powiedzieć że JavaScript ssie w porównaniu do ActionScript’a?
A co z przyszłościowymi wersjami (Ecma 5 itp)?
[quote=Hitsu]Chcesz powiedzieć że JavaScript ssie w porównaniu do ActionScript’a?
A co z przyszłościowymi wersjami (Ecma 5 itp)?[/quote]
No właśnie co z nimi ?
[quote=Hitsu]Chcesz powiedzieć że JavaScript ssie w porównaniu do ActionScript’a?
A co z przyszłościowymi wersjami (Ecma 5 itp)?[/quote]
Z mojego punktu widzenia tak właśnie jest. A co przyniesie przyszłość w świecie js? Nie wiem, ale pamiętaj, że jedno to jest spec języka, a drugie to jest faktycznie wdrażanie tego w przeglądarkach (zgodność wstecz, stare, ciągle używane wersje przeglądarek itp).