[AS 3.0] for문을 이용해서 동적으로 오브젝트 생성하기

ActionScript 3.0 — Tags: , — Siaa @ 1:50 pm

AS 3.0에서도 for문과 배열을 이용하면 오브젝트를 동적으로 생성할 수 있다.

Case1
생성하려는 오브젝트의 갯수가 정해져 있을 경우.

package {

	import flash.display.Sprite;

	public class Main extends Sprite {

		private var circleNum:int = 20;
		private var sW:int = stage.stageWidth;
		private var sH:int = stage.stageHeight;
		private var radius:Number = 100;

		public function Main():void{
			var ary:Array = new Array(circleNum);
			for (var i:Number = 0; i < 20; i++) {
				ary[i] = new Sprite();
				ary[i].graphics.beginFill(Math.random() * 0xFFFFFF, Math.random());
				ary[i].graphics.drawCircle(Math.random() * sW, Math.random() * sH, Math.random() * radius);
				ary[i].graphics.endFill();
				ary[i].name = "Circle" + i;
				addChild(ary[i]);
			}
		}
	}
}

Case2
생성하려는 오브젝트의 갯수가 정해져 있지 않을 경우.

package {

	import flash.display.Sprite;

	public class Main extends Sprite {

		private var sW:int = stage.stageWidth;
		private var sH:int = stage.stageHeight;
		private var radius:Number = 100;

		public function Main():void{
			var ary:Array = new Array();
			var circleNum:int = 20;
			for (var i:Number = 0; i < circleNum; i++) {
				var sp:Sprite = new Sprite();
				sp.graphics.beginFill(Math.random() * 0xFFFFFF, Math.random());
				sp.graphics.drawCircle(Math.random() * sW, Math.random() * sH, Math.random() * radius);
				sp.graphics.endFill();
				sp.name = "Circle" + i;
				ary.push(sp);
				addChild(sp);
			}
		}
	}
}

제어는 아래를 참고

var temp:Sprite = getChildByName("Circle1");
(getChildByName("Circle"+i) as Sprite).x = 100; 
Share

0 Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2012 blog.flasia.com | powered by WordPress with Barecity