Software
Co jakiś czas na naszych forach pojawia się pytanie - "Czy mam kupić Flasha MX 2004, czy też poczekać na nową wersję programu? Czy w ogóle warto czekać?". Odpowiedź na pierwsze pytanie jest już dzisiaj dość prosta, bo od premiery 8balla dzielą nas już tylko dni, ale na drugie pytanie wiele osób nadal nie zna odpowiedzi. Niecały rok temu na łamach tego magazynu przedstawiałem Wam Flasha MX 2004, a dzisiaj postaram się przybliżyć nieco fakty, które dotyczą nowej wersji tego programu.
Od jakiegoś czasu dostępna jest już beta nowego Flash Playera - Flash Player 8 Public Beta. Natychmiast po pojawieniu się bety rozpoczęto testy jego nowych możliwości, ale przede wszystkim wydajności. Macromedia obiecywała nam, że nowy Player ma przynieść rewolucję. Oglądaliśmy filmy z konferencji odbywających się na całym świecie, na których Mike Chambers pokazywał wzrost wydajności rzędu kilkuset procent. Zapowiadało się po prostu cudownie i teraz przyszło nam zweryfikować te obietnice. Co prawda nadal nie ma 8balla więc nie możemy przetestować nowych możliwości Flash IDE, ale od czego mamy programistów i ActionScript? Przed dalszą lekturą artykułu zalecam zainstalowanie w przeglądarce FP8PB.
Sam player już przy obliczeniach matematycznych wykazuje się większą wydajnością - kilka standardowych testów znajdziecie w serwisie flab.pl. Nie jest to żadna rewolucja - faktem jest przyspieszenie obliczeń, ale nie rzuciło mnie to jeszcze na kolana.
Wydajność obliczeń matematycznych to jedno, ale prawdziwym problemem playera było zawsze wyświetlanie grafiki - zwłaszcza dużej ilości obiektów z różnie ustawionym kanałem alpha. Miało się to zmienić diametralnie za sprawą nowej techniki wyświetlania obrazu. Oto MM wprowadziła nową właściwość dla MovieClipów, która nazywa się - MovieClip.cacheAsBitmap. Innowacyjność polegać ma na zamienianiu wektorów na bitmapy (i cache'owanie ich) co teoretycznie powinno przyspieszyć renderowanie grafiki (przy wektorach player musi w każdej klatce na nowo przeliczać je wszystkie, przy bitmapie takie obliczenia są zbędne). Oficjalnie nowy engine odpowiedzialny za renderowanie grafiki nie jest jeszcze w pełni funkcjonalny - taką przynajmniej informację podał jeden z pracowników MM na grupie dyskusyjnej FlashCoders. Udało się nam jednak uzyskać już teraz kilka ciekawych efektów.
W powyższym przykładzie ze śniegiem mamy cały czas na ekranie 900 (dziwięćset) obiektów różniących się alphą, wielkością i parametrami ruchu. Przy wyłączonej opcji cacheAsBitmap animacja wygląda tak jakbyśmy się tego spodziewali. Taka ilość obiektów jest zdecydowanie "zabójcza" dla playera. Co innego kiedy włączymy cacheAsBitmap. Ruch śniegu staje się płynny, taki jaki być powinien. Niesamowita poprawa wydajności. Właśnie to MM zapowiadała jako rewolucję - czy rzeczywiście nią jest?
Mimo wielu testów nie udało mi się cache'owania bitmap zmusić do działania w kilku animacjach (samo cache'owanie zapewne działa, nie daje po prostu efektu zwiększenia wydajności), w których występowało wiele skalowanych i animowanych w tradycyjny sposób obiektów. Nie wiem do końca czy jest to spowodowane złym przygotowaniem MovieClipów i animacji (bitmapy skalowanych obiektów muszą być generowane na nowo w każdej klatce animacji), czy engine renderowania grafiki rzeczywiście jest nieskończony, czy może w końcu MM chce wypuścić swój "rewolucyjny" produkt, który rewolucyjnie potrafi jedynie pruszyć śniegiem. Istnieje oczywiście możliwość, że do finalnej wersji playera coś się zmieni (poprawiona zostanie np. możliwość dynamicznego maskowania cache'owanych obiektów), albo po prostu jedynie mi nie udało się wykorzystać cacheAsBitmap we właściwy sposób i należy poczekać na dokumentację. Poczekamy zobaczymy - ja trochę zwątpiłem gdyż MM przyzwyczaiła nas już chyba do zapowiedzi rewolucyjnych produktów, a następnie wydawała buble w postaci Flasha MX 2004, na którym dało się pracować dopiero po pierwszym updacie.
Po kilku ostatnich wersjach Flasha designerzy mogli poczuć się nieco zapomniani gdyż producent zwykle wprowadzał najwięcej innowacji dla programistów. Tak było w starym MX gdzie zmieniło się diametralnie podejście do programowania w AS (pojawiły się listenery, funkcje callbackowe i komponenty), tak też było w MX 2004 - nowy ActionScript 2.0, przejście z timeline na formy i wiele innych. Za każdym razem designerzy narzekali, że dla nich nie ma nic nowego. Tym razem MM bije się w pierś i od początku informuje, że w 8ballu największe zmiany dotyczyć będą części designerskiej.
Tym oto sposobem, w ósmej wersji Flasha doczekamy się w końcu DropShadow. Niesamowite prawda?
Nie wygląda to źle, zwłaszcza, że jest to cień generowany w czasie rzeczywistym. Podobnie (również w real-time) działają pozostałe efekty i filtry więc w ciągu następnego roku możemy spodziewać się nowych tricków na stronach flashowych, których wykonanie do tej pory było niemożliwe. Mam tylko nadzieję, że engine graficzny zostanie rzeczywiście poprawiony, bo nawet tutaj, w dropShadow, pojawiają się błędy (skierujcie kursor myszki na prawą krawędź swfa, tak aby cień był maksymalnie po lewej).
Nowych efektów i filtrów jest zdecydowanie więcej, że wspomne tylko o tak oczywistych jak blur, glow, beveled highlight, color transformation, czy zaprezentowane niżej blending modes.
Wszystkie one działają tak jak w innych programach graficznych, ale najważniejsze jest to, że są generowane w czasie rzeczywistym dzięki czemu mamy do nich dostęp również z poziomu AS.
Odwiecznym problemem Flash Playera był antialiasing dołączanych do swfów czcionek. Trzeba się było nieźle namęczyć, żeby małe czcionki były na stronach czytelne. Nawet jednak kiedy na naszym komputerze wszystko wyglądało dobrze, w rzeczywistości nigdy nie mieliśmy pewności czy u klienta też tak będzie. W MX 2004 Macromedia wprowadziła opcję Alias Text, która miała wymuszać aliasing tekstu. Działało to różnie, bo nawet jak czcionka była czytelna, to zwykle nie wyglądała jak oryginał, a do tego nadal trzeba było męczyć się z ustawianiem pól tekstowych na pełnych współrzędnych i innymi sztuczkami. W 8ballu, a dokładniej w Maelstromie (nazwa kodowa FP8) ma być lepiej. I jest.
Jak widzimy, różnica jest spora - tekst nadal nie jest ostry jak brzytwa, ale przynajmniej jest czytelny.
Wspominam tu tyle o rewolucjach, przyszła więc pora na prawdziwy hit. Flash Player 8 Public Beta w wersji pod system Windows (nie wiem jak z innymi) umożliwia wpisywanie litery "ą" w pola input. Ci, którzy nie zajmowali się nigdy tworzeniem formularzy we Flashu nie wiedzą jakimi magicznymi sztuczkami trzeba się było posługiwać, żeby to osiągnąć we wszystkich poprzednich wersjach FP. Zawsze po premierze programu jednymi z pierwszych testów polskich użytkowników było sprawdzenie czy można wpisać "ą" i zawsze potem jak kraj długi i szeroki słychać było głośny jęk zawodu - "znowu o nas zapomnieli".
Kobiety mdleją, mężczyźni wyrzucają kapelusze w górę, otwieramy szampana. Nie tak prędko koledzy i koleżanki. Wystarczy włączyć tryb Tansparent Mode dla swfa, abyśmy wrócili do szarej codzienności, w której trzeba walczyć o polskość na stronach flashowych (może któryś z kandydatów na prezydenta przekona mnie do siebie wysyłając list otwarty do Macromedii w walce o nasze "literki"). Miejmy nadzieję, że do finalnej wersji coś się zmieni, a póki jest jeszcze czas apeluję - wysyłajcie bug reporty do MM w związku tym błędem. Niech nas usłyszą!
Oprócz tych wszystkich nowinek czeka nas jeszcze wiele innych np.: interfejs do uploadu i downloadu plików, dynamiczne ładowanie plików PNG, GIF i progresywnych JPG, nowy kodek dla video zapewniający lepszą jakość obrazu, a dodatkowo obługa 8-bitowego kanału alpha dla filmów (w końcu!! wyobrażacie sobie możliwości? królik Roger we Flashu??) oraz nowe narzędzia do rysowania. Nie wspomne też o nowym API dla obsługi Bitmap (setPixel i getPixel we Flashu!).
Pozostaje jeszcze odpowiedzieć na postawione we wstępie pytanie - czy warto czekać i zawracać sobie głowę kolejnym, zapewne kosztownym, updatem? Pewnie, że warto! Po pierwsze, prędzej czy później zostaniemy zmuszeni do kupienia nowego softu bo klienci zaczną wymagać nowych rzeczy. Po drugie, im później zainteresujemy się nowym Flashem, tym później się nauczymy korzystać z nowości, a konkurencja nie śpi - nikt przecież nie chce zostać w tyle. Zapewne znowu przyjdzie nam uczyć się nowych sztuczek, żeby obejść kolejne niedociągnięcia MM, połamiemy zęby na nowych błędach w AS, ale cóż zrobić jeśli nie ma konkurencji - musimy grzecznie dziękować za to co nam łaskawcy z San Francisco dają.
animacje/ilustracje: Marcin 'gibo' Gibowski