#actionscript-2
#actionscript-2
Вопрос:
Я пытаюсь создать, а затем удалить некоторые текстовые поля со своей сцены.
for(i=0;i<Chars.length;i ){
temp = Chars[i] "_Label";
_root.createTextField(temp, _root.getNextHighestDepth(), 40, 80 (i*30), 200, 20);
this[temp].html = true;
this[temp].vScrollPolicy = false;
this[temp].selectable = false;
this[temp].styleSheet=Stat_style;
this[temp].htmlText = "<h4>" eval(Mares[i] ".Name") "</h4>";
temp = Chars[i] "_Health";
_root.createTextField(temp, _root.getNextHighestDepth(), 250, 80 (i*30), 200, 20);
this[temp].html = true;
this[temp].vScrollPolicy = false;
this[temp].selectable = false;
this[temp].styleSheet=Stat_style;
this[temp].htmlText = "<h4>" eval(Mares[i] ".Health") "</h4>";
}
stop();
CTRL_Back.onRelease = function() {
for(i=0;i<Chars.length;i ){
temp = Chars[i] "_Label";
this[temp].removeTextField();
temp = Chars[i] "_Health";
this[temp].removeTextField();
}
}
Часть создания работает просто отлично. Но я не могу их удалить. Когда я пробую это вручную с помощью Char1_Label.removeTextField();
, это работает, но я не понимаю, почему это не будет работать в моем цикле.
Ответ №1:
Проблемный момент заключается в использовании this
определения внутренней функции. В данном случае это относится к вашему CTRL_Back
объекту, не относящемуся к области, на которой написан ваш код. Итак, вам нужно использовать другую ссылку на вашу область. В вашем случае это было бы this._parent
поэтому ваша строка удаления должна быть такой this._parent[temp].removeTextField();