2014-10-02 3 views
-1

Im создание флеш-приложения, где я создал представления, которые расширяют класс базового представления. Я не могу опустить голову вокруг мотыги, чтобы снять вид со сцены. Я хочу назвать что-то вроде: super.kill(); который должен удалить ребенка.as3 acces child from super/base class

Im добавляя мой взгляд ребенка на сцену в main.as, запустив это.

var _idleView: IdleView = new IdleView(); 
    addChild(_idleView); 

Мой idleView.as конструктор выглядит следующим образом:

public class IdleView extends BaseView { 

    public function IdleView():void { 


     super(); 
    } 
} 

И мой baseView.as выглядит следующим образом:

public class BaseView extends Sprite { 

    public function BaseView():void { 
     this.alpha = 0; 
     init(); 
    } 

    protected function init():void { 
     TweenLite.to(this, 1, {alpha:1}); 
    } 

    protected function kill():void { 

    } 
} 

Так я в принципе интересно, как я могу запустить убить() в базовом представлении, вызвав его из дочернего представления? И он должен запустить removeChild, чтобы добавленный ребенок удалился сам.

+0

Я не думаю, что ребенок может удалить себя из экранного списка своего родителя. Почему бы просто не использовать 'removeChild (_idleView)' в объекте, который добавил его в первую очередь? – DodgerThud

ответ

0

Как я понимаю, чтобы удалить вид из родительского использования этого:

if (this.parent) 
    this.parent.removeChild(this); 

Вы можете получить доступ к умерщвлению() метод из класса ребенка без каких-либо проблем, потому что она защищена.

+0

Спасибо! так что в основном я могу запустить super.kill() от ребенка, а затем поместить ваш код в kill()? – user2952238

+0

Просто убить(). Вы должны использовать super.kill(), если вы переопределите базовый метод kill в child, но хотите вызвать базовую реализацию. – Selirion

+3

Это делает работу, но является неправильным решением, так как создает зависимость. Лучше было бы любому ребенку отправить событие, показывающее его намерение быть удаленным. Затем родитель может прослушивать (или нет -> без зависимости) это событие и правильно удалять запрошенного ребенка. Имея ребенка, рассказывающего родителям, что делать, создает зависимости, которые делают код очень жестким, вместо этого имеет дочерний запрос родителя чего-то и пусть родители решают, что делать. – BotMaster