Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как убить мувик изнутри? (http://www.flasher.ru/forum/showthread.php?t=148408)

Satros 30.12.2010 01:22

Как убить мувик изнутри?
 
Подскажите плиз как можно удалить мувиклип из списка отображения из собственого timeline,
например чтоб прогнала анимация из 5 кадров и на последнем стоял код, которий удаляет етот мувик из списка отображения?

spooner 30.12.2010 01:24

Не надо в кадрах ничего писать.
А вообще:
Код AS3:

parent.removeChild(this);


Satros 30.12.2010 01:35

Спасибо, я знаю что писать код в кадрах, даже пару строчек, ето плохо, но просто не знаю как иначе, может ви подскажете)
Я генерирую много мувиков(крапли дождя) в enterFrame-е, идет анимация падения и т.д и т.п, но потом не знаю как удалить етот мувик по окончанию анимации, нашел выход только написать в timeline

Bgg 30.12.2010 01:41

А вы не удаляйте капли, а перемещайте их снизу вверх. Не будет постоянных new и removeChild.

Satros 30.12.2010 01:48

Как все просто, спасибо =)

nitratus 21.01.2012 23:58

А мне пишет ошибку: Не удается вызвать свойство или метод со ссылкой на объект "null".
at garb2/func()

Ошибка происходит в тот момент, когда мувик удаляется. Он удаляется, и все начинает дико тормозить

Код в первом кадре стейджа:
Код AS3:

addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);
function fl_EnterFrameHandler(event:Event):void
 { addChild (new garb2()); }




Код класса:
Код AS3:

package {
 
 import flash.display.MovieClip;
 import flash.events.*;
 
 public class garb2 extends MovieClip {
 public function garb2 () {
this.graphics.beginFill(0xFF0000);
this.graphics.drawRect(0, 0, 13, 14);
 
this.x = Math.round(100 * Math.random());
this.y = Math.round(100 * Math.random());
 
 addEventListener(Event.ENTER_FRAME, func);
 }
 private function func(e:Event):void {
this.alpha-=1/70;
if (Math.random()*20<1){parent.removeChild(this)};
 }
 }
}


Тут ничто ни на кого вроде не ссылается, без понятия в чем проблема

СлаваRa 22.01.2012 00:41

я думаю проблема из-за
Код AS3:

parent.removeChild(this)

и вообще имена классов принято писать с большой буквы.

Inet_PC 22.01.2012 00:49

Проблем как минимум две 1. СлаваRа уже ответил (пытаетесь удалить, а не факт, что добавлены). 2. Удалить удалили, а кто от ENTER_FRAME отписываться будет?

nitratus 22.01.2012 00:58

ага, слушатель события смотрит, не вошел ли мувик в кадр, а мувика-то уже нету. Спасибо!

СлаваRa 22.01.2012 01:03

ага, че т я подписку на ENTER_FRAME не заметил


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

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