Tweener Bitmap(100*100)を100個でドン!

by djakarta_trap forked from Tweener Bitmapを100個でドン! (diff: 3)
Tweener で100個の画像(50*50)を動かしてみる。
フレームレートが落ちるかどうかを見るためのテスト。
♥0 | Line 55 | Modified 2009-12-07 15:33:34 | MIT License | (replaced)
play

Related images

ActionScript3 source code

/**
 * Copyright djakarta_trap ( http://wonderfl.net/user/djakarta_trap )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/AcMS
 */

// forked from djakarta_trap's Tweener Bitmapを100個でドン!
// forked from djakarta_trap's Tweener graphicを100個でドン!
// Tweener で100個の画像(50*50)を動かしてみる。
// フレームレートが落ちるかどうかを見るためのテスト。
package {
	import flash.display.Bitmap;
    import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.net.URLRequest;
	import flash.system.LoaderContext;
	import jp.progression.casts.CastBitmap;
	import jp.progression.casts.CastSprite;
	import jp.progression.casts.getInstanceById;
	import jp.progression.commands.CommandInterruptType;
	import jp.progression.commands.lists.ParallelList;
	import jp.progression.commands.lists.SerialList;
	import jp.progression.commands.net.LoadBitmapData;
	import jp.progression.commands.Prop;
	import jp.progression.commands.tweens.DoTweener;
	import jp.progression.data.getResourceById;
	import jp.progression.data.Resource;
	import net.hires.debug.Stats;
	
	[SWF(width="465", height="465", frameRate="60")]
	
    public class FlashTest extends Sprite {
		private var _instances:Array;
		private const _uri:String = "http://assets.wonderfl.net/images/related_images/1/10/1075/1075924b555f355b479d1758495d3f9f0ff84fc9";
        public function FlashTest() {
            this.addChild(new CastSprite( { id:"container" } ));
			this.addChild(new Stats());
			_instances = [];
			
			//画像をロード
			new LoadBitmapData(new URLRequest(_uri),{context:new LoaderContext(true), onComplete:function():void { createInstances(200) } } ).execute();
			
			stage.addEventListener(MouseEvent.CLICK, animateInstances);
			
        }
		
		private function animateInstances(e:MouseEvent):void 
		{
			var comm:ParallelList = new ParallelList();
			for (var i:int = 0; i < _instances.length; i++)
			{
				comm.addCommand( 
					[
						new DoTweener(_instances[i], { x:Math.random() * stage.stageWidth, y:Math.random() * stage.stageHeight, time:1, transition:"easeOutExpo" }, { interruptType:CommandInterruptType.SKIP } ),
						new Prop(_instances[i], { x:_instances[i].x, y:_instances[i].y } )
					]
				)
			}
			comm.execute();
		}
		
		private function createInstances(num:int):void
		{
			for (var i:int = 0; i < num; i++)
			{
				var cast:CastSprite = new CastSprite( { x:Math.random() * stage.stageWidth, y:Math.random() * stage.stageHeight } );
				cast.addChild(new CastBitmap(Resource(getResourceById(_uri)).toBitmapData(), "auto", false, { x:-50,y:-50 } ));
				_instances.push(cast);
				(getInstanceById("container") as CastSprite).addChild(cast);
			}
		}
    }
}

Forked