MovieSkin e VideoSkin
In qualche occasione possiamo volere più "azione" sulle superfici dei nostri oggetti 3D, per esempio, un news ticker, oppure un video su un oggetto a forma di TV, oppure dei colori "abbaglianti" all'interno di una scena da discoteca. Questo può essere fatto utilizzando MovieSkin
e VideoSkin
, che permettono rispettivamente di associare un MovieClip o un video a un oggetto.
MovieSkin
sfrutta un MovieClip
e BitmapData
per creare un effetto di distorsione più "elegante" durante le animazioni; la clip può essere statica o animata ed eventualmente contenere della musica. VideoSkin sfrutta invece un oggetto di tipo Video.
Riutilizziamo un vecchio filmato
Prendiamo come base il cubo con applicate le texture visto precedentemente e cambiamo la TextureSkin
in una MovieSkin
.
Abbiamo bisogno di un filmato da utilizzare per la skin: possiamo crearne uno nuovo oppure prenderne uno già realizzato, sia creato da noi o reperito sul web. Prestiamo attenzione al fatto che le sue dimensioni devono essere adatte a quelle del cubo, per questo possiamo anche creare un nuovo MovieClip
sullo stage con dimensioni appropriate e importare in esso l'swf che vogliamo utilizzare. Diamo come identificatore nei settaggi di esportazione il nome desiderato (nell'esempio, motor).
La funzione createScene()
avrà il seguente codice
Listato 36. Crea la scena con il cubo e le texture
function createScene(Void):Group{
var g:Group = new Group();
var skin:MovieSkin = new MovieSkin(motor);
var box:Box = new Box(80,80,80,'tri');
box.setSkin( skin );
var ease:Ease = new Ease();
var tg:TransformGroup = new TransformGroup();
rotint = new RotationInterpolator( ease.create(),400 );
rotint.setAxisOfRotation( new Vector( 2, 0 , 1));
rotint.addEventListener(InterpolationEvent.onEndEVENT, this, loop);
tg.setTransform(rotint);
tg.addChild(box);
g.addChild(tg);
return g;
}
Abbiamo inserito un RotationInterpolator
per muovere automaticamente il cubo, inoltre in Flash abbiamo inserito sullo stage due pulsanti per avviare o fermare la rotazione del cubo e la riproduzione della clip filmato. Il risultato è questo:
Cubo con applicato un movieclip come texture
Nell'esempio le linee rosse ai bordi delle facce del cubo fanno parte del movieclip "motor".
Nota: quando fermiamo la rotazione, alcune facce mantengono la skin mentre altre la perdono. Questo è dovuto al fatto che interrompiamo l'interpolatore di rotazione durante il rendering, Sandy richiede una qualche sincronizzazione con l'evento onRenderEvent
dell'oggetto World3D.
"© Petit Publications 2006" - diritti riservati