关于AS3问题 alternativa2.0项目运行没有显示任何东西

来源:互联网 发布:包装结构设计软件 编辑:程序博客网 时间:2024/05/29 16:47

相机 Stage3d 初始化了 并且创建了一个3d对象 BOX 加入到根对象中 再遍历全部子对象并上传到Context3d对象中 帧事件也添加了运行还是没有东西出现,(PS:渲染模式也设置了“direct”,幕布stage里相机LOGO有显示,调试时对象参数也正常),以下是我的代码:

package{import alternativa.engine3d.controllers.SimpleObjectController;import alternativa.engine3d.core.Camera3D;import alternativa.engine3d.core.Object3D;import alternativa.engine3d.core.Resource;import alternativa.engine3d.core.View;import alternativa.engine3d.materials.FillMaterial;import alternativa.engine3d.materials.StandardMaterial;import alternativa.engine3d.primitives.Box;import flash.display.Sprite;import flash.display.Stage3D;import flash.display.StageAlign;import flash.display.StageScaleMode;import flash.display3D.Context3DRenderMode;import flash.events.Event;import mx.core.Container;import mx.core.UIComponent;public class HelloBasic extends UIComponent{//舞台private var stage3D:Stage3D;//摄像机private var camera3D:Camera3D;//显示对象根结点private var rootContainer:Object3D;//摄像机控制器private var controller:SimpleObjectController;//3D显示对象private var box:Object3D;public function HelloBasic():void{this.addEventListener(Event.ADDED_TO_STAGE,onStageHandler);}private function onStageHandler(evt:Event):void{init();this.removeEventListener(Event.ADDED_TO_STAGE,onStageHandler);//(6)context3D预设定this.stage3D.addEventListener(Event.CONTEXT3D_CREATE,initContext3D);this.stage3D.requestContext3D();}private function init():void{//(1)舞台属性this.stage.frameRate=60;this.stage.scaleMode=StageScaleMode.NO_BORDER;this.stage.align=StageAlign.TOP_LEFT;//(5)初始化3D舞台this.stage3D=this.stage.stage3Ds[0];//(2)初始化根显示对象this.rootContainer=new Object3D();//(3)初始化摄像机this.camera3D=new Camera3D(1,10000);this.camera3D.x=0;this.camera3D.y=50;this.camera3D.z=-50;this.camera3D.view=new View(this.stage.stageWidth,this.stage.stageHeight,false,0xeeeeee,0.1,4);this.addChild(camera3D.diagram);//摄像机视图必须加到显示列表this.addChild(this.camera3D.view);//将摄像机添加到根结点this.rootContainer.addChild(this.camera3D);//(4)初始化摄像机控制器this.controller=new SimpleObjectController(stage,camera3D,100,1,0.1);controller.setObjectPosXYZ(0,0,50);controller.lookAtXYZ(0,0,0);//初始化一个方盒var box:Box=new Box();box.setMaterialToAllSurfaces(new FillMaterial(0x804080));rootContainer.addChild(box);}//(7)初始化Context3D事件private function initContext3D(event:Event):void {//加载资源for each(var resource:Resource in rootContainer.getResources(true)){resource.upload(stage3D.context3D);}//添加帧事件this.addEventListener(Event.ENTER_FRAME,enterFrameHandler);}private function enterFrameHandler(event:Event):void {camera3D.render(stage3D);//为了监听鼠标和键盘事件,实时更新控制器controller.update();}


阅读全文
0 0