费了很大的力气才从googlecode上将pv3d 2.0给down下来。由于也是刚学pv3d,也看不出和以前的版本有什么改动,就从pv3d 2.0开始学吧。之前pv3d的程序主要的顺序是:创建容器-->创建舞台-->创建摄像头-->创建3D对象-->然后显示,现在好了,封装了一个类BasicView,里面直接将舞台,摄像头创建好了,看它的构造函数
public function BasicView(viewportWidth:Number=640, viewportHeight:Number = 320, scaleToStage:Boolean=true, interactive:Boolean = false, cameraType:String = "CAMERA3D")
{
super();
scene = new Scene3D();
viewport = new Viewport3D(viewportWidth, viewportHeight, scaleToStage, interactive);
addChild(viewport);
renderer = new BasicRenderEngine();
switch(cameraType){
case Camera3D.TYPE:
_camera = new Camera3D();
break;
case FreeCamera3D.TYPE:
_camera = new FreeCamera3D();
break;
case FrustumCamera3D.TYPE:
_camera = new FrustumCamera3D(viewport);
break;
default:
_camera = new Camera3D();
break;
}
}
可见,只要将camera的类型传进去,BasicView便会创建相应类型的摄像头。还有个ViewPort的东东,不知道怎么理解,先不管,用了再说。
先做个立方的例子,六面分别是不同的图片,再让立方旋转,就这么简单。
代码直接也很简单:
package {
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.Event;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.primitives.Cube;
import org.papervision3d.view.BasicView;
[SWF(width="250", height="250", backgroundColor="0xFFFFFF",frameRate='40')]
public class Main extends Sprite
{
[Embed(source="pic1.jpg")]
public var Pic1:Class;
[Embed(source="pic2.jpg")]
public var Pic2:Class;
[Embed(source="pic3.jpg")]
public var Pic3:Class;
[Embed(source="pic4.jpg")]
public var Pic4:Class;
[Embed(source="pic5.jpg")]
public var Pic5:Class;
[Embed(source="pic6.jpg")]
public var Pic6:Class;
private var basicView:BasicView;
private var cube:Cube;
private var materialList:MaterialsList;
public function Main()
{
init();
}
private function init():void
{
basicView = new BasicView(250,250,false,true);
addChild( basicView);
basicView.camera.zoom = 10;
materialList = new MaterialsList();
var pic1Bitmap:Bitmap = new Pic1() as Bitmap;
var pic1Material:BitmapMaterial = new BitmapMaterial( pic1Bitmap.bitmapData ,true );
pic1Material.interactive = true;
materialList.addMaterial( pic1Material,"top" );
var pic2Bitmap:Bitmap = new Pic2() as Bitmap;
var pic2Material:BitmapMaterial = new BitmapMaterial( pic2Bitmap.bitmapData ,true );
pic2Material.interactive = true;
materialList.addMaterial( pic2Material,"bottom" );
var pic3Bitmap:Bitmap = new Pic3() as Bitmap;
var pic3Material:BitmapMaterial = new BitmapMaterial( pic3Bitmap.bitmapData ,true );
pic3Material.interactive = true;
materialList.addMaterial( pic3Material,"left" );
var pic4Bitmap:Bitmap = new Pic4() as Bitmap;
var pic4Material:BitmapMaterial = new BitmapMaterial( pic4Bitmap.bitmapData ,true );
pic4Material.interactive = true;
materialList.addMaterial( pic4Material ,"right");
var pic5Bitmap:Bitmap = new Pic5() as Bitmap;
var pic5Material:BitmapMaterial = new BitmapMaterial( pic5Bitmap.bitmapData ,true );
pic5Material.interactive = true;
materialList.addMaterial( pic5Material ,"front");
var pic6Bitmap:Bitmap = new Pic6() as Bitmap;
var pic6Material:BitmapMaterial = new BitmapMaterial( pic6Bitmap.bitmapData ,true );
pic6Material.interactive = true;
materialList.addMaterial( pic6Material ,"back");
cube = new Cube (materialList , 140,140,140,2,2,2);
basicView.scene.addChild(cube);
addEventListener( Event.ENTER_FRAME , onEnterFrame);
}
internal function onEnterFrame(event:Event):void{
cube.rotationX += 3;
cube.rotationY += 3;
basicView.singleRender();
}
}
}
可见程序的步骤还是一样的,只是帮我们做了一下封装,用起来更方便了.
分享到:
相关推荐
Papervision3D提供了丰富的摄像机控制功能,包括平移、旋转和缩放,以实现第一人称视角或自由视角的交互。 6. **PV3D+Flex集成**:Flex是一个用于构建富互联网应用程序(RIA)的开发框架,与Papervision3D结合使用...
综上所述,《Papervision3D.Essentials》不仅是一本入门指南,更是一部详尽的技术手册,旨在帮助读者克服在使用Papervision3D过程中可能遇到的各种挑战,并通过实际案例加深对这项技术的理解和掌握。无论是对于初学...
PaperVision3D,作为一款基于Adobe Flash的3D图形库,是Flash AS3.0时代的一个重要里程碑,它为Web开发者提供了一个在二维舞台上构建三维场景的强大工具。PaperVision3D的核心价值在于,它将复杂的3D图形渲染技术...
Papervision3D是基于Adobe Flash和Flex平台的一个强大的三维(3D)图形渲染引擎。这个技术允许开发者在Web浏览器中创建出丰富的、交互式的3D场景,为用户提供了一种全新的网页体验。该框架利用ActionScript 3.0语言...
Papervision3D是一个基于ActionScript的开源项目,目的在于实现更加炫丽美观、功能强大的Flash 3D Web应用程序。尤其是去年ActionScript 3发布了之后,ActionScript的效率得到了大幅度提升,基于此的Papervision3D...
《初识Papervision3D》这篇博文和其中的POne.swf文件可能包含一个简单的3D示例,读者可以通过查看和运行这个文件更好地理解Papervision3D的工作原理。在学习过程中,结合源码分析和实际操作是掌握技术的关键步骤。 ...
- **渲染引擎**:Papervision3D是一个强大的3D渲染引擎,它利用ActionScript 3.0进行编程,为Flash Player提供了实时3D渲染能力。 - **核心组件**:包括Camera、Scene、Scene3D、Loader、Material等,它们共同构成...
3. PV3D库:`papervision3d_868.swc`是PV3D的一个版本,其中包含了所有必要的3D组件和类。这个库文件可以直接在Flex项目中引用,为3D应用开发提供基础。 三、PV3D基本结构 1. Stage3D:PV3D利用Flash Player 11...
Papervision3D_2.0.869.swc
1. **Building the Scene**: 通过创建对象、设置材质和光源,然后将它们添加到场景中,构建一个完整的3D场景。例如,`scene.addChild(camera); scene.addChild(light); scene.addChild(object);` 2. **Rendering**:...
Papervision3D是一个基于Adobe Flash平台的开源3D库,它允许开发者在网页上创建复杂的3D场景。而Box2DFlash则是一个将著名的2D物理引擎Box2D移植到Flash平台的版本,为游戏和交互应用提供了真实的物理模拟。当这两个...
Papervision3D(PV3D)是一款强大的开源3D图形引擎,专为Adobe Flash平台设计,支持ActionScript 3.0(AS3),是Flash AS3中实现3D效果的重要工具。在本文中,我们将深入探讨PV3D的API文档、学习笔记以及全景案例,...
《Papervision3D+Essentials》是一本专注于Papervision3D技术的权威指南,对于深入了解和掌握这个强大的3D图形库至关重要。Papervision3D(简称PV3D)是Flash平台上最早的3D渲染引擎之一,它为开发者提供了在Web...
《Papervision3D Essentials》是一本深入探讨Papervision3D(PV3D)的权威指南,中文版的出现使得更多中国开发者能够掌握这个强大的三维渲染库。Papervision3D是一个用于Adobe Flex和Flash平台的开源项目,它为Web...
《Papervision3D精髓》一书是针对初学者及有一定基础的开发者设计的,旨在教授如何使用Papervision3D(PV3D)创建具有惊人效果和强大动画功能的交互式3D应用程序。PV3D是一种开源的3D引擎,用于Adobe Flash平台,它...
Papervision3D_2.1.932.swcPapervision3D_2.1.932.swcPapervision3D_2.1.932.swc