La classe Tween, in ActionScript 3.0, è rimasta pressoché invariata rispetto alle precedenti versioni di ActionScript, ma è naturalmente cambiata la sintassi e il modo in cui deve essere implementata.
Analizziamo velocemente le novità con questo script di esempio, utilizzando, peraltro, diverse nuove funzionalità proprie di AS 3.0.
Creiamo un nuovo File Flash (ActionScript 3.0) e trasciniamo un componente Button nella Libreria.

Inserite il seguente codice nel primo frame del file .fla:
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
import fl.controls.Button;
import flash.events.MouseEvent;
stage.frameRate = 30;
// =====================================
// Creiamo l'oggetto da animare (un cerchio)
// =====================================
var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xFF9900);
circle.graphics.drawCircle(100, 100, 50);
circle.graphics.endFill();
circle.x = 50;
circle.y = 50;
addChild(circle);
// =====================================
// Definiamo l'animazione Tween e i suoi listener
// =====================================
var start_x:Number = circle.x;
var start_y:Number = 300;
var duration:Number = 2;
var myTween:Tween = new Tween(circle, "x", Bounce.easeOut, start_x, start_y, duration, true);
function onMotionFinished(event:TweenEvent):void {
trace("Animazione Terminata")
}
function onMotionStart(event:TweenEvent):void {
trace("ReStart Animazione")
}
myTween.addEventListener(TweenEvent.MOTION_FINISH, onMotionFinished)
myTween.addEventListener(TweenEvent.MOTION_START, onMotionStart)
// =====================================
// RESTART Animation Button
// =====================================
var restart_btn:Button = new Button();
restart_btn.label = "Restart Animation";
restart_btn.y = 340;
addChild(restart_btn);
function restartAnimation(event:MouseEvent):void {
myTween.start();
}
restart_btn.addEventListener(MouseEvent.CLICK, restartAnimation);

DETTAGLI CODICE:
1) Innanzitutto importiamo le classi necessarie al funzionamento dello script.
Come si nota, tutti i package e i percorsi delle classi sono cambiati rispetto ad ActionScript 2.0
2) Subito dopo, un’altra novità di AS 3.0: definiamo infatti il framerate del .fla tramite codice
3) Creiamo l’oggetto da spostare, un cerchio, utilizzando un’altra nuova classe (Sprite) e un nuovo metodo drawCircle, che accetta 3 parametri: x, y e il raggio.
Utilizziamo infine il metodo addChild per visualizzare l’elemento sullo Stage.
4) Definiamo un’istanza della classe Tween, myTween, che rappresenterà la nostra animazione.
Come si può vedere dal codice, in questo caso le novità rispetto AS 2.0 sono minime.
5) Definiamo i listener e gli event handler degli eventi MOTION_FINISH e MOTION_START dell’istanza della classe Tween, che ci segnaleranno, rispettivamente, la fine dell’animazione (nel momento in cui viene completata) o il suo avvio (quando viene premuto il pulsante “Restart Animation”)
NOTA: la definizione degli eventi cambia radicalmente rispetto alla precedente versione di ActionScript. Ora, per il broadcast, viene infatti utilizzata una nuova classe, TweenEvent, e anche la loro implementazione differisce leggermente dal passato.
6) Creiamo infine il pulsante restart_btn per riavviare l’animazione.








Commenti (2)
Salve,
su tutti i siti, i forum, le guide, ecc... è descritto come impostare una tween verticale o orizzontale, ma se devo farla diagonale???
Saluti
-
Postato da Giulio | 13.09.07 00:49
Postato il 13.09.07 00:49
Ciao,
è sufficiente cambiare la riga seguente:
var myTween:Tween = new Tween(circle, "x", Bounce.easeOut, start_x, start_y, duration, true);
in:
var myTween:Tween
myTween = new Tween(circle, "x", Bounce.easeOut, start_x, start_y, duration, true);
myTween = new Tween(circle, "y", Bounce.easeOut, start_x, start_y, duration, true);
ciao
Fabio
Postato da Fabio Biondi | 13.09.07 01:00
Postato il 13.09.07 01:00