KitchenSync lib Change Log. Visit http://code.google.com/p/kitchensynclib/ for the latest version * = Contains syntax changes that may require refactoring of legacy code. ===== v1.6 (In progress) ===== NEW CONTRIBUTOR Brett Forsyth - welcome! ADDED TweenFactory which provides an easy to use interface for creating new tweens including an object parser similar to FuseKit's interface. ADDED SoundTransformTarget for changing volume or panning of a sound. ADDED KSSimultaneousEndGroup which causes all children to end simultaneously. ADDED KSSteppedSequenceGroup for sequencing powerpoint-like applications. ADDED finished coding INumericController ADDED isInstantaneous property to AbstractActions ADDED toString() methods to some ITweenTarget classes. Modified toString() for some groups. ADDED IAction and ISynchronizerClient interfaces. ADDED an optimized implementation of IAction, KSSimpleTween. Saw a 25% performance increase over KSTween! ADDED ITween interface CHANGED License to MIT license. CHANGED all static types that reference AbstractAction to IAction. Now IActions can be added to groups. (needs testing) CHANGED Synchronizer to utilize ISynchronizer client. (virtually no performance increase) :-( *CHANGED* Altered KSTween to use multiple tween targets. Now includes methods like addTweenTarget(). some clone methods are deprecated. CHANGED KSTween's EXISTING_FROM_VALUE to VALUE_AT_START_OF_TWEEN FIXED a bug in KSParallelGroup.stop() FIXED a non-bug where using addAction() can cause a null pointer exception after using kill() on a group. REMOVED commented out unused 'name' property of AbstractAction UPDATED wiki to reflect 1.5 syntax. ===== v1.5* (2008.07.08) ===== REFACTORED to optimize performance. Saw an improvement of about 50% ADDED TargetProperty and ITweenTarget (formerly ITweenable) to KSTweens (actually, these have been in there for a while, but now they're working) ADDED IFilterTweenTarget and implementations for tweening filter properties and simple blurs. ADDED INumericController as a base class for ITweenTarget ADDED KSTween.newWithTweenable() and KSTween.cloneWithTweenable() methods for creating tweens with custom tweenables. ADDED KSAsynchronousFunction for firing asyncrhonous functions in a sequence. Good for queues. ADDED FrameRateView utility which displays the framerate of the Synchronizer. ADDED message accessor to KSTrace FIXED a bug where children of a group are not cloned when the group is cloned. FIXED a bug in KSStaggeredGroup that caused some children not to fire. FIXED a bug where actions get fired multiple times in sync mode. (needs verification) *MOVED* snapToWholeValue from KSTween to TargetPropety. *RENAMED* snapToWholeValue to snapToInteger. CHANGED KSTween's 'fromValue' and 'toValue' to 'startValue' and 'endValue' and are actually stored in the ITweenTargets. *CHANGED* syntax of KSTween constructor. Now 'startValue' comes before 'endValue'. *CHANGED* 'util' to 'utils' to match Adobe's and AS3lib's naming conventions. CHANGED 'offset' to 'delay' (kept legacy accessors for offset) CHANGED KSSoundController now uses the time string parser on the 'soundOffset'. CHANGED the core of the Synchronizer to a timer based system thus improving speed. CHANGED default policy for 'snapToValueOnComplete' to true which should fix some tween problems. CHANGED default frequency for oscillating functions. ===== v1.2* (2008.05.2) ===== NEW CONTRIBUTOR Aral Balkan - welcome! *RENAMED* Nearly the entire library *MOVED* All classes into new packages *ADDED* KitchenSync as the entry point to the library. Use KitchenSync.initialize(this, "1.2"); to start the app. CHANGED Synchronizer is no longer used to initialize the library and getInstance() no longer throws an error. FIXED A bug in Sequence.kill() ===== v1.1 (2008.02.22) ===== ADDED jumpToTime() method to Tween (this may be moved to AbstractSynchronizedAction in a later release) ADDED getTimestampFromFrames() and getTimestampFromMilliseconds() to TimestampUtil ADDED Timecode to TimeStringParser. Now ":ss", "mm:ss;ff", "dd:hh:mm:ss;ff", etc. are now supported. *ADDED* ActionDefaults class for storing default initialization values. ADDED easeOutIn() to most of the easing functions (buggy. seems to overshoot target in some cases) ADDED version check in Synchronizer.initialize() CHANGED type of Numbers within Timestamp to int. REFACTORED all actions to contain super() in the constructor. REMOVED errors that are thrown when pause() and start() are called at the wrong times. ===== v1.0.1 (2008.02.04) ====== FIXED Cubic.easeOut bug. ADDED getters for Tween's toValue and fromValue. ADDED source code to main binary. ADDED metadata for events. UPDATED docs and added summaries to all wiki pages. ===== v1.0 (2008.01.21) ===== Note: This is Milestone 1.0 as it is the official release and all basic functionality is complete. ADDED lots of documentation on the project wiki (http://code.google.com/p/kitchensynclib/w/list) TESTED SynchronizedSetProperty and made minor changes. ===== v0.4.2 (2007.12.20) ===== ADDED ITimeStringParser. duration and offset now support string values such as "12sec" or "15 frames" or "1h1m2s3ms". See TimeStringParser_en for details CHANGED TimeUnit and ActionControllerCommands to be strong-typed enumerations. FIXED (partially) bug in Oscillate when dealing with frequencies and different time units. ===== v0.4.1 (2007.12.13) ===== FIXED problems with sync property for Tweens MOVED project to Google Code (http://kitchensynclib.googlecode.com/) ===== v0.4 (2007.12.04) ===== ADDED pause(), unpause(), and stop() to AbstractSynchronizedAction. Also created reset() for Tweens. ADDED support for milliseconds or frames using the TimeUnit class. The default time unit is now milliseconds. ADDED new AbstractSynchronizedAction type - ActionController - which can tell another action to play, pause, unpause, stop, or kill. ADDED ActionControllerCommands class for holding static constants for each command. ADDED SynchronizedGotoFrame for controlling MovieClips (untested) ADDED SynchronizedSetProperty (not tested) ADDED new class TimestampUtil with add(), subtract() methods. ADDED getChildAtIndex() method to AbstractSynchronizedActionGroup. ADDED removeTrigger() and removeEventTrigger() to AbstractSynchronizedAction. ADDED setTime() to Timestamp ADDED minimum and maximum modifiers to Random.ease function. ADDED triangle() to Oscillate class. ADDED CHILD_START events and moved onChildComplete() and onChildStart() into the AbstractSynchronizedActionGroup class. ADDED PAUSE and UNPAUSE events ADDED clone() to Timestamp FIXED the pesky bug where child actions executed 1 frame late. FIXED a bug where Parallel didn't dispatch CHILD_COMPLETE MOVED some as3 library files to an externally linked library CHANGED start() to return the started action. This will make it easier declare and start in the same line: var tween:Tween = Tween(new Tween(x,y,...).start()); CHANGED Tween's 'targetProperty' getter and setter to 'value' CHANGED startTimeIsElapsed and durationIsElapsed to public read-only properties. OPTIMIZED performance of some functions with sounds and groups. ===== v0.3.1 (2007.09.28) ===== ADDED a User's Guide to the docs folder. Docs are available at http://mimswright.com/kitchensync/docs MOVED code into a Flex Library Project (and moved demo to a seperate as3 project). Destroyed old repository. ===== v0.3 (2007.07.07) ===== ADDED asdoc pages in the /bin/docs folder. ADDED autoDelete flag which deletes actions on complete if true ADDED addTrigger() and addEventTrigger() to AbstractSyncrhonizedAction so that actions can be triggered by other actions or by events ADDED clone() method to most SynchronizedAction classes ADDED cloneWithTarget() method to Tween class ADDED reverse() and cloneReversed() methods to the Tween class ADDED reverseChildOrder() to ActionGroup ADDED snapToValueOnComplete and snapToWholeNumber to Tween class ADDED documentation to easing functions ADDED absoluteSine(), sawtooth(), and pulse() to the Oscillate class ADDED Sextic easing class ADDED Stepped easing class which produces an easing function that is stepped based on another one. ADDED getAveragedFunction() to EasingUtils which produces an average of two types of easing functions. ADDED Tween.EXISTING_FROM_VALUE as the from value default. Reordered Tween constructor parameters. REMOVED shortcuts for amplitude, period, and overshoot REMOVED easeIn(), easeOut(), easeInOut() for Linear and Random MOVED Sine.oscillate() to Oscillate.sine() RENAMED project to KitchenSync. Moved code to src folder RENAMED com.mimswright.animation to com.mimswright.sync OPTIMIZED the way that actions listen to synchronizer TESTED to ensure the re-usability of action classes TESTED and tweaked the SynchronizedSound class ===== v0.2 (2007.06.21) ===== ADDED Staggered groups ADDED SyncrhonizedSound (not tested) ADDED Wait class ADDED EasingUtil with call() method for more safely calling easing functions and the generateArray() method for pre-calculating ADDED Sine.oscillate() and Random.ease() easing functions ADDED easing funcitons. Rewrote all penner v2 easing functions to use fewer arguments and ported to as3 ADDED ability to set easing function modifiers on a Tween object (includes shortcuts for amplitude, period, and overshoot) ADDED ITweenable and TargetProperty classes (aren't implemented yet) FIXED a bug with Parallel where items were deleted from array on complete. RENAMED SynchronizedEvent to SynchronizedDispatchEvent ===== v0.1 (2007.06.17) ===== ADDED... Synchronizer AbstractSyncrhonizedAction AbstractSyncrhonizedActionGroup Sequence and Parallel SynchronizedFunction SynchronizedTrace SynchronizedEvent SynchronizerEvent Penner's Easing v3 (from alex uhlmann)