package { import com.voidelement.chain.Chain; import flash.display.DisplayObjectContainer; import flash.events.MouseEvent; public class ChainTest { public function ChainTest( base:DisplayObjectContainer ) { Chain.wait(1). next( function():Chain { trace("elapsed: " + this.data ); trace("wait start: 3000ms"); return Chain.wait( 3 ).execute(); }). log("wait end"). next( function():void { trace("elapsed: " + this.data + "ms"); }). loop( 3, function():Chain { trace("loop: " + this.data ); return Chain.loop( 5, function():void { trace("subloop: " + this.data ); }). wait(1); }). load( { text:"http://twitter.com/", onStart:"load text: start", onComplete:"load text: complete"} ). parallel({ wait: { time:2, onStart:"wait: start", onComplete:"wait: complete"}, image: { delay:2, img:"http://s3.amazonaws.com/twitter_production/profile_images/40481852/mycat0_normal.jpg", onStart:"load image start", onComplete:"load image complete"}, binary: { binary:"3000.jpg", onStart:"load binary: start", onComplete:"load binary: complete"} }). next( function():void { trace("elapsed: " + this.data.wait ); trace("image size: " + this.data.image.contentLoaderInfo.width + "x" + this.data.image.contentLoaderInfo.height ); trace("binary length: " + this.data.binary.bytesAvailable ); this.data.image.scaleX = this.data.image.scaleY = 10; base.addChild( this.data.image ); base.alpha = 0; }). tweener( base, { alpha:1, time:1, transition:"linear"} ). log("wait click"). listen( base, MouseEvent.CLICK ). next( function():void { trace("click: " + this.data.localX + ", " + this.data.localY ); }). tweener( base, { alpha:0, time:1, transition:"linear"} ). log("tween end"); } } }