配列ではなくオブジェクトの操作を学ぶのに 1 週間近く費やしました。それらを呼び出し、いくつかのオブジェクトを作成し、それらのプロパティを設定するのは簡単だと思っていました。ただし、今はアクセスできません。これを試しました:
function onBoxClick(event:MouseEvent):void {
var str:String = event.currentTarget.name;
trace(str);
str = str.substring(str.indexOf("_") + 1);
trace(getChildByName("copy_" + str)); // trying to trace an object by name
}
私の質問は、オブジェクトを処理する実用的な方法があるかどうか、そうでなければそれらを使用する目的は何かということです。
編集:ムービークリップやその他のものを作成するために使用する関数は次のとおりです。
function addBoxes(isUpdate:Boolean):void {
var copyOne:Object = getReadOnlyValues();
copyOne.name = "copy_" + num;
// Set default mc1 settings
var settings1:Object = copyOne.mc1Settings;
for(var num2:String in settings1) {
copyOne.mc1[num2] = settings1[num2];
}
// Set default mc1text settings
var settings2:Object = copyOne.mc1TextSettings;
for(var num3:String in settings2) {
copyOne.mc1Text[num3] = settings2[num3];
}
copyOne.mc1.x = nextXpos;
copyOne.mc1.name = "captionBox_" + num;
addChild(copyOne.mc1);
copyOne.mc1.addEventListener(MouseEvent.CLICK, onCaptionClick);
copyOne.mc1Text.name = "captionBoxText_" + num;
copyOne.mc1.addChild(copyOne.mc1Text);
// ---------------------------------------------------------------
// Set default mc2 settings
var settings4:Object = copyOne.mc2Settings;
for(var num4:String in settings4) {
copyOne.mc2[num4] = settings4[num4];
}
// Set default mc2text settings
var settings5:Object = copyOne.mc2TextSettings;
for(var num5:String in settings5) {
copyOne.mc2Text[num5] = settings5[num5];
}
copyOne.mc2.x = nextXpos;
copyOne.mc2.y = copyOne.mc1.height;
copyOne.mc2.name = "box2_" + num;
addChild(copyOne.mc2);
copyOne.mc2Text.name = "box2BoxText_" + num;
copyOne.mc2.addChild(copyOne.mc2Text);
copyOne.mc2.addEventListener(MouseEvent.CLICK, onBoxClick);
if (num / subunits is int) {
trace (num);
// createMc("normalBox", true);
}
nextXpos = nextXpos + copyOne.mc2.width;
// traceObj(copyOne);
// traceObj(getReadOnlyValues());
}
この関数をループで呼び出したので、多くのムービークリップを作成しました。オブジェクトのプロパティとその子 (テキスト フィールドなど) にアクセスできなくなりました。
ステージ上にあるオブジェクト: ムービークリップとテキストフィールド
どこから来たか: 上記の関数
それらを使ってやろうとしていること: ムービークリップとテキストフィールド (オブジェクトによって保持されている) をトレースして、それらの子 (テキストフィールド)
のテキストを変更する私が期待するもの: トレース コードtrace(getChildByName("copy_" + str)); // trying to trace an object by name
は、オブジェクト タイプを提供する代わりに未定義の出力を出力します。