• 締切済み

getChildByNameの引数を動的にしたいです。

キーボードをタイプしてウインドウ上に表示させる処理をしています。 文字はシンボル化したものを呼び出しています。 backspaceにてひと文字ずつ消したいのですが、 消えてくれません。。。 ★の部分を決めうちすると動くのですが... var del1 = base1.getChildByName("b3"); かなり調べましたが、下記の書き方で動くみたいなんですが、 他の部分が間違っているのか、動いてくれません。 どなたかご教授お願い致します。 ---------------------------------------------------------------------- function KeyDownHandle(e:KeyboardEvent):void{ //backspace if(e.keyCode==8){ var del1 = base1.getChildByName("b" + "bunCnt");  ←★ base1.removeChild(del1); bunCnt -= 1; }else{ try{ onEnter = ""; var str:String = "m"+e.keyCode; var mcClass:Class = getDefinitionByName(str) as Class; moji = new mcClass(); base1.addChild(moji); moji.name = "b"+bunCnt; moji.x = mojiWidth; mojiWidth += mojiWidth; bunCnt += 1; }catch (e:ReferenceError){ text00.text =String("文字が未登録だよ"); } } }

みんなの回答

  • 15mm
  • ベストアンサー率65% (65/100)
回答No.2

del1に戻り値として何が代入されてますかね? ★の直後にtrace(del1)で確認してみてください。 それと、環境の確認をしたいので、補足お願いします。

  • 15mm
  • ベストアンサー率65% (65/100)
回答No.1

AS3自信ないですが、結論から言うと、 ★:var del1 = base1.getChildByName("b" + bunCnt); "bunCnt" はbtnCntという文字、 bunCnt はbunCntという名前の変数です。 var str:String="Variable"; trace(str);trace("str");//両者の違いに注目 を実行してみるとわかるでしょう。 また、 ★:var del1 = base1.getChildByName("b" + "bunCnt");trace("b" + "bunCnt"); とやっても実際にどう間違えてどういう命令をしているのかわかるでしょう。

uyu1225
質問者

補足

ご回答ありがとうございます。 そうですね。。。 すいません。 文字型にしていました。 変数に変更しても、やはり動きませんでした。 動きそうなのに動かなくて、困っています。 他に修正すべき点でご気付きなら、ご指摘お願い致します。

関連するQ&A