Gra w RoR

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 :slight_smile: to tak jakby porównywać MRI 1.4 z Rubinius 2.0 :wink:

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 :wink: 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 ? :wink:

[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).