文字列の置き換え処理について

解決済みの質問

文字列の置き換え処理について

いつもお世話になります。
ActionScript3でサイト制作を行なっています。
初歩的な質問で大変恐縮ですが、文字の置き換え処理に関するご質問です。

「a_mc」というムービークリップがあり、関数Aの中で「a_mc」をthis.addChildします。
「b_mc」というムービークリップがあり、関数Aの中で「b_mc」をthis.addChildします。
以下「c_mc」、「d_mc」というムービークリップが続きます。

上記のムービークリップで不要になったものをremoveChildする時に、共通の関数で処理したいと考え、
this.removeChild(*_mc);という感じに*をa~dの文字列に置き換えて処理できるようにしたいと思い、
下記の処理を作成しましたが、「ReferenceError: Error #1065: 変数 b_mc は定義されていません。」
というエラーが表示されてしまいます。

上記の処理を実現するにはどのような処理方法が適切でしょうか?

是非ご教授ください。
宜しくお願い申し上げます。


// コンテンツMC
var a_mc:MovieClip = new a_mcs();
var b_mc:MovieClip = new b_mcs();
var c_mc:MovieClip = new c_mcs();
var d_mc:MovieClip = new d_mcs();

this.addChild(a_mc);
this.addChild(b_mc);
this.addChild(c_mc);
this.addChild(d_mc);

// コンテンツ消去処理
// 例)ムービークリップb_mcをremoveChildする場合
removeFunc("b");

function removeFunc(str:String):void {
var tempStr:String = str + "_mc";
var categoryNameClass:Class = Class(getDefinitionByName(tempStr));
var categoryContents:MovieClip = new categoryNameClass;
this.removeChild(categoryContents);
}

投稿日時 - 2010-03-31 19:32:56

QNo.5793076

すぐに回答ほしいです

質問者が選んだベストアンサー

単純に

function removeFunc(str:String):void {
this.removeChild(this[str+"_mc"]);
}

で良いと思います。

Google検索「配列アクセス演算子」
http://www.google.co.jp/search?hl=ja&source=hp&q=%E9%85%8D%E5%88%97%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E6%BC%94%E7%AE%97%E5%AD%90

投稿日時 - 2010-03-31 20:15:50

お礼

BlurFiltan様
早速のご回答ありがとう御座います。

仰る通りアクセス演算子でできますよね・・・。
何故あんな回りくどいやり方していたのでしょう・・・。

ポイント付与させていただきます。
ありがとう御座いました。

投稿日時 - 2010-04-01 10:11:29

ANo.1

0人が「このQ&Aが役に立った」と投票しています

あわせてチェックしたい
  • addChildとremoveChildの処理についてご教授ください ...
  • removeChildができない ...
  • addChildの使い方 ...
PR

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら