Jak co roku, krótko i zwięźle, życzę wszystkim z okazji Świąt oraz Nowego Roku, spełnienia wszystkich marzeń.
Tradycyjnie przygotowałem z tej okazji kartkę:

Kartki świąteczne są dla mnie poligonem doświadczalnym. Pewnie dlatego rzadko kiedy trafiają w gust odbiorców.
Tym razem pod nóż poszła nowa wersja biblioteki Papervision3D oraz biblioteka Box2DFlash. Papervision3D 2.0 oferuje cieniowane materiały. W bombce użyłem cieniowania Phonga. Box2DFlash służy do symulacji grawitacji oraz oddziaływania między sobą przedmiotów. Dzięki niej bombka się buja. Efekt jest całkiem fajny, wymaga jednak chyba dość dobrego procesora.
Zapraszam również do obejrzenia kartki – gry, którą oprogramowałem dla Netizens, czyli firmy w której pracuję. Tutaj również wykorzystałem Box2DFlash.

Dla przypomnienia kartki z poprzednich lat.
Rok 2006 – kartka również w 3D, jednak engine dość prymitywny, w całości albo w części mojego autorstwa (nie pamiętam).

Rok 2005 – posadź swoją choinkę i zostaw na niej życzenia… dla kogoś szczególnego, dla siebie lub dla ogółu.

NA tegorocznym MAXie Adobe wyjątkowo promował jeden ze swoich najnowszych produktów, jakim jest AIR (czyli Adobe Integrated Runtime). Jest to środowisko multiplatformowych aplikacji desktopowych. Polega to na tym, że na jednym z trzech wspieranych systemów operacyjnych (Windows, Mac, Linux) instalujemy środowisko AIR (coś w rodzaju flash playera w przeglądarce www) a same aplikacje są już wspólne dla wszystkich os-ów i mają rozszerzenie .air. AIR daje szereg możliwości, takich jak dostęp do systemu plików, możliwość tworzenia aplikacji wielookienkowych oraz nadawania im przezroczystości. Łącząc to z możliwościami języka ActionScript3 dostajemy bardzo potężne narzędzie.
Aplikacje AIR możemy tworzyć na 3 sposoby:
- przy użyciu HTML i AJAX (plugin do Dreamweavera)
- przy użyciu Flasha (plugin do Flasha)
- przy użyciu Flexa (plugin do Flexa)
O AIR można by dużo pisać, ale najprościej zobaczyć jego możliwości w praktyce. Poniżej kilka najlepszych wg mnie przykładów zastosowania. Aby wypróbować je na swoim komputerze najpierw ściągnij i zainstaluj AIR dla Windows lub Macintosh.
Snippage
Program umożliwia wycięcie dowolnego fragmentu strony internetowej i umieszczenie go jako widgeta na pulpicie.
strona programu
pobierz program

DiggTop
Przeglądaj digga szybciej i sprawniej.
strona programu
pobierz program

Digimix
Pełnowartościowy program do remixowania muzyki. 
strona programu
pobierz program

Google Analytics Report
W programie zaimplementowano niemal wszystkie funkcje wersji online. Ogromną zaletą jest możliwość skofigurowania wielu profili z wielu kont gmail.
strona programu
pobierz program

Twitter
Powiedz znajomym co właśnie robisz bez konieczności wchodzenia na www.
strona programu
pobierz program
Pierwszy w Europie Adobe MAX, w którym miałem szczęście uczestniczyć, za nami. W trakcie sympozjum (konferencji?) wziąłem udział w kilku sesjach, które traktowały o optymalizacji ActionScript 3.0. Poniżej postaram się wymienić najważniejsze sposoby. Duża część z nich odbiega od przyjętych standardów programowania i często może zmniejszyć przejrzystość kodu. Dlatego warto je stosować tylko wtedy, gdy zależy nam na maksymalnej wydajności.
- minimalizujemy liczbę obiektów, efektów i animacji na ekranie
- usuwamy obiekty z listy wyświetlania zamiast robić je niewidocznymi
- wyrzucamy co się da przed pętlę
- przed wejściem w pętlę przypisujemy obliczane w pętli wartości do zmiennych
np. zamiast:
for(var i:int=0 ; i<myArray.length ; i++)
{
//some code…
}
piszemy:
var len:int = myArray.length;
for(var i:int=0 ; i<len ; i++)
{
//some code…
}
- bezwzględnie używamy strong typing
- usuwamy z kodu wszystkie trace lub w opcjach publikacji włączamy omit trace actions
- unikamy porównywania różnych typów danych
- zamiast funkcji getter / setter używamy zmiennych typu public
- w pętlach zamiast i++ używamy i+=1 (tak, dla mnie to też był szok
)
- stosujemy pętle for each zamiast for in
- stosujemy “”+k zamiast k.toString()
- tworzymy tablice poprzez k = [1,2,3] zamiast k = new Array(1,2,3)
- stosujemy optymalne algorytmy (to raczej oczywiste)
- staramy się używać typu int zamiast Number (zwłaszcza jako wskaźnika do tablic lub pętli)
- nie piszemy długich funkcji, gdyż flash player ma wtedy problem z alokacją rejestrów
- jeżeli tylko się da, używamy operacji logicznych zamiast arytmetycznych
np. zamiast:
var mutiplyResult:int = anAge * 8;
piszemy:
var mutiplyResult:int = anAge << 3;
Tutaj znajdziecie prezentację oraz przykłady, których autorem jest Cedric Tabin, prowadzący sesję Optimizing ActionScript 3 performance na Adobe MAX Barcelona. W dużej mierze opierałem się właśnie na nich.
Ostatnie komentarze