gfm100 0 Denunciar post Postado Janeiro 22, 2009 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
gmcp 0 Denunciar post Postado Janeiro 22, 2009 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
gfm100 0 Denunciar post Postado Janeiro 23, 2009 Muito obrigado! Compartilhar este post Link para o post Compartilhar em outros sites