NyxFramework – na ukończeniu

No wreszcie mogę z całą pewnością stwierdzić że niedługo opublikuje Nyx’a. Niektórzy już słyszeli to kilka razy wcześniej, lecz teraz już na 100% obecna wersja zostanie opublikowana. Aktualnie dorabiam pluginy które pozwolą z większą łatwością korzystać z Nyx’a i umożliwią łatwiejszą konfiguracje strony z poziomu plików XML.

Początkiem tygodnia dogadałem się z Jack’iem Doyle autorem biblioteki LoaderMax (która jest wykorzystywana w Nyx’ie) w sprawie licencji i warunków użytkowania skryptów w frameworku oraz publikowania Nyx’a z tą biblioteką.

Ficzery opracowane jak do tej pory:

  • Definiowanie struktury z poziomu XML’a
  • Definiowanie wgrywanych obiektów w plikach XML (z podziałem na podstrony)
  • Definiowanie warstw (na bazie Sprite’ów) z poziomu ActionScript
  • Modyfikowanie parametrów loaderów
  • Definiowanie różnych sposobów przejścia między stronami (zmiana kolejności wywoływania różnych akcji)
  • Debugger łączący w sobie konsole w przeglądarce, obsługę Monster Debugger oraz standardowy debug flashowy
  • Definiowanie ścieżek do plików z wykorzystaniem tagów (dla łatwiejszego indeksowania katalogów)
  • Możliwość zdefiniowania dodatkowych XML’i tóre powinny być wgrane na samym początku z poziomu FlashVars
Jeśli chodzi od strony programistycznej – kilka klas które ułatwią pracę w kodzie:
  • NyxController – Można powiedzieć: punkt dostępowy do wszystkich kontrolerów. Używany by w wgrywanych plikach nie odwoływać się bezpośrednio do kontrolerów co pozwala zmiejszyć wagę plików.
  • FlowController – Kontrolka przepływu akcji podczas zmiany strony. Pozwala w dowolny sposób odwołać się do procesu przełączania stron w bardo wielu momentach.
  • PreloaderController – Wyświetlanie i ukrywanie preloaderów.
  • AssetController – Indeks wszystkich wgranych assetów definiowanych w XML’ach. Pozwala odnaleźć assety po ich ID dzięku czemu kilka wgranych plików SWF może łatwo ze sobą współgrać.
  • DataModel – Podstawowy format do wgrywania XML’a w kolejce strony.
Jest tego jeszcze trochę ale nie będę wszystkiego zdradzał.
Z ważnych rzeczy warto wspomnieć że sposób wgrywania assetów w Nyx’ie nie tworzy dla każdego elementu osobnego loadera. Jeśli kilka obiektów korzysta z tego samego źródła (definiowane na podstawie URL’a) i jest możliwość duplikowania go, to zostaje użyty wyłacznie jeden laoder. Pozwala to zarówno zaoszczędzić pamięć jak i skraca czas ładowania jako że nie wykonujemy kolejnych zapytań.
Możliwe różnież jest inicjowanie kilku elementów z jednego pliku SWF na podstawie podanych klas.
Opcji jest nie mało a wciąż dopracowuje pozostałe pluginy takie jak: Szablony podstron, Szablony Assetów, Automatyczne pozycjonowanie elementów, Generator animacji, Kolejke wgrywania plików w tle (po załadowaniu strony), wyświetlanie strony splashowej itd…
Opublikowano w ActionScript, NyxFramework | Skomentuj

Problem z dużymi rzeczami

Od około dwóch lat do budowania flashowych stron używam autorskiego frameworku, który powstał gdzieś podczas zmagań między projektami dla klientów a osobistymi wyzwaniami z dziedziny AS’a. Tworząc go bazowałem na doświadczeniu zdobytym podczas produkcji mikrosajtów produktowych i konkursowych ale także na jednym dużym sajcie korporacyjnym.

Z tego co powstało jestem zadowolony bo jak na razie nie było przypadku bym używał czegokolwiek innego przy realizacji projektu. Zdarzyło mi się nawet wykonać kilka aplikacji na facebooka przy jego pomocy. Ale … zawsze jest jakieś „ale”. Było to dzieło odrobinę nieprzemyślane w kwestii budowy elementów oraz konfigurowania strony przez co zarządzanie taką stroną jest zadaniem dla bardzo wąskiego grona osób wtajemniczonych w długą listę atrybutów zmieniającą się z projektu na projekt jako że sam framework nie ma wkomponowanych na stałe chociażby takich elementów jak: pole tekstowe, scrollbar czy też typowy obrazek.

Dość szybko zdałem sobie z tego sprawę i postanowiłem to poprawić. Na początku zmagałem się z dylematem czy przepisać wszystko na nowo czy poprawiać już działającą i sprawdzoną strukturę. Górę wzięła chęć zoptymalizowania wszystkiego w jak największym stopniu. Bardzo długo budowałem od podstaw nową strukturę, odmieniony sposób konfigurowania strony w plikach XML (bardziej przejrzysty i prostszy w obsłudze), nowy system wgrywania plików i kolejkowanie ich oraz wiele innych mniejszych rzeczy.

Im bardziej system rósł tym więcej problemów pojawiało się w mojej głowie, ciągłe zadawanie sobie pytania „a co jeżeli będzie trzeba…” tylko mi przeszkadzało i zacząłem skupiać się na dorabiania masy ficzerów, które wykorzystywane były bardzo rzadko lub przez niektórych wcale. Doszedłem do punktu gdy powiedziałem STOP. Porzuciłem projekt – można to nazwać takim programistycznym kryzysem twórczym. Przez kilka miesięcy zabierałem się do pisania frameworku jak piez do jeża. Ale przyznam że dobrze mi to zrobiło, kilka projektów w między czasie zmieniło moje nastawienie i sposób patrzenia na tą sprawę. W obecnym momencie praca postępuje i jestem bardzo z tego zadowolony.

Co do samego projektu to mam w planie opublikować skrypt pod nazwą NyxFramework. Jeśli wszystko pójdzie zgodnie z planem to zostanie on opublikowany w wersji BETA początkiem 2012 roku.

Jeśli chodzi o samą funkcjonalność to kilka rzeczy o których mogę z pewnością powiedzieć to:

  • Konfiguracja i struktura strony na poziomie plików XML
  • Możliwość budowania podstron zarówno wewnątrz plików SWF jak i definiowania poszczególnych elementów w plikach XML
  • API do budowania podstron oraz komponentów
  • Wygodne API do budowania Pluginów
w tym również domyślne pluginy po których aktywacji można będzie rozbudować funkcjonalność strony
  • wyświetlanie stron splashowych
  • używanie szablonów stron
  • tworzenie presetów konfiguracji elementów
  • popupy
Powyższe pluginy planuje wypuścić wraz z pierwszą wersją frameworku, oczywiście więcej będzie tworzonych z czasem.
Całej listy ficzerów nie jestem teraz w stanie podać ( bo bym zepsuł niespodziankę ;) ) lecz mam do Was pytanie:
Jaki jest Wasz ulubiony ficzer frameworków do budowy stron internetowych lub jakiego byście szukali w takowym?
Opublikowano w ActionScript, NyxFramework | Otagowano jako , , | Skomentuj