Esempio: Animazione con Caurina Tweener
import flash.display.Sprite;
import flash.events.Event;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.*;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.render.BasicRenderEngine;
import caurina.transitions.Tweener;
var viewport: Viewport3D;
var scena: Scene3D;
var camera: Camera3D;
var materiale: ColorMaterial;
var renderer: BasicRenderEngine;
viewport = new Viewport3D(550, 400, false, true);
addChild(viewport);
scena = new Scene3D();
camera = new Camera3D();
renderer = new BasicRenderEngine();
materiale = new ColorMaterial(0x333333);
var cubo1:Cube = new Cube(
new MaterialsList({all:new ColorMaterial(0x330033)}),
300, 200, 150);
var cubo2:Cube = new Cube(new MaterialsList(
{all:new ColorMaterial(0x333300)}),
300, 200, 150);
posiziona(cubo1,0,-200,100);
posiziona(cubo2,-300,-200,-200);
cubo1.rotationY = 30;
cubo2.rotationY = 30;
scena.addChild(cubo1);
scena.addChild(cubo2);
Tweener.addTween(camera, { x:-2900, y:1400, z:0,
time:5, transition:"easeinoutexpo",
onComplete:anim}
);
function anim ()
{
if (camera.x==-2900) Tweener.addTween(camera,
{ x:0, y:2900, z:-100,
time:5, transition:"easeinoutexpo",
onComplete:anim });
if (camera.x==0) Tweener.addTween(camera,
{ x:-300, y:-850, z:-700,
time:5, transition:"easeinoutexpo",
onComplete:anim });
if (camera.x==-300) Tweener.addTween(camera,
{ x:-2900, y:1400, z:0, time:5,
transition:"easeinoutexpo",
onComplete:anim });
// trace (camera.x);
}
addEventListener(Event.ENTER_FRAME, onEnterFrame);
function onEnterFrame(e:Event):void
{
camera.lookAt(cubo1);
renderer.renderScene(scena, camera, viewport);
}
function posiziona(do3d,x,y,z)
{
do3d.x=x;
do3d.y=y;
do3d.z=z;
}