Что интересно, в Action Script все элементы разделены по глубине (кстати очень удобно).
Ну вот я создаю текстовое поле с глубиной depth, причем эта depth вычисляется через большую формулу отталкиваясь от самого нижнего элемента, назовем его background. А ему наш любимый флеш присвоил глубину свою: примерно -16384. И тут мне понадобилось удалить текстовое поле. remove - не реагирует, remove! - ноль внимания. REMOVE - ни в какую...
Два дня ломал голову, что к чему.. вроде имена уникальные, глубины тоже.. и тут в мою черепную окробку, напрочь лишеную серой жидкости закрадывается мысль очередного теста.
Процедура создания нескольких текстовых полей:
butX = 200;
butY = 50;
for (i = 1; i <= 5; i++)
{
butY += 50;
_root.createTextField("caption_"+i, -3 + i, butX - 145, butY - 7, 130, 20);
_root["caption_"+i].text = "SsSsSsSs " + i;
}
процедура удаления этих текстовых полей:
for (i = 0; i <= 5; i++)
{
// выводим объект в output до удаления
trace(i + "c : " + _root["caption_" + i] + " = " + _root["caption_" + i].text);
_root["caption_" + i].removeTextField();
// выводим объект в output после удаления
trace(i + "c : " + _root["caption_" + i] + " = " + _root["caption_" + i].text);
}
результат трейса (ака output'а):
0c : undefined = undefined // этого эелемента и не было
0c : undefined = undefined
1c : _level0.caption_1 = SsSsSsSs 1 // до удаления (при глубине -2)
1c : _level0.caption_1 = SsSsSsSs 1 // после удаления (при глубине -2)
2c : _level0.caption_2 = SsSsSsSs 2 // до удаления (при глубине -1)
2c : _level0.caption_2 = SsSsSsSs 2 // после удаления (при глубине -1)
3c : _level0.caption_3 = SsSsSsSs 3 // до удаления (при глубине 0)
3c : undefined = undefined // после удаления (при глубине 0)
4c : _level0.caption_4 = SsSsSsSs 4 // до удаления (при глубине 1)
4c : undefined = undefined // после удаления (при глубине 1)
5c : _level0.caption_5 = SsSsSsSs 5 // до удаления (при глубине 2)
5c : undefined = undefined // после удаления (при глубине 2)
Вот такой вот загадочный Action Script...