|
|
|||||
Регистрация: Sep 2012
Сообщений: 57
|
Удаление child
Нужно чтобы при повторном клике child удалялся. Пытаюсь записать так: глючит, ругается, выдаёт ошибку.
pol1.addEventListener(MouseEvent.CLICK, oMClick4); function oMClick4(e:MouseEvent):void { newv.visible = true; var item:Jpg1 = new Jpg1(); addChild (item); item.x = 125; item.y = 480; item.scaleX=0.246; item.scaleY=0.246; addEventListener(MouseEvent.CLICK, oMClick5); function oMClick5(e:MouseEvent):void { removeChild(item); } } |
|
|||||
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Обьявление переменной item надо вынести за функцию omClick4. И не пишите в кадрах.
|
|
|||||
Переменная item объявлена в области видимости функции oMClick4. В области видимости функции oMClick5 ее нет. Вот компилятор и недоумевает, что же вы такое хотите 'removeChild'.
|
|
|||||
Регистрация: Sep 2012
Сообщений: 57
|
Я уже пробовала, но это не помогает
Добавлено через 38 секунд пишет The supplied DisplayObject must be a child of the caller. |
|
|||||
Регистрация: Aug 2012
Сообщений: 297
|
//Определяю пакет: package src { import flash.display.MovieClip; import flash.events.MouseEvent; //Определяю класс: public class MainClass extends MovieClip { //Определяю переменную экземпляра с модификатором управления доступом private. private var os; //Определяю метод-конструктор: public function MainClass() { //Определяю событие MouseEvent: нажатие левой кнопки мыши. s.addEventListener(MouseEvent.MOUSE_DOWN, md); } //Определяю метод экземпляра с модификатором управления доступом private. private function md(event:MouseEvent):void { //Инициализирую переменную os (создаю объект). os = new objectStage(); //Тут ваши замыслы. //Добавляю на сцену объект: this.addChild(os); //Определяю событие MouseEvent: нажатие левой кнопки мыши. os.addEventListener(MouseEvent.MOUSE_DOWN, mdo); } //Определяю метод экземпляра с модификатором управления доступом private: private function mdo(event:MouseEvent):void { //Присваиваю объект локальной переменной: var lw = event.target; //Если на сцене есть объект, то: if(stage.contains(lw)) { //Удаляю его со сцены: this.removeChild(lw); //Удаляю событие мыши: lw.removeEventListener(MouseEvent.MOUSE_DOWN, mdo); } } } } Символ MovieClip 's' это объект на который вы нажимаете и создаёте тем самым новый объект. |
|
|||||
Цитата:
P.S. На самом деле первая проверка необязательна. Если объект не добавлен в display list, то item.parent == null и уж точно item.parent != this. |
|
|||||
Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
|
contains проверяет и дочерние контейнеры тоже
__________________
low + |
Часовой пояс GMT +4, время: 11:13. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|