jasu's blog
블로그 메뉴글
Starling performance test
Project/Programming
2012. 1. 10. 21:58
package { import starling.events.Event; import starling.core.Starling; import starling.display.Sprite; import starling.display.Button; import starling.textures.Texture; import starling.display.DisplayObject; import starling.display.Image; import starling.utils.deg2rad; import flash.display.Bitmap; public class Demo extends Sprite { [Embed(source = "f60.png")] private var MyBitmap:Class; private var _myTexture:Texture; private var _arrButterflys:Vector.<Butterfly>; public function Demo() { // addedToStage 이벤트에 대한 리스너 추가 addEventListener( Event.ADDED_TO_STAGE , onAddedToStage); } private function onAddedToStage(e:Event):void { var myBitmap:Bitmap = new MyBitmap() as Bitmap; _myTexture = Texture.fromBitmap(myBitmap); var len:int = 800; _arrButterflys = new Vector.<Butterfly>(len, false); for (var i:int = 0; i<len; i++) { var fly:Butterfly = new Butterfly(_myTexture); fly.alpha = Math.random(); fly.destX = Math.random()*stage.stageWidth; fly.destY = Math.random()*stage.stageHeight; fly.setVertexColor(0, Math.random()*0xFFFFFF); fly.setVertexColor(1, Math.random()*0xFFFFFF); fly.setVertexColor(2, Math.random()*0xFFFFFF); fly.setVertexColor(3, Math.random()*0xFFFFFF); fly.x = Math.random()*stage.stageWidth; fly.y = Math.random()*stage.stageHeight; fly.rotation = deg2rad(Math.random()*360); fly.pivotX = fly.width >> 1; fly.pivotY = fly.height >> 1; _arrButterflys[i] = fly; addChild(fly); } stage.addEventListener(Event.ENTER_FRAME, onFrame); } private function onFrame(e:Event):void{ var len:uint = _arrButterflys.length; for (var i:int = 0; i < len; i++){ // move the sausages around var fly:Butterfly = _arrButterflys[i]; fly.x -= ( fly.x - fly.destX ) * .1; fly.y -= ( fly.y - fly.destY ) * .1; if (Math.abs(fly.x - fly.destX)<1 && Math.abs(fly.y-fly.destY) < 1){ fly.destX = Math.random()*stage.stageWidth; fly.destY = Math.random()*stage.stageHeight; fly.rotation = deg2rad(Math.random()*360); } } } public override function dispose():void { removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage); _myTexture.dispose(); super.dispose(); } } } import starling.display.Image; import starling.textures.Texture; class Butterfly extends Image{ public var destX:Number = 0; public var destY:Number = 0; public function Butterfly(inTexture:Texture):void{ super(inTexture); } }