PDA

Просмотр полной версии : Как убить мувик изнутри?


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

spooner
30.12.2010, 01:24
Не надо в кадрах ничего писать.
А вообще:
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()

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

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

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






Код класса:
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
я думаю проблема из-за
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 не заметил