纳金网

标题: [Flare3D] Flare3D中加载f3d文件的几种方式 [打印本页]

作者: yeu1233    时间: 2012-9-4 11:01
标题: [Flare3D] Flare3D中加载f3d文件的几种方式
在Flare3D中加载f3d文件有几种不同的方式满足不同的需求



比较常用的是通过f3d的url地址进行加载。



    scene.addChildFromFile("eko.f3d");



同时我们还能利用Flare3DLoader类来加载



    var loader:Flare3DLoader=new Flare3DLoader("eko.f3d");

     
    loader.load();

     
    scene.addChild(loader);



下面是使用嵌入(Embed)资源的方式来进行加载

首先这样



    [Embed(source="eko.f3d",mimeType="application/octet-stream")]

     
    private var Role:Class;



接下来同样是使用scene和Flare3DLoader来进行加载,如下



    scene.addChildFromFile(new Role);






    var loader:Flare3DLoader=new Flare3DLoader(new Role);

     
    loader.load();

     
    scene.addChild(loader);



通过scene加载f3d文件会统一触发一次Scene3D.COMPLETE_EVENT事件,表示scene已经构建好了。之后只有加载新的f3d文件才会再次触发Scene3D.COMPLETE_EVENT。如果是加载之前加载过得文件则不会触发Scene3D.COMPLETE_EVENT。这个倒是挺智能的。



而使用Flare3DLoader来加载f3d文件,并加入到scene中。始终都不会触发Scene3D.COMPLETE_EVENT事件。无论这个f3d文件之前是否加载过。



识别Flare3DLoader加载完成的方法



方法1:




    loader = new Flare3DLoader("eko.f3d");

     
    loader.load();

     
    loader.addEventListener(Event.COMPLETE, auto_loaded);



方法2:




    loader = new Flare3DLoader("eko.f3d");

     
    loader.load();

     
    scene.addEventListener( Scene3D.UPDATE_EVENT, updateEvent );

     
    private function updateEvent(e:Event):void

     
    {

     
         if (loader.loaded == 1) Do Something()

     
    }



作者: 艾朵儿    时间: 2012-10-26 10:19

作者: 她。    时间: 2012-11-2 09:20

作者: 89684598    时间: 2014-2-22 18:20
Thanks for sharing
作者: kikkik7000    时间: 2014-2-27 14:48
感谢分享




欢迎光临 纳金网 (http://wwww.narkii.com/club/) Powered by Discuz! X2.5