- 締切済み
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("文字が未登録だよ"); } } }
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- 15mm
- ベストアンサー率65% (65/100)
del1に戻り値として何が代入されてますかね? ★の直後にtrace(del1)で確認してみてください。 それと、環境の確認をしたいので、補足お願いします。
- 15mm
- ベストアンサー率65% (65/100)
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"); とやっても実際にどう間違えてどういう命令をしているのかわかるでしょう。
補足
ご回答ありがとうございます。 そうですね。。。 すいません。 文字型にしていました。 変数に変更しても、やはり動きませんでした。 動きそうなのに動かなくて、困っています。 他に修正すべき点でご気付きなら、ご指摘お願い致します。