hace poco que he migrado de AS2 a AS3 y voy un poco perdido con el tema. Es probable que la duda esté ya resuelta en algun foro pero no he sabido encontrarla hasta el momento... pido disculpas ya desde ahora si este es el caso.
Mi duda es muy creo que es muy sencilla per no logro resolverla:
estoy diseñando una actividad sencilla para los niños de mi clase. Creo un clip y lo coloco en el escenario. Lo que pretendo es variar algunas de sus propiedades (x, y, scaleX, scaleY, alpha) mientras se va desplazando de izquierda a derecha para volver a empezar. Lo tengo todo claro excepto el movimiento de Y. Pretendo que el clip suba, llegue hasta 0 y vuelva a generar un movimiento hacia abajo, dando sensación de rebote. He generado unas líneas de código que sí lo hacen pero, no sé porquè, acelera el movimiento de manera exponencial y se descontrola totalmente. El código és el siguiente:
Código ActionScript :
import flash.display.MovieClip; import flash.events.Event; import flash.text.engine.EastAsianJustifier; stop(); //==================================================================================== var clip:MovieClip = new estrella_clip_00(); clip.x = clip.width / 2; clip.y = stage.stageHeight / 2; addChild(clip); //==================================================================================== //==================================================================================== clip.addEventListener(Event.ENTER_FRAME, movimientotX); clip.addEventListener(Event.ENTER_FRAME, movimientoY); clip.addEventListener(Event.ENTER_FRAME, rotacion); clip.addEventListener(Event.ENTER_FRAME, transparencia); clip.addEventListener(Event.ENTER_FRAME, escalaX); clip.addEventListener(Event.ENTER_FRAME, escalaY); //====================================================================================; //====================================================================================; var inc00:uint = 2.5; var inc01:uint = 5; var inc02:Number = 0.0000001; var inc03:Number = 0.01; var limitUP:uint = 0; var limitDOWN:uint = stage.stageHeight; //==================================================================================== //==================================================================================== function movimientoX(event:Event):void { clip.x += inc00; if (clip.x > stage.stageWidth) { clip.x = 64; clip.alpha = 1; clip.scaleX = 1; clip.scaleY = 1; } } //==================================================================================== //==================================================================================== function rotacion(event:Event):void { clip.rotation += 5; } //==================================================================================== //==================================================================================== function transparencia(event:Event):void { clip.alpha -= inc02; } //==================================================================================== //==================================================================================== function escalaX(event:Event):void { clip.scaleX += inc03; } //==================================================================================== //==================================================================================== function escalaY(event:Event):void { clip.scaleY += inc03; } //==================================================================================== //==================================================================================== function movimientoY(event:Event):void { clip.y-=inc01; if (clip.y<limitUP) { clip.addEventListener(Event.ENTER_FRAME, movimientoY_UP); function movimientoY_UP(event:Event):void { clip.y+=inc01; } } if (clip.y>limitDOWN) { clip.addEventListener(Event.ENTER_FRAME, movimientoY_DOWN); function movimientoY_DOWN(event:Event):void { clip.y-=inc01; } } } //====================================================================================
Estaré muy agradecido si alguien me puede ayudar a tirar adelante esta actividad. ¡Muchas gracias por su atención!
Saludos,
Digid