diary_detail
HOME » スタッフブログ » developerのブログ » Flash AS3.0 でライブラリから動的な名称でMovieClipを表示させる

Flash AS3.0 でライブラリから動的な名称でMovieClipを表示させる

2010年6月29日

Author : developer

今更かもしれませんが、個人的に役に立つと思ったTipsです

たとえば、
mc1
mc2
mc3
というムービークリップがライブラリにあって、
ステージ上に呼び出す時は、

var _mc1:mc1 = new mc1();
Stage.addChild(_mc1);
var _mc2:mc2 = new mc2();
Stage.addChild(_mc2);
var _mc3:mc3 = new mc3();
Stage.addChild(_mc3);

ってな感じで書く必要があります。

ところで、
_idという変数(Number型)に
入った数値に対応するMovieClipを
呼び出したい時は_idを判定しして、
それに対応する処理を入れる必要がありました。
(_idには1~3の数値が入ると仮定します)

swich(_id)
{
  case 1:
      var _mc1:mc1 = new mc1();
      Stage.addChild(_mc1);
      break;
  case 2:
      var _mc2:mc2 = new mc2();
      Stage.addChild(_mc2);
      break;
  case 3:
      var _mc3:mc3 = new mc3();
      Stage.addChild(_mc3);
      break;
}

↑こんな感じで。。。
ところが、
getDefinitionByNameを使う事により、

import flash.utils.getDefinitionByName;

//文字列からクラスオブジェクトを取得
var _classobj:Object = getDefinitionByName("mc" + _id);
var _instanceobj = new _classobj();
Stage.addChild(_instanceobj);

こんな感じですっきり書けるのですー。

calendar

2010年6月の日記

site search