flash 3d flash3d 研究所 pv3d 共享资源  | 经典范例  | 视频教程  | 友情链接  | 联系我们
登陆 | 注册  flash 3d 研究所
讨论区





最近更新:
● 无语瓶阁下在教程区里 回复“《超简易papervision3D基础 ...”(18:09:44)
● payday loan阁下在教程区里 回复“《pv3d, sandy, away3d...”(05:56:23)
● bad credit payday loan阁下在教程区里 回复“《超简易papervision3D基础 ...”(05:56:13)
浏览主题:Pv教程关于导入外部collada的问题

Pv教程关于导入外部collada的问题
墨痕 (2010-02-22 22:40:45)

我按照教程做了遍,代码进行了极小的改动,但是调试的时候报错。
 
[SWF] D:\Saviour\Documents\Pvcollada\bin-debug\Pvcollada.swf - 251,485 bytes after decompression
INFO: BitmapFileMaterial: Loading bitmap from map.jpg
TypeError: Error #1009: 无法访问空对象引用的属性或方法。
 at Pvcollada()[D:\Saviour\Documents\Pvcollada\src\Pvcollada.as:38]
 
这是我的代码
 
package {
 import flash.display.Sprite;
 import flash.events.Event;
 
 import org.papervision3d.cameras.Camera3D;
 import org.papervision3d.events.FileLoadEvent;
 import org.papervision3d.materials.BitmapFileMaterial;
 import org.papervision3d.materials.utils.MaterialsList;
 import org.papervision3d.objects.parsers.Collada;
 import org.papervision3d.objects.primitives.Plane;
 import org.papervision3d.render.BasicRenderEngine;
 import org.papervision3d.scenes.Scene3D;
 import org.papervision3d.view.Viewport3D;
 public class Pvcollada extends Sprite
 {
  private var scene:Scene3D;
  private var camera:Camera3D;
  private var viewport:Viewport3D;
  private var renderer:BasicRenderEngine;
  
  private var plane:Plane;
  private var car:Collada;
  
  public function Pvcollada():void
  {
   camera = new Camera3D(2,200);
   viewport = new Viewport3D(400,400);
   camera.y = 1000;
   camera.moveBackward(2000);
   
   addChild(viewport);
   
   plane = new Plane(new BitmapFileMaterial("map.jpg"),10000,10000,8,8);
   plane.pitch(90);
   scene.addChild(plane);//大概是在这附近出的问题
   
   var car:Collada = new Collada("car.XML",new MaterialsList({all:new BitmapFileMaterial("map_car.jpg")}));
   car.addEventListener(FileLoadEvent.LOAD_COMPLETE,onloaded);
   
   addEventListener(Event.ENTER_FRAME,process);
   
  }
  private function onloaded(evt:FileLoadEvent):void {
   car.moveLeft(2000);
   car.moveUp(50);
   scene.addChild(car);
  }
  private function process(etv:Event):void{
   if (car) {
    car.rotationY+=4;
    car.moveForward(120);
    camera.lookAt(car);
   }
   renderer.renderScene(scene,camera,viewport);
  }
 }
}



flash 3d 研究所 DDM君
(2010-02-23 00:10:52)
是按照我们的这篇教程吗?
http://www.flab3d.com/tutor-tag-free-subtag-view-top-t3.html


flash 3d 研究所 墨痕
(2010-02-23 10:30:04)
是啊,只是不是在Flash cs4上运行的,是在Flex 3上面~调试到
scene.addChild(plane);
的时候就报错了~~

flash 3d 研究所 墨痕
(2010-02-23 10:49:32)
对了,我用的不是PV3D傻瓜包,是官网上下的版本,创建AS工程后直接加载了PV3D的SWC文件~

flash 3d 研究所 DDM君
(2010-02-23 12:54:09)
啊,这样啊,换成傻瓜包就不会报错了。傻瓜包前短时间才更新了的,呵呵。

http://www.flab3d.com/tutor-tag-upload.html


flash 3d 研究所 墨痕
(2010-02-23 13:56:19)
嗯,之前我是不知道如何把傻瓜包导入到Flex,下载的傻瓜包里面没有.project文件~所以去官网下了……
再请问一下,最新的傻瓜包应该怎么导入Flex啊?

flash 3d 研究所 DDM君
(2010-02-23 15:13:20)
不用导入,就放在和你开发包同一个级别就是了。
和我们的第一篇教程的几乎一摸一样呢,呵呵^_^

http://www.flab3d.com/tutor-tag-free-subtag-view-top-t1.html


flash 3d 研究所 墨痕
(2010-02-23 16:07:53)
这样啊,我以为要建立一个lib 工程再一个一个把as文件填进去呢

flash 3d 研究所 DDM君
(2010-02-23 18:49:36)
呵呵,怎么会。 您也想得太复杂了, 简单就是金。

评论人:
邮   箱: (填入邮箱,博客地址均可)

内   容: (广告和垃圾内容可能会被删除,望理解)
链接地址

验证码:(为防止机器人骚扰,请麻烦输入验证码^_^)
  

(目前需登陆方可发表)


不想添加了