Oggi vedremo come utilizzare le classi di Papervision 3D 2.0 Interactivity utilizzando Adobe Flash CS3 per creare un cubo tridimensionale

Avremo la possibilità di ruotare il cubo con il puntatore del mouse o cambiare la veste grafica delle sei facce

Download Flash Player

L’esempio originale ci mostra come utilizzare le classi di Papervision 3D 2.0 con la possibilità di interagire con l’applicazione, in questo caso tramite un url.

Nel scaricare i file originali ho notato che purtroppo l’applicazione forse è stata scritta con delle classi meno recenti di Papervision, infatti non funzionava.

Quindi non è stato possibile mantenere questa interattività (si cercherà di implementarla prima possibile) dopo le varie mdofiche.

Questo è il codice per utilizzare le classi Papervision 3D 2.0

import org.papervision3d.scenes.*;
import org.papervision3d.cameras.*;
import org.papervision3d.objects.*;
import org.papervision3d.materials.*;
import org.papervision3d.core.proto.*;

var container:Sprite = new Sprite();
container.x = stage.stageWidth * 0.5;
container.y = stage.stageHeight * 0.5;
addChild (container);

var scene:Scene3D = new Scene3D(container);
var camera:Camera3D = new Camera3D(null, 11, 100);

var materials:Array = [];
for (var i:uint=1; i<=6; i++){
materials.push(new MovieMaterial(new (getDefinitionByName(”face”+i) as Class)()));
materials[uint(i-1)].smooth = true;
materials[uint(i-1)].animated = true;
}

var cube:Cube = new Cube(new MaterialsList({front:materials[0], back:materials[1], right:materials[2], left:materials[3], top:materials[4], bottom:materials[5]}), 200, 200, 200, 10, 10, 10);
scene.addChild (cube);

addEventListener (Event.ENTER_FRAME, loop);
function loop (e:Event):void {
var xDist:Number = mouseX - stage.stageWidth * 0.5;
var yDist:Number = mouseY - stage.stageHeight * 0.5;
cube.rotationY -= xDist * 0.05;
cube.rotationX += -yDist * 0.05;
scene.renderCamera (camera);
}

Un ringraziamento speciale a and80 per aver corretto le classi di Papervision3D

Scarica il sorgente
Guarda il VideoTutorial

Fonte [The Flash Bblog]