forked from: forked from: [BetweenAS3] Papervision Matrix3D Tween
/**
* Copyright nasajun ( http://wonderfl.net/user/nasajun )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/6sgx
*/
// forked from yonatan's forked from: [BetweenAS3] Papervision Matrix3D Tween
// forked from yonatan's [BetweenAS3] Papervision Matrix3D Tween
// forked from nitoyon's [BetweenAS3] Random Text Tween
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.utils.*;
import org.libspark.betweenas3.easing.*;
import org.papervision3d.lights.PointLight3D;
import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.objects.primitives.PaperPlane;
import org.papervision3d.view.BasicView;
[SWF (backgroundColor="0xFFFFFF")]
public class FlashTest extends BasicView {
public function FlashTest() {
_camera.zoom = 30;
var light:PointLight3D;
light = new PointLight3D(false);
light.y = 1000;
var mats:Array = [];
mats.push(new FlatShadeMaterial(light, 0x0c6867));
mats.push(new FlatShadeMaterial(light, 0x6677FF));
mats.push(new FlatShadeMaterial(light, 0x222222));
mats.push(new FlatShadeMaterial(light, 0xe88b12));
mats.forEach( function(item:*, ...rest):void {item.doubleSided = true;} );
var planes:Array = [];
for(var i:uint=0; i < 64; i++) {
var p:PaperPlane = new PaperPlane(mats[i%mats.length]);
scene.addChild(p);
planes.push(p);
}
function doTweens():void {
var sx:Number = Math.random()*3;
var sy:Number = Math.random()*3;
var sz:Number = Math.random()*2;
var yaw:Number = Math.random()*1000;
var pitch:Number = Math.random()*1200;
var dist:Number = Math.random()*500 + 250;
var lookAt0:Boolean = Math.random() < 0.5;
for(var i:uint=0; i < planes.length; i++) {
var n:Number = i/planes.length - 0.5;
var dst:DisplayObject3D = new DisplayObject3D;
dst.yaw(yaw*n);
dst.pitch(pitch*n);
dst.moveForward(dist);
dst.scaleX = sx;
dst.scaleY = sy;
dst.scaleZ = sz;
if(lookAt0) {
dst.lookAt(DisplayObject3D.ZERO);
}
dst.copyTransform(dst);
var tween:PVMatrixTween = new PVMatrixTween();
tween.target = planes[i];
tween.easing = Sine.easeOut;
tween.matrix = dst.transform;
tween.time = 1;
tween.play();
}
}
setInterval(doTweens, 1500);
addEventListener("enterFrame", function(e:*):void {
_camera.x = light.x = Math.sin(getTimer()/3000) * 1000;
_camera.z = light.z = Math.cos(getTimer()/3000) * 1000;
});
startRendering();
}
}
}