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);
}
}