Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gfm100

[Resolvido] Problema ao remover objeto...

Recommended Posts

Olá pessoal,

 

hoje eu comecei a migrar do AS2 para o AS3 e senti um impacto bem grande!

 

Resolvi começar com uns scripts não muito difíceis, mas não adiantou muito...

 

Eu criei um script para pegar da Library um MC, jogar no palco e fazer ele sumir, tudo começando no evento MOUSE_MOVE...

 

Nada mais é que um rastro para o mouse.

 

O problema é que ele não apaga o que já desapareceu, mas está apagando normalmente o evento do objeto em questão.

 

function clonar(event:MouseEvent):void {
	var star:Star = new Star();
	stage.addChild(star);
	
	star.x = stage.mouseX - 13 + Math.random()*15 + 5;
	star.y = stage.mouseY - 3 + Math.random()*15 + 5;

	var r:Number = (Math.random()*.8 + .2);
	star.alpha = star.scaleX = star.scaleY = r;

	star.addEventListener(Event.ENTER_FRAME, desaparecer);
}

function desaparecer(event:Event):void {
	var d:uint = 2;
	var vel:uint = 5;

	event.currentTarget.y += (d/4)*vel;
	event.currentTarget.x += d/4;

	event.currentTarget.alpha = event.currentTarget.scaleX = event.currentTarget.scaleY -= d/100;

	if (event.currentTarget.alpha <= 0) {
		event.currentTarget.removeEventListener(Event.ENTER_FRAME, desaparecer);
		stage.removeChild(event.currentTarget) // <-- LINHA COM PROBLEMA
	}
}

stage.addEventListener(MouseEvent.MOUSE_MOVE, clonar);

Links para o .rar com o .fla e o .swf: Megaupload - Rapidshare - iFile

 

Se possível também queria que vocês me dissessem se eu fiz corretamente ou se poderia melhorar o código...

 

Espero que vocês possam me ajudar mais uma vez!

Aguardo respostas!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz algumas mudanças e deu certo.

function clonar(event:MouseEvent):void {
	var star:Star = new Star();
	stage.addChild(star);
	
	star.x = stage.mouseX - 13 + Math.random()*15 + 5;
	star.y = stage.mouseY - 3 + Math.random()*15 + 5;

	var r:Number = (Math.random()*.8 + .2);
	star.alpha = star.scaleX = star.scaleY = r;

	star.addEventListener(Event.ENTER_FRAME, desaparecer);
function desaparecer(event:Event):void {
	var d:uint = 2;
	var vel:uint = 5;

	star.y += (d/4)*vel;
	star.x += d/4;

	star.alpha = star.scaleX = star.scaleY -= d/100;
}
	if (star.alpha <= 0) {
		star.removeEventListener(Event.ENTER_FRAME, desaparecer);
		stage.removeChild(star) // <-- LINHA COM PROBLEMA
}
}
stage.addEventListener(MouseEvent.MOUSE_MOVE, clonar);

pra começar, juntei as funções em uma só(uma dentro da outra), depois, troquei "event.currentTarget" por "star"(nome da variável).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.