椭圆运动的图片show
package {
import caurina.transitions.Tweener;
import flash.events.Event;
import flash.filters.BlurFilter;
import flash.display.*;
import flash.events.MouseEvent;
import com.jacky.utils.getURL;
import org.papervision3d.materials.MovieAssetMaterial;
import org.papervision3d.core.math.Quaternion;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.core.effects.view.ReflectionView;
import org.papervision3d.events.InteractiveScene3DEvent;
public class PV3D_t005 extends ReflectionView {
private var flag:Boolean;
private var oldID:uint = 2;
private var len:Number=0;
private var Material0:MovieAssetMaterial = new MovieAssetMaterial("mc1");
private var Material1:MovieAssetMaterial = new MovieAssetMaterial("mc2");
private var Material2:MovieAssetMaterial = new MovieAssetMaterial("mc3");
private var Material3:MovieAssetMaterial = new MovieAssetMaterial("mc4");
private var Material4:MovieAssetMaterial = new MovieAssetMaterial("mc5");
private var carousel:DisplayObject3D = new DisplayObject3D();
private var tmpArr:Array=new Array();
private var xrr:Array = new Array(-296, -158, 0, 158, 296);
private var arr:Array = new Array(-15, -25, 0, 25, 15);
private var zrr:Array = new Array(0, -20, -50, -20, 0);
private var clickD:Boolean=true;
public function PV3D_t005() {
super(980,310,false,false);
init();
surfaceHeight = -250;
this.addEventListener(Event.ENTER_FRAME,enterFrame);
}
private function init():void {
for (var i:int = 0; i < 5; i++) {
var Material:MovieAssetMaterial=this["Material"+i];
Material.interactive=true;
Material.allowAutoResize=true;
Material.doubleSided=false;
var plane:DisplayObject3D =new Plane(Material,432,259,8,8);
viewportReflection.filters = [new BlurFilter(3,3,3)];
viewportReflection.alpha=.2;
//添加模糊滤镜后看起来会更逼真
trace(Material.movie)
viewport.interactive=true;
plane.x = xrr[i];
plane.rotationY = arr[i];
if (i==2) {
plane.z=-50;
}
plane.id=i;
plane.name="plan"+i;
plane.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, overHander);
plane.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, outHander);
plane.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, pressHander);
carousel.addChild(plane);
//carousel相当于一个planeGroup,plane是多个的
}
btn.addEventListener(MouseEvent.CLICK,clickF)
camera.z=-420;
carousel.y=15;
scene.addChild(carousel);
}
private function clickF(e){
if(clickD){
getURL("index-nei.html","_blank")
}
}
private function overHander(e:InteractiveScene3DEvent):void {
viewport.buttonMode=true;
}
private function outHander(e:InteractiveScene3DEvent):void {
viewport.buttonMode=false;
}
private function preID(do3D) {
for (var i=0; i<5; i++) {
var tmp=i-len;
if (tmp<0) {
tmp=tmp+5;
}
var plane=carousel.getChildByName("plan"+i);
var tmpPlan=carousel.getChildByName("plan"+tmp);
tmpArr[i]=tmpPlan.id;
Tweener.addTween(plane,{rotationY:tmpPlan.rotationY,x:tmpPlan.x,z:tmpPlan.z,time:1,transition:"easeInOutQuint"});
Tweener.addTween(btn,{alpha:1,y:292,time:2,transition:"easeInOutQuint"});
}
checkout();
}
private function checkout() {
for (var i=0; i<5; i++) {
var plane=carousel.getChildByName("plan"+i);
plane.id=tmpArr[i];
}
}
private function nextID(do3D) {
for (var i=0; i<5; i++) {
var tmp=i-len;
if (tmp>4) {
tmp=tmp-5;
}
var plane=carousel.getChildByName("plan"+i);
var tmpPlan=carousel.getChildByName("plan"+tmp);
tmpArr[i]=tmpPlan.id;
Tweener.addTween(plane,{rotationY:tmpPlan.rotationY,x:tmpPlan.x,z:tmpPlan.z,time:1,transition:"easeInOutQuint"});
Tweener.addTween(btn,{alpha:1,y:292,time:2,transition:"easeInOutQuint"});
}
checkout();
}
private function pressHander(e:InteractiveScene3DEvent):void {
//01234
btn.alpha=0;
btn.y=310;
var plane:DisplayObject3D=e.target as DisplayObject3D;
len=plane.id-oldID;
if(plane.name=="plan2"){
clickD=true;
}else{
clickD=false;
}
if (len>0) {
preID(plane);
} else if (len<0) {
nextID(plane);
}else{
if(plane.id==2){
if(plane.name=="plan2"){
getURL("index-nei.html","_blank")
}
}
}
}
private function enterFrame(e:Event):void {
singleRender();
}
}
}
最新评论及回复