Nov 18

PV3D又更新了,遇到了些问题(transformUV() material.bitmap not found)

Papervision3D
今天用 svn 更新了PV3D类库,运行了一下前段时间做的源文件,发现了问题,总是报错
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实例是安全的做法
}


但是遇到大量外部链接资源的时候,虽然可以逐个监听,但是我觉得那样的做法不好。
我认为应该先创建载体,让观众先能看到东西,然后再加载材质。这样是最好的做法。
程序的细节都体现在这一方面。


tags:ActionScript3.0  PV3D  

to "PV3D又更新了,遇到了些问题(transformUV() material.bitmap not found)"

  1. fish Says:

    呵呵,今天我页遇到了,google找到这里,谢谢你的文章。

    还有个问题,Plane类的机制是不是修改了?

    pv3d 1.5中 是可以通过 plane.container 得到一个sprite,从而在Sprite上绑定事件。

    但是在beta2中,plane.container 得到的是null,不知道是什么原因。Sleep

  2. emment Says:

    plane.container 这个属性还是有的啊,返回的是 viewPortLayer
    应该是可以绑定事件的吧
    还有个办法是 用viewPort.getChildLayer(do3d) 返回这个sprite

    另外用他自己的点击事件也可以啊InteractiveScene3DEvent.OBJECT_CLICK

  3. fish Says:

    呵呵,还不太熟悉,才开始看PV3D。谢谢。

  4. 好雞 Says:

    終於找到解答了 困惑我好久了 真謝謝了

  5. 捻花成佛 Says:

    谢谢楼主,我也是google找过来的,解答了我的困惑

  6. atzhw Says:

    thanks

  7. cc Says:

    谢谢,我也读懂了

Leave a Reply