This is a discussion on Effetto accelerazione con Flash CS3 within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; zzzzzzzzUP...
Abbiamo visto in precedenza nell' articolo inerzia con Actionscript 3.0 come creare un effetto spostamento da veloce a ...
zzzzzzzzUP...
Abbiamo visto in precedenza nell' articolo inerzia con Actionscript 3.0 come creare un effetto spostamento da veloce a lento.
Ora vorrei mostrare come ottenere l'effetto contrario e cioè un oggetto parte lento e accellera sempre di più fino ad arrivare al punto desiderato.
Ecco come fare...
Creo un FLA che salvo con nome ' accelerazione.fla' .
Creo la Document Class, un file AS che salvo con nome ' Accelerazione.as ', implementata in questo modo:
Code:
package
{
import flash.display.Sprite;
import flash.display.SimpleButton;
import flash.events.Event;
import flash.events.MouseEvent;
public class Accelerazione extends Sprite
{
private var sprite:Sprite;
private var arrivo:int=520;
private var accelerazioneX:Number=.4;
private var velocitaX:Number=0;
public function Accelerazione()
{
stage.frameRate=31;
disegnaSprite();
initSpriteListener();
initButtonListener();
}
private function disegnaSprite():void
{
sprite=new Sprite();
sprite.graphics.beginFill(0x666666,100);
sprite.graphics.drawCircle(0,0,25);
sprite.graphics.endFill();
sprite.x=50;
sprite.y=100;
addChild(sprite);
}
private function initSpriteListener():void
{
sprite.addEventListener(Event.ENTER_FRAME,muoviSprite);
}
private function initButtonListener():void
{
riprova_btn.addEventListener(MouseEvent.MOUSE_DOWN,rifai);
}
private function muoviSprite(e:Event):void
{
velocitaX+=accelerazioneX;
sprite.x+=velocitaX;
if(sprite.x>=arrivo)
{
sprite.x=arrivo;
sprite.removeEventListener(Event.ENTER_FRAME,muoviSprite);
}
}
private function rifai(m:MouseEvent):void
{
sprite.removeEventListener(Event.ENTER_FRAME,muoviSprite);
sprite.x=50;
sprite.y=100;
velocitaX=0;
initSpriteListener();
}
}
}
Analizzando il codice utilizzato,
si può notare che dichiaro una variabile accelerazione ed una velocità.
La variabile accelerazione è un numero costante mentre la velocità viene impostata a zero, aumentata sotto intervallo del valore di accelerazione e poi ' data in pasto ' alla x della sprite.
Il codice sembra corposo in quanto ho utilizzato anche un bottone per poter fare il replay.
mi autorispondo in 2 secondi: naturalmente ho copiato il tuo script male quando ho fatto le prove sul pc, infatti guarda come ho dovuto trasformarlo per avere lo stesso tuo effetto: