Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   class - как обратиться к экземпляру (http://www.flasher.ru/forum/showthread.php?t=210613)

Djigit 07.04.2015 21:21

class - как обратиться к экземпляру
 
Допустим у меня есть пакет с таким содержанием:
Код AS3:

package balls
{
      public class ball extends MovieClip
      {
            public function ball_up () : void
            {
                // обратиться здесь 
            }
      }
}

В действии я делаю :
Код AS3:

var new_ball = new ball();
addChild(new_ball);
new_ball.ball_up();

Вопрос: Как в пакете обратиться к new_ball ? (например : вызвать функцию removeChild(new_ball) )

Wolsh 08.04.2015 01:17

В следующий раз за название темы, не раскрывающее сути вопроса, тема будет закрываться.

Цитата:

// обратиться здесь
this
Цитата:

вызвать функцию removeChild(new_ball)
для начала разберитесь, откуда должен удаляться ребенок.
Читайте про:
Класс и экземпляр
Display list - Список отображения
DisplayObjectContainer - Контейнер

Экземпляр класса ball не может удалить сам себя, не может "сделать" removeChild(...), потому что не является Child самого себя)) Чтобф вызвать removeChild(this), нужно иметь ссылку на контейнер, из списка отображения которого Вы удаляете this, и вызвать этот метод у него. Читайте про свойство .parent

ZergMaster 08.04.2015 04:52

Для удаления мувика я обычно создаю внутри него функцию-деструктор, которая подчищает все за ним, навроде того:

Код AS3:

private function destructor():void { //эту функцию можно и public делать, т.к. она может быть элементом внешнего интерфейса
          //удаление всякого-всего, например листенеров
          //и удаление данного мувика из его родителя, кем бы он ни был
          this.parent.removeChild(this);
          }


caseyryan 08.04.2015 06:58

Цитата:

private function destructor():void
Какое-то название не феншуйное) Название метода должно быть глаголом в данном случае. А destructor() должен в таком случае возвращать какой-то экземпляр деструктора
Лучше уже тогда назвать destroy() или dispose()

ZergMaster 08.04.2015 14:27

caseyryan логично!=) На практике я зачастую называю как-нить типа "removeThis" или "destroyMe"

Wolsh 08.04.2015 21:41

что тоже выглядит нелепо в месте вызова, типа Вася.убейМеня(), хотя подразумевается ровно наоборот. Поменьше лирики, и логика восторжествует на сухих останках ©


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

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