<Download Gugga Flash Framework>

Monday, May 14, 2007

The new Minor(major) release of Gugga Flash Framework

The new release of the GuggaFF is introducing a number of changes and improvements. The majority are focused on performance increase and improved application model.

The most significant change in is the Application Architecture. Now the ApplicationController class is a kind of Front Controller for the application. It controls all the transitions in the application and is responsible for the navigation state. Transition starts and interruptions are handled by the ApplicationController so the lower level SectionControllers are no more responsible for this. Their job is to provide the openSection() method and return the transition between the sections they are responsible for. The openSection() method of the ApplicationController should not be called separately. The navigateTo() should be called instead.

In addition to the ApplicationController changes the navigation’s state can be set by specifying the section path which is currently available. This synchronization is made by the gugga.application.NavigationManager which is commanded by the ApplicationController. Every navigation instance which is registered in the NavigationManager will follow the changes in the application’s section path automatically.

Having the ApplicationController as a Front Controller gives a much better level of control and synchronization, so now we have much better transitions interruptions. To support all the cases of fast transition changes the navigateTo() method can refuse to open a certain navigation path. In this case it returns false and the corresponding command is not included in the CommandHistory.

The other major change in this release is that GuggaFF has become almost completely separated from the Macromedia MX framework. We have our own implementation of EventDispatcher with the gugga.events.EventDispatcher class. It uses AsBroadcaster and provides significant increase in performance. In addition, the gugga.common.UIComponentEx is not inheriting mx.core.UIObject. This makes the framework more performing and decreases the time needed to initialize an application. The only link between GuggaFF and MX remains the mx.utils.Delegate class.

Another big step in increasing the performance is the new gugga.tween package. It provides a lightweight but powerful tween engine. It supports both tweens with frames duration and tweens with time duration. This helps to tune the speed and smoothness of the animations even better.

For a complete list of changes please see the change log.