Форум 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)
-   -   как уничтожить textField (http://www.flasher.ru/forum/showthread.php?t=99197)

d0cent 31.07.2007 03:50

как уничтожить textField
 
Как уничтожить созданный ранее динамический textField?

Kikasso 31.07.2007 03:57

Не поверите. removeTextField()

this.create 31.07.2007 04:23

Цитата:

Сообщение от Kikasso
Не поверите. removeTextField()

Если созданно программно.

Если руками на сцене, то поместить в мувиклип при создании. При удалении переместить мувиклип на положительную глубину( глубину придется отследить) и удалять.
Пример:
Код:

mc.swapDepths(this.getNextHighestDepth())
mc.removeMovieClip()

,где

mc - имя экземпляра мувиклипа на сцене. В него мы поместили текстовое поле;
Чтобы поместить текстовое поле в мувиклип:
создаем текстовое поле, выделяем его, нажимаем f8, пишем имя мувиклипа. На сцене даем название экземпляру мувиклипа.

etc 31.07.2007 10:26

this.create, а зачем вкладывать поле в мувик?

this.create 31.07.2007 14:44

Цитата:

Сообщение от __etc
this.create, а зачем вкладывать поле в мувик?

Чтобы удалить. У TextField я метода swapDepths не обнаружил.
К тому же в справке ясно написано:
Цитата:

This operation can only be performed on a text field that was created with MovieClip.createTextField().
Вы хотите сказать, что можно удалить просто текстовое поле? Покажите как.

etc 31.07.2007 14:54

Код:

swapDepths.call(txt, 5000);
txt.removeTextField();

Даже так вернее:

Код:

MovieClip.prototype.swapDepths.call(txt, 5000);
txt.removeTextField();


this.create 31.07.2007 15:24

Цитата:

Сообщение от __etc
Код:

swapDepths.call(txt, 5000);

Эта строчка означает, что мы сдалали так, как будто у класса TextField есть метод swapDepths( a его нет у этого класса) и применили его?

etc 31.07.2007 15:44

Я вызвал метод MovieClip для TextField. В целом, можно считать хаком.

Если swapDepths очень нужен для TextField, то:

Код:

TextField.prototype.swapDepths = function(objectOrDepth) {
    ASnative(900, 1).call(this, objectOrDepth);
}
txt.swapDepths(1000);
txt.removeTextField();


Kikasso 31.07.2007 15:47

Можно было сделать и так:
Код:

TextField.prototype.swapDepths = MovieClip.prototype.swapDepths;
txt.swapDepths(10);
txt.removeTextField();

Но нафига?


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

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