本文介绍怎么在flex
项目中使用Pv3d
。
需要你对flex有一定的了解。
方法1 直接在mxml文件中加入Pv3D组件
1。下载pv3组件,(Papervision3d
最新源代码和swc库文件:http://code.google.com/p/papervision3d
/
)
2。把Papervision3D_2.0.883.swc和header.swc加入工程。
3。源程序如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
width="640"
height="480"
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
applicationComplete="applicationComplete()">
<mx:Script>
<![CDATA[
import org.papervision3d.objects.primitives.Cube;
import org.papervision3d.view.BasicView;
import org.papervision3d.lights.PointLight3D;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.materials.shaders.PhongShader;
import org.papervision3d.materials.shaders.ShadedMaterial;
import org.papervision3d.materials.shaders.Shader;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.core.utils.Mouse3D;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.view.layer.ViewportLayer;
import org.papervision3d.objects.DisplayObject3D;
private var myMouse3D:Mouse3D;
[Embed(source="../assets/1.jpg")]
private var frontAsset:Class;
[Embed(source="../assets/2.jpg")]
private var backAsset:Class;
[Embed(source="../assets/4.jpg")]
private var bottomAsset:Class;
[Embed(source="../assets/5.jpg")]
private var leftAsset:Class;
[@Embed(source='../assets/6.jpg')]
private var rightAsset:Class;
[Embed(source="../assets/3.jpg")]
private var topAsset:Class;
private var light:PointLight3D;
private var cube:MyCube;
private var basicView:BasicView = new BasicView();
private var materialsList:MaterialsList = new MaterialsList();
private function applicationComplete():void
{
materialsList.addMaterial(createShadedMaterial( new frontAsset(),true ), "front");
materialsList.addMaterial(createShadedMaterial( new backAsset() ), "back");
materialsList.addMaterial(createShadedMaterial( new bottomAsset() ), "bottom");
materialsList.addMaterial(createShadedMaterial( new leftAsset() ), "left");
materialsList.addMaterial(createShadedMaterial( new rightAsset() ), "right");
materialsList.addMaterial(createShadedMaterial( new topAsset() ), "top");
//定义立方体
cube = new MyCube(materialsList, 500, 500, 500, 5, 5, 5);
basicView.scene.addChild(cube);
Mouse3D.enabled = true;
basicView.viewport.interactive=true;
myMouse3D =this.basicView.viewport.interactiveSceneManager.mouse3D;
this.stage.addEventListener(MouseEvent.MOUSE_WHEEL,onWheels);
this.stage.addEventListener(MouseEvent.MOUSE_MOVE,onRenderTick);
basicView.startRendering();
pv3dPanel.rawChildren.addChild(basicView); //method #1
}
protected function onRenderTick(event:Event=null):void
{
cube.rotationY += (basicView.viewport.containerSprite.mouseX - cube.rotationY) * .1;
cube.rotationX += (basicView.viewport.containerSprite.mouseY - cube.rotationX) * .1;
basicView.renderer.renderScene(basicView.scene,basicView.camera, basicView.viewport);
}
private function createShadedMaterial(bitmap:Bitmap,precise:Boolean=false):ShadedMaterial
{
var bitmapMaterial:BitmapMaterial = new BitmapMaterial(bitmap.bitmapData,precise);
bitmapMaterial.smooth=true;
bitmapMaterial.interactive=true;
var shader:Shader = new PhongShader(light, 0xffffff, 0x333333, 10, bitmap.bitmapData, bitmap.bitmapData);
var shadedMaterial:ShadedMaterial = new ShadedMaterial(bitmapMaterial, shader);
return shadedMaterial;
}
//滚动鼠标中间轮,进行缩放
private function onWheels(event:MouseEvent):void
{
basicView.camera.moveForward(10*event.delta);
}
]]>
</mx:Script>
<mx:Panel id="pv3dPanel" width="100%" height="100%">
<mx:Label text="Label" id="testLabel"/>
</mx:Panel>
</mx:Application>
4。运行效果如下:
方法2:使用自定义控件,把3d窗体封装到自定义控件中, 在主应用中引入这个自定义控件。
根据方法1进行自定义,源程序略。
- 大小: 49.2 KB
分享到:
相关推荐
NULL 博文链接:https://baixiaozhe.iteye.com/blog/310921
Papervision3D 教程,pv3d,pv3d+Flex,pv3d中文帮助
Papervision3D is a powerful real-time 3D engine for Flash. Papervision3D can take externally created 3D models and render them as Flash content, without requiring end-users to download or install an ...
flashplayer 11 播放器 Papervision3D -帮助文档 Papervision3D_2[1].1.920.swc Papervision3D源码例子 帮助文档 需要解锁 ,源码例子拷贝到新建工程的AS 类中,修改名称和类名就可以运行了。
例子来自于Flash3D研究所,超简易Papervision3D基础 Main.cs 小球加外部贴图 Main2.cs 物体的各种移动 (讲解移动/旋转/放大物体的方法) Main3.cs导入外部模型 (讲解如何从外部软件导入collada文件) Main4.cs pv...
Papervision3D Essentials (PV3D)的中文版电子书及 书中实例源码下载 PV3D FLEX 三维渲染必备开源包
Papervision3D是一个基于ActionScript的开源项目,目的在于实现更加炫丽美观、功能强大的Flash 3D Web应用程序。尤其是去年ActionScript 3发布了之后,ActionScript的效率得到了大幅度提升,基于此的Papervision3D...
flex 3.0+Papervision3D 的项目代码事例 ,导入即可使用
《Papervision3D+Essentials》中文翻译
Papervision3D_2.0.869.swc
Papervision3D_2.1.932.swcPapervision3D_2.1.932.swcPapervision3D_2.1.932.swc
整理了Papervision3d的各方面资料,并且提供一个全景代码案例!
Papervision3D Essentials 中文版 翻译 第一章 docx格式
简明教程:如何在flex builder中使用P3D引擎
Papervision3D的api,这个帮助文档介绍各种包的使用,有利于快速学习3D
papervisiion3d sdk,开发环境myeclipse+flex+pv3d
希望对学习PV3D引擎的人提供点帮助。这是一pv3D的api电子书
使用papervision3d引擎做的7个实例源码
一个不错的Flash 3D引擎Papervisio3D,让你的flash从2D转化3D不再是难事.最新版本as3
《Papervision3D Essentials》是一本最新的Papervision3D入门书,对学习 Papervision3D很有帮助。包括pv3d库和源码以及书中代码