クラスを文字列で参照

ActionScript3.0 — Tags: , — chimanaco @ 5:11 PM このエントリをはてなブックマークに追加

文字列で指定されたクラス名からクラスの参照を得るには、flash.utils.getDefinitionByName()を使います。

参考にさせて頂いたページ

例えば連番でクラス名を設定したシンボルを並べたい場合はこんな感じになります。

package {
	import flash.display.MovieClip;
	import flash.utils.getDefinitionByName;

	public class GetDname extends MovieClip
	{
		//コンストラクタ
		public function GetDname():void {
			init();
		}

		public function init():void
		{
			for (var i:int = 0; i < 4; i++)
			{
				var no_str:String = "No" + i;
				var myClass:Class = Class(getDefinitionByName(no_str));
				var myInstance:MovieClip = new myClass();
				addChild(myInstance);

				// インスタンスの座標設定
				myInstance.x = i * myInstance.width;
				myInstance.y = i * myInstance.height;
			}
		}
	}
}

MovieClipシンボルのクラス名を指定するには、ライブラリの該当シンボル上で右クリックして「Action Scriptに書き出し」にチェック→クラス名を入力するのですが、1つ2つならともかく数が多いと面倒。そんな時はFlashの拡張機能を利用すると便利です。今回の場合だとFACEs: 選択したMCを一気にリンケージ書出しするJSFL。クラス指定もします。を使うとイライラせずに済みます。
Flashの拡張機能については以下のページが参考になります。

0 Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

Comments links could be nofollow free.

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