作者dreamboxer (陌生人)
看板Flash
标题[心得] Paperversion3D AS3版:Create Cube
时间Tue Nov 20 16:32:51 2007
研究Paperversion3D(以下简称PV3)老半天,终於画出个方块(Cube)来...
我之前遇到的问题主要是现在的PV3 Cube必须以MaterialList各别设定Cube的六个面。
PV3有个讨论群组很好用...这是Link:
http://www.nabble.com/Papervision3D-f22855.html
写个心得回馈一下... 直接看Flex Code+注解说明,要写在叫myCube.as的档案中。
package
{
//把需要的Package import进来
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.Event;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.*;
import org.papervision3d.objects.*;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.core.proto.MaterialObject3D;
[SWF(backgroundColor="#000000", frameRate="60", width="400", height="400")]
public class myCube extends Sprite
{
private var container:Sprite;
private var scene:Scene3D;
private var camera:Camera3D;
public function myCube()
{
//自订一个叫init3D的函数把物件都初始化
init3D();
//用自己写的loop3D不停Render出画面
addEventListener(Event.ENTER_FRAME, loop3D);
}
private function init3D():void
{
container = new Sprite();
addChild(container);
container.x = 200;
container.y = 200;
scene = new Scene3D(container);
camera = new Camera3D();
camera.z = -1500;
camera.zoom = 10;
camera.focus = 100;
//先设定Cube六个面的材质:MaterialsList
var ml:MaterialsList = new MaterialsList(
{
//front, back, right, left, top, bottom 和 all 是关键字不可变
//如果是要设定单一颜色就new ColorMaterial()
//如果是要设定一个外部颜色就new BitmapFileMaterial()
//如果是要载入Fla Library中的物件用new MovieAssetMaterial()
//其他可以设定到MaterialsList中的东东请参考这里
//
http://tinyurl.com/34djux
front: new BitmapFileMaterial( "logo.gif" ), //注意这里是豆号(,)
back: new ColorMaterial(0xFF0000, 1), //不是分号(;)
right: new BitmapFileMaterial( "logo.gif" ),
left: new ColorMaterial(0x333333, 1),
top: new BitmapFileMaterial( logo.gif" ),
bottom: new MovieAssetMaterial( "Bottom", true )
} );
//设定一个创造出一个Cube来
var myCube:Cube =
new Cube( ml, 100, 100, 100, 1, 1, 1, Cube.ALL, Cube.TOP );
//加到场景中
scene.addChild( myCube, "Cube_1" );
}
private function loop3D(event:Event):void
{
var myCube:DisplayObject3D = scene.getChildByName("Cube_1");
//依心情旋转这个Cube比较有3D的感觉...一_一|
if(myCube!=null)
{
myCube.rotationX++;
}
scene.renderCamera(camera);
}
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 编辑: dreamboxer 来自: 211.20.177.117 (11/20 16:35)