Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Удалить созданный текст (http://www.flasher.ru/forum/showthread.php?t=128917)

Yami 20.08.2009 14:40

Удалить созданный текст
 
Здравствуйте :)
Не могу понять как удалить текст созданный через
Код AS1/AS2:

_root.createTextField("txt", 1, 10 ... );


Wolsh 20.08.2009 15:02

Код AS1/AS2:

txt.removeTextField();


Yami 20.08.2009 18:47

не понимаю как происходит процесс удаления :(
Код AS1/AS2:

i = 2;
trace(i + "c : " + _root["caption_" + i]);
_root["caption_" + i].removeTextField();
trace(i + "c : " + _root["caption_" + i]);

трейс выводит:
Цитата:

2c : _level0.caption_2
2c : _level0.caption_2
Хотя по идее во второй раз мне нужен undefined...

P.S. Тоже самое с мувиклипами у меня.. объясните плз как полностью удалить все следы существования мувиклипа =)

udaaff 20.08.2009 19:00

Код AS1/AS2:

createTextField("caption_2", 0, 0, 0, 100, 100);
 
i = 2;
trace(i + "c : " + _root["caption_" + i]);
_root["caption_" + i].removeTextField();
trace(i + "c : " + _root["caption_" + i]);
 
//2c : _level0.caption_2
//2c : undefined

У меня все удаляется.

Yami 20.08.2009 19:15

черт возьми.. у меня просто так (в чистом проекте) тоже нормально все работает :(
а в нужном нифига не работает... в чем может быть проблема?
Создаю как написал в первом посте... разве что создание и удаление в разных функциях. Но обращение то идет!
Убей, но не могу понять почему не удаляет...

udaaff 20.08.2009 19:29

Значит текстовое поле не при помощи createTextField() создано.

wvxvw 20.08.2009 19:34

Есть еще вариант, если вы где-то создавали текстовые поля / клипы с одинаковыми именами, то это вводит в заблуждение плеер и будут глюки в дисплей листе / глюки с фокусом, удалением и т.п.
Просто:
а.
Код AS1/AS2:

_root["caption_" + i]

не делайте так никогда.
b. всегда следите за тем, чтобы давать уникальные имена, уникальные глубины.

udaaff 20.08.2009 19:40

Код AS1/AS2:

createTextField("caption_2", 0, 0, 0, 100, 100);
createTextField("caption_2", 1, 0, 0, 100, 100);
 
i = 2;
trace(i + "c : " + _root["caption_" + i]);
_root["caption_" + i].removeTextField();
trace(i + "c : " + _root["caption_" + i]);
 
//2c : _level0.caption_2
//2c : _level0.caption_2

Действительно...

Yami 20.08.2009 20:14

wvxvw, дело в том что количество текстовых полей не постоянно.. то есть создается N количество текстовых полей. Попробую отследить где происходит наложение... хотя даже представить не могу где это может быть.
С глубинами попроще.. если на такую же глубину помещаешь, то предыдущий элемент затирается.

Добавлено через 20 часов 30 минут
Методом научного тыка выявленно:
при указанной отрицательной глубине remove жестоко глючит.
процедура создания:
Код AS1/AS2:

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;
}

процедура удаления
Код AS1/AS2:

for (i = 0; i <= 5; i++)
{
        trace(i + "c : " + _root["caption_" + i] + " = " + _root["caption_" + i].text);
        _root["caption_" + i].removeTextField();
        trace(i + "c : " + _root["caption_" + i] + " = " + _root["caption_" + i].text);
}

результат трейса:
Код:

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)

проверенно в свежесозданном документе с двумя кнопками (создать и удалить).
Adobe Flash CS4. Action Script 1/2.

P.S. Самое странное, что по-умолчанию у элементов флеша отрицательная глубина (напр. -16384)
P.P.S Буду рад, если кто-то более опытный прокомментирует ситуацию..


Часовой пояс GMT +4, время: 23:17.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.