====== Gugga Flash Framework ======
===== Gugga Flash Framework Blog =====
You can visit the Blog that we set up for posting articles related to the framework here:
http://www.gugga.com/flashblog/
===== Gugga Flash Framework =====
==== GuggaFF is now on ActionScript 3.0 ====
You can download the new alfa release from here:
[[http://www.gugga.com/GuggaFlashFramework/|Alfa Version 2.0 alfa]]
==== The current stable release is 0.9.2 ====
You can download the source code, samples and unit tests from here:
[[http://www.gugga.com/GuggaFlashFramework/|source code Gugga Flash Framework]]
You can explore the documentation in html format from here:
[[http://www.gugga.com/GuggaFlashFramework/documentation/html/|documentation Gugga Flash Framework 0.9.2]]
You can download old releases from here:
[[http://www.gugga.com/GuggaFlashFramework/index.html#old_releases|Links to Old Releases]]
==== Change log from v. 0.9.1 ====
==== New features ====
- Created new EventDispatcher to replace the original macromedia implementation. The new implementation improves the overall performance of the framework
( ColorTransformTweenAnimation.as, PropertiesTweenAnimation.as, NavigationManager.as, SectionsTransition.as, BrowserHistory.as, CheckList.as, UIComponentEx.as, MediaLoader.as, SoundLoader.as, XMLLoader.as, DataManager.as, Debugger.as, LayoutGenerator.as, LogManager.as, CustomCompleteTask.as, ExecuteAsyncMethodTask.as, ExecuteMethodTask.as, FictiveTask.as, FrameWaitingTask.as , MonitoringTask.as, PreconditionsManager.as, PreconditionsTask.as, ProgressiveTaskDecorator.as, ProgressMonitor.as, SingleExecutionTask.as, TaskManager.as, TaskManagerItem.as, TaskSequence.as , WaitingTask.as, WrappingTask.as, TrackManager.as, TweensManager.as, Locker.as, OnEnterFrameBeacon.as)
- Created new tween package. (gugga.tween.*)
* Created new TweenManager to replace the tween manager provided by Zigo. The new manager tends to perform better.
* Created AbstractTween for the TweenManager to work with
* Extended AbstractTween into a TimeTween implementation which executes in a fixed number of seconds
* Extended AbstractTween into a FrameTween implementation which executes in a fixed number of frames
- Improved properties tween animations (PropertiesTweenAnimation.as)
* New animation type - "Frame tween animation" support for PropertiesTweenAnimations (PropertiesTweenAnimationType.as )
* CacheAsBitmapPolicy for properties tween animations (AnimationSubjectCacheAsBitmapPolicy.as)
* Zigo TweenManager replaced with new one (gugga.tween.*)
- Added several new animation implemetations for common scenarios ( gugga.animations.)
* BlinkingAnimation.as
* ScrollRectAnimation.as
* ScrollRectLinedAnimation.as
* ColorTransformTweenAnimation.as
* MaskAnimation.as
* FilterTweenAnimation.as
* FrameByFrameAnimation.as
- Transitions
* ApplicationController took the responsibility for controlling the transitions at a root level
* Navigation Commands can be rejected by the ApplicationController by returning false from the navigateTo() method. This happens if the current transition can not be interrupted.
* Added methods in Section Controllers to get the current active section's path - getCurrentSectionPath(),harvestCurrentSectionPath().
* Added event "sectionsSwapped" in SectionsTransition to inform when the current section is changed.
- Navigations
* Navigation instances do not determine their state individually. Navigation state is controlled at a global level by a Navigation Manager ( NavigationManager.as)
* Navigation Manager is controlled by the ApplicationController and is told the current active section's path.
* Added method selectSubItemsPointingTo(aSectionPath) to INavigation which selects all items that navigate to a certain section path.
- Fictive Sections Transition created to support custom ISectionsController implementations (FictiveSectionsTransition.as)
- BrowserCommunicationUtility has been created to allow weak javascript function calls
- Added capability to the ExecuteAsyncMethodTask to create interruptable tasks (ExecuteAsyncMethodTask.as)
- Created FrameWaitingTask to allow waiting tasks to span over fixed number of frames instead of seconds ( FrameWaitingTask.as)
- Created ForceReferenceCountingUtility to force the garbage collector (ForceReferenceCountingUtility.as)
- Created AnonymousTask to be used for dynamic creation of tasks and lazy evaluation
==== Changes in existing functionality ====
- The majority of the control of transitions and navigations is moved from the SectionsController to ApplicationController.
- Event "sectionsSwapped" added to Sections Transition (SectionsTransition.as)
- IApplicationCommandReceiver renamed to INavigationCommandReceiver (NavigationCommand.as)
- OpenPopupCommand's execute method signature has changed to return Boolean ( OpenPopupCommand.as)
- OpenUrlCommand's execute method signature has changed to return Boolean (OpenUrlCommand.as)
==== Enhancements ====
- Execute HideAfterCompletion when interrupting (TimeLineAnimation.as )
- SectionsController "currentSectionPathChanged" event added (SectionsController.as)
- Back and forward implementation is changed in order to use a third party library (http://www.unfocus.com/Projects/HistoryKeeper) for saving records in browser history buffer.
- The default value of Section.MoveOutOfSceneWhenInvisible has changed (Section.as)
- RemoveAll method added to ProgressMonitor (ProgressMonitor.as)
- Event "interrupted" added to ProgressMonitor ( ProgressMonitor.as)
- addFinalPrecondition method added to the TaskManager interface (TaskManager.as)
- fillBitmapRect method added to DrawUtil (DrawUtil.as)
- Enhanced DrawUtil to ensure the covers are always drawn at an integers coordinates ( DrawUtil.as)
==== Bug fixes ====
- Changed CustomCompleteTask to set the isRunning flag to false when completed
- Interruption bug fixed for SingleExecitonTask, ProgressiveTaskDecorator and TaskSequence
- TaskSequence bug has been fixed. The sequence now dispatches completed right after its start, in case it completes on the same frame.
- Fixed bug in WaitingTask, causing the task to not dispatch completed if waiting interval is set to 0.
==== Deprecated functionality ====
- IDataDrivenSection.as
- mx.events.EventsDispatcher in favor of gugga.events.EventDispatcher
- tweens.zigo.TweenManager in favor of gugga.tween.TweenManager
==== Removed functionality ====
- AddressBar.as and AddressBarManager in favor of gugga.utils.BrowserCommunicationUtility
- IApplicationCommandReceiver in favor of INavigationCommandReceiver
==== Change log from v. 0.9 ====
Collections package enhancements
* Added IHashTable
* Added IIterable
* Added ObjectSet
* Added ArrayListIterator
* ObjectHashTable reworked
* Implemented IIterable for ArrayList, CheckList, HashTable, ObjectHashTable, PriorityQue, ObjectSet and ValueSet
Browser History support package (gugga.browser) (works on flash player 7 and requires additional javascripts)
a) Browser history support based on iframe, no deep links supported
* Added BrowserHistoryManager class synchronizing Back and Forward buttons with the CommandHistory buffer
* Added BrowserHistory class abstracting communication between BrowserHistoryManager and the history iframe
* Added BrowserHistoryCommander class to allow iframe callbacks via LocalConnection to the Application.
b) Browser history support based on the address bar hash, with deep links
* Added AddressBarManager publishing CommandHistory buffer "state" (and deep links) to the address bar
* Added AddressBar class decoupling the Application from any address bar specifics
Navigation modification