PV3D | 3面回転スクリーン
PV3D | 3面回転スクリーン
あとでエフェクトと鏡面反射をつけてみよう
*追記 ReflectionView使ったばーじょん↓
http://wonderfl.net/code/351db3b9735ea827a53f0f6b4c6f566834efc70f
♥0 |
Line 102 |
Modified 2009-10-02 20:27:39 |
MIT License
archived:2017-03-20 12:28:42
ActionScript3 source code
/**
* Copyright Nyarineko ( http://wonderfl.net/user/Nyarineko )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/loiS
*/
// PV3D | 3面回転スクリーン
// あとでエフェクトと鏡面反射をつけてみよう
// *追記 ReflectionView使ったばーじょん↓
// http://wonderfl.net/code/351db3b9735ea827a53f0f6b4c6f566834efc70f
package {
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.BlendMode;
import flash.filters.BlurFilter;
import flash.events.Event;
import flash.events.MouseEvent;
import org.papervision3d.view.*;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.materials.*;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.core.effects.view.ReflectionView;
import org.papervision3d.objects.*;
import caurina.transitions.*;
[SWF(width = "465", height = "465", backgroundColor = "0", fps = "30")]
public class Main extends Sprite {
private var viewport:Viewport3D;
private var camera:Camera3D;
private var scene:Scene3D = new Scene3D();
private var renderer:BasicRenderEngine;
private var plane:Plane;
private var animateFlg:Boolean = true;
private var rootNode : DisplayObject3D;
public function Main() {
viewport = new Viewport3D(465,465,true,true);
viewport.opaqueBackground = 0x000000;
addChild(viewport);
rootNode = scene.addChild( new DisplayObject3D( "rootNode" ) );
renderer = new BasicRenderEngine();
camera = new Camera3D();
camera.x = 0;
camera.y = 0;
camera.z = -500;
addEventListener(Event.ENTER_FRAME,handler);
var mc1:MovieClip = new MovieClip();
var mct:TextField = new TextField();
var fmt:TextFormat = new TextFormat();
fmt.size = 20;
fmt.font = "A-OTF 新ゴ Pro M";
mct.defaultTextFormat = fmt;
mct.text = "please click here!";
mct.textColor =0xffffff;
mct.x = 50;
mct.width=200;
mct.y = 140;
var bmp1:Bitmap = new Bitmap(new BitmapData(300, 300, false, 0x0000AA));
mc1.addChild(bmp1);
mc1.addChild(mct);
var mc2:MovieClip = new MovieClip();
var bmp2:Bitmap = new Bitmap(new BitmapData(300, 300, false, 0x0066AA));
mc2.addChild(bmp2);
var mc3:MovieClip = new MovieClip();
var bmp3:Bitmap = new Bitmap(new BitmapData(300, 300, false, 0x6600AA));
mc3.addChild(bmp3);
var material1:MovieMaterial = new MovieMaterial(mc1,true,true );
var material2:MovieMaterial = new MovieMaterial(mc2,true,true );
var material3:MovieMaterial = new MovieMaterial(mc3,true,true );
var myPlane1:Plane = new Plane(material1,300,300,12,12);
var myPlane2:Plane = new Plane(material2,300,300,12,12);
var myPlane3:Plane = new Plane(material3,300,300,12,12);
for each(var i:* in myPlane1.geometry.vertices){
i.z-=86;
}
for each(i in myPlane2.geometry.vertices){
i.z-=86;
}
for each(i in myPlane3.geometry.vertices){
i.z-=86;
}
myPlane2.rotationY+=120;
myPlane3.rotationY+=240;
rootNode.addChild( myPlane1 );
rootNode.addChild( myPlane2 );
rootNode.addChild( myPlane3 );
rootNode.rotationY+=20;
rootNode.x+=100;
addEventListener(MouseEvent.MOUSE_DOWN,evMouseDown);
}
public function handler(event:Event):void
{
renderer.renderScene( scene , camera, viewport );
}
public function evMouseDown(event:MouseEvent):void{
if(animateFlg){
animateFlg = false;
Tweener.addTween(rootNode,{rotationY:rootNode.rotationY+120,time:2,
transition:"easeOutElastic",onComplete:setAnimateFlag});
}
}
public function setAnimateFlag():void
{
animateFlg = true;
}
}
}