Удаление текстовых полей в цикле

#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();