タイル状にローディング abakane forked:6favorite:10lines:61license : All rights reserved modified : 2009-04-07 22:32:18 Embed Tweet package { import flash.display.*; import flash.events.*; import flash.net.*; import caurina.transitions.Tweener; public class LoadingPanel extends Sprite{ public var loader:Loader; public var p:uint = 0; public var total:uint; public var current:uint = 0; public var panelAry:Array = []; public var side:Number = 50; public var col:uint; public function LoadingPanel(){ loader = new Loader(); loader.contentLoaderInfo.addEventListener( ProgressEvent.PROGRESS, onProgress); loader.contentLoaderInfo.addEventListener( Event.COMPLETE, onComplete); loader.contentLoaderInfo.addEventListener( Event.OPEN, onOpen); loader.load( new URLRequest( "http://farm2.static.flickr.com/1250/567791491_5855bf986d_b.jpg" ) ); } private function onOpen( e:Event ):void{ col = Math.ceil( stage.stageWidth/side ); total = col*Math.ceil(stage.stageHeight/side); this.addEventListener( Event.ENTER_FRAME, onEnterFrame); } private function onProgress( e:ProgressEvent ):void{ current = Math.round(e.bytesLoaded/e.bytesTotal*total); } private function onComplete( e:Event ):void{ loader.contentLoaderInfo.removeEventListener( ProgressEvent.PROGRESS, onProgress); loader.contentLoaderInfo.removeEventListener( Event.COMPLETE, onComplete); loader.contentLoaderInfo.removeEventListener( Event.OPEN, onOpen); } private function onEnterFrame( e:Event ):void{ if( p < current ){ var panel:Sprite = new Sprite(); panel.alpha = 0; panel.x = Math.random()*stage.stageWidth; panel.y = Math.random()*stage.stageHeight; panel.scaleX = panel.scaleY = 0; panel.name = String(p); panel.graphics.beginFill( 0x000000, 1); panel.graphics.drawRect( 0, 0, side, side); panel.graphics.endFill(); panelAry.push( panel ); addChild( panel ); Tweener.addTween( panel, {alpha:1, x:p%col*side, y:Math.floor(p/col)*side, scaleX:1, scaleY:1, time:0.8, transition:"easeOutExpo", onComplete:function():void{ if(Number(this.name) >= total-1){ end();} } } ); p ++; } } private function end():void{ this.removeEventListener( Event.ENTER_FRAME, onEnterFrame); for(var i:uint=0; i<panelAry.length; i++){ Tweener.addTween( panelAry[i], {alpha:0, time:0.4, delay:Math.random()*0.5, onComplete:function():void{ removeChild(this); } } ); } var r:Number = stage.stageWidth/loader.width >= stage.stageHeight/loader.height ? stage.stageWidth/loader.width : stage.stageHeight/loader.height; loader.scaleX = loader.scaleY = r; addChildAt( loader, 0); } } } Code Fullscreen Preview Fullscreen kamicop anvide24 DOS FlashFit hacker_xor_f.. web_shiino doodoo OneInchPunch.. takion murata : loader loader loading tile loader height width addEventListener scaleY scaleX Tweener.onEnterFrame Event.OPEN ProgressEvent.PROGRESS addChildAt alpha Event.COMPLETE removeEventListener removeChild Loader Tweener.addTween name load time URLRequest sort new page view favorite forked pv0 forked from: タイル状にローディング godspeed1977max forked:0 favorite:0lines:61 (diff:1) pv61 forked from: タイル状にローディング godspeed1977max forked:0 favorite:1lines:61 (diff:1) pv140 forked from: タイル状にローディング hacker_qb07iy0l forked:0 favorite:0lines:61 (diff:6) pv0 forked from: タイル状にローディング motuni forked:0 favorite:0lines:61 (diff:1) pv1013 forked from: タイル状にローディング pippo forked:2 favorite:5lines:61 (diff:1) tag: imageLoader tween pv0 forked from: タイル状にローディング wearescaremongering forked:0 favorite:0lines:61 (diff:1)