BetweenAS3 Updater Spark Project #APMT 2009.9.11 TAKANAWA Tomoaki ( http://nutsu.com )
http://www.libspark.org/svn/as3/betweenas3/tags/alpha-r3022/
public static function tween(...):iobjecttween { var tween:objecttween = new ObjectTween(_ticker); tween.updater = _updaterfactory.create(target, to, from); tween.time = time; tween.easing = easing Linear.easeNone; return tween;
org.libspark.betweenas3.core.updaters org.libspark.betweenas3.core.updaters.display org.libspark.betweenas3.core.updaters.geom DisplayObjectUpdater PointUpdater ObjectUpdater...
BetweenAS3.to( mc, { transform:{ matrix:{a:-1.5, b:-0.2, c:-0.5, d:-1.6, tx:300, ty:300, colortransform:{ redoffset:255, 1.0, Quad.easeInOut ).play();
{ transform:{ matrix:{a:-1.5, b:-0.2, c:-0.5, d:-1.6, tx:300, ty:300, colortransform:{ redoffset:255 { a:-1.5, b:-0.2, c:-0.5, d:-1.6, tx:300, ty:300, redoffset:255
get set target setsourcevalue() setdestinationvalue() resolvevalues() updateobject() newinstance(),copyfrom()
ClassRegistry.registerClassWithTargetClassAndPropertyNames( HogeUpdater:IUpdater, TargetClass:Class, [ properya, propertyb ] ); private static var _updaterclassregistry:classregistry;
BetweenAS3.to( sprite, {transform:{matrix:{ a:-c, b:-s, c:0.3, d:-c, $ty:size, 1, Quartic.easeInOut ); MatrixUpdater.register( BetweenAS3.updaterClassRegistry ); BetweenAS3.to( sprite, { a:-c, b:-s, c:0.3, d:-c, $ty:size, 1, Quartic.easeInOut );
public class Hoge { public var t:number; public function Hoge(){ t = 0;
public class HogeUpdater extends AbstractUpdater { // protected var _target:hoge = null; // protected var _st:number; // protected var _dt:number; // protected var _related_s:boolean = false; // : protected var _related_d:boolean = false;
override public function get target():object { return _target; override public function set target(value:object):void { _target = value as Hoge;
override public function setsourcevalue( propertyname:string, value:number, isrelative:boolean=false ):void { if (propertyname == 't') { _st = value; _related_s = isrelative; override public function setdestinationvalue( propertyname:string, value:number, isrelative:boolean=false ):void{ if (propertyname == 't') { _dt = value; _related_d = isrelative;
override protected function resolvevalues():void { if (isnan(_st)) { _st = _target.t; else if (_related_s) { _st += _target.t; if (isnan(_dt)) { _dt = _target.t; else if (_related_d) { _dt += _target.t;
override protected function updateobject( factor:number ):void { _target.t = _st + (_dt - _st ) * factor;
override protected function newinstance():abstractupdater { return new HogeUpdater(); override protected function copyfrom(source:abstractupdater):void { super.copyfrom( source ); var obj:hogeupdater = source as HogeUpdater; _target = obj._target; _st = obj._st; _dt = obj._dt; _related_s = obj._related_s; _related_d = obj._related_d;
BetweenAS3.updaterClassRegistry.registerClassWithTargetClassAndPropertyNames( HogeUpdater, Hoge, ["t"] );
override public function getobject(propertyname:string):object override public function setobject(propertyname:string, value:object):void var t:itween = BetweenAS3.tween(... ); ObjectTween(t).updater.setObject( foo, {x:400,y:200 );