Nov 18
PV3D又更新了,遇到了些问题(transformUV() material.bitmap not found)
Papervision3D
今天用 svn 更新了PV3D类库,运行了一下前段时间做的源文件,发现了问题,总是报错
transformUV() material.bitmap not found!
我看了看,发现问题是出在了 BitmapFileMaterial()上
我查了不少英文资料,老外们也遇到了更新的麻烦,但是中文资料就一个也未搜着。
记得在写代码的过程中,我注意到了加载外部资源的load问题,操作bitmap是个很现实的网络问题,需要考虑到load先后顺序
所以这次我想毛病也大致出现在这儿,于是我给材质监听了加载事件
但是遇到大量外部链接资源的时候,虽然可以逐个监听,但是我觉得那样的做法不好。
我认为应该先创建载体,让观众先能看到东西,然后再加载材质。这样是最好的做法。
程序的细节都体现在这一方面。
transformUV() material.bitmap not found!
我看了看,发现问题是出在了 BitmapFileMaterial()上
我查了不少英文资料,老外们也遇到了更新的麻烦,但是中文资料就一个也未搜着。
记得在写代码的过程中,我注意到了加载外部资源的load问题,操作bitmap是个很现实的网络问题,需要考虑到load先后顺序
所以这次我想毛病也大致出现在这儿,于是我给材质监听了加载事件
var _BitmapFileMaterial:BitmapFileMaterial = new BitmapFileMaterial("rust.jpg");
_BitmapFileMaterial.addEventListener(FileLoadEvent.LOAD_COMPLETE, loadedHandler);
function loadedHandler(e:FileLoadEvent):void
{
在这里调用你的_BitmapFileMaterial实例是安全的做法
}
但是遇到大量外部链接资源的时候,虽然可以逐个监听,但是我觉得那样的做法不好。
我认为应该先创建载体,让观众先能看到东西,然后再加载材质。这样是最好的做法。
程序的细节都体现在这一方面。
2008-12-9 18:46:30 回复该留言
呵呵,今天我页遇到了,google找到这里,谢谢你的文章。

还有个问题,Plane类的机制是不是修改了?
pv3d 1.5中 是可以通过 plane.container 得到一个sprite,从而在Sprite上绑定事件。
但是在beta2中,plane.container 得到的是null,不知道是什么原因。
2008-12-9 20:15:26 回复该留言
plane.container 这个属性还是有的啊,返回的是 viewPortLayer
应该是可以绑定事件的吧
还有个办法是 用viewPort.getChildLayer(do3d) 返回这个sprite
另外用他自己的点击事件也可以啊InteractiveScene3DEvent.OBJECT_CLICK
2008-12-9 23:49:07 回复该留言
呵呵,还不太熟悉,才开始看PV3D。谢谢。
2009-1-21 12:33:02 回复该留言
終於找到解答了 困惑我好久了 真謝謝了
2009-2-28 20:43:10 回复该留言
谢谢楼主,我也是google找过来的,解答了我的困惑
2009-9-20 11:42:47 回复该留言
thanks
2009-10-10 14:37:22 回复该留言
谢谢,我也读懂了