- 最后登录
- 2013-9-29
- 注册时间
- 2012-8-20
- 阅读权限
- 90
- 积分
- 6371
- 纳金币
- 6372
- 精华
- 0
|
在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()
}
|
|