如何使用 PaperVision3d 库等待 DAE 模型加载到闪存上?

发布于 2024-10-29 17:24:00 字数 1253 浏览 4 评论 0原文

我需要在闪存上制作一个加载程序或一个简单的标签,上面写着“等等,模型正在加载”。这是我加载模型的脚本的一部分,但我不知道如何控制加载过程,感谢您的帮助。

代码:

    private function _onInit(e:Event):void {
        _earth = new DAE();
        _earth.load('model/hfarm.DAE');
        _earth.scale = 0.3;
        _earth.rotationX = 90;
        _markerNode.addChild(_earth);

        addEventListener(Event.ENTER_FRAME, _update);
    }

以及整个代码:

package {

    import flash.events.Event;
    import org.papervision3d.objects.parsers.DAE;

    [SWF(width=640, height=480, backgroundColor=0xCCCCCC, frameRate=30)]

    public class Earth extends PV3DARApp {

        private var _earth:DAE;

        public function Earth() {
            addEventListener(Event.INIT, _onInit);
            init('Data/camera_para.dat', 'Data/flarlogo.pat');
        }

        private function _onInit(e:Event):void {
            _earth = new DAE();
            _earth.load('model/hfarm.DAE');
            _earth.scale = 0.3;
            _earth.rotationX = 90;
            _markerNode.addChild(_earth);

            addEventListener(Event.ENTER_FRAME, _update);
        }

        private function _update(e:Event):void {
            //_earth.rotationZ -= 1
        }
    }

}

i need to make a loader on flash or a simple label who say "wait, the model is loading". This is the part of my script were i load the model, but i have no idea how to control the loading process, thanks for any help.

Code:

    private function _onInit(e:Event):void {
        _earth = new DAE();
        _earth.load('model/hfarm.DAE');
        _earth.scale = 0.3;
        _earth.rotationX = 90;
        _markerNode.addChild(_earth);

        addEventListener(Event.ENTER_FRAME, _update);
    }

And the whole code:

package {

    import flash.events.Event;
    import org.papervision3d.objects.parsers.DAE;

    [SWF(width=640, height=480, backgroundColor=0xCCCCCC, frameRate=30)]

    public class Earth extends PV3DARApp {

        private var _earth:DAE;

        public function Earth() {
            addEventListener(Event.INIT, _onInit);
            init('Data/camera_para.dat', 'Data/flarlogo.pat');
        }

        private function _onInit(e:Event):void {
            _earth = new DAE();
            _earth.load('model/hfarm.DAE');
            _earth.scale = 0.3;
            _earth.rotationX = 90;
            _markerNode.addChild(_earth);

            addEventListener(Event.ENTER_FRAME, _update);
        }

        private function _update(e:Event):void {
            //_earth.rotationZ -= 1
        }
    }

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不必在意 2024-11-05 17:24:00

这是可以做到的。粗略代码 ->

import org.papervision3d.events.FileLoadEvent;

public var SOMEDAE:DisplayObject3D;

public someFunction():void{

  SOMEDAE = new Collada('modelpath.dae',null)

  SOMEDAE.addEventListener(FileLoadEvent.LOAD_COMPLETE, function():void {           
    // post load stuff
  });

  scene.addChild(SOMEDAE);

}

This can be done. Rough Code ->

import org.papervision3d.events.FileLoadEvent;

public var SOMEDAE:DisplayObject3D;

public someFunction():void{

  SOMEDAE = new Collada('modelpath.dae',null)

  SOMEDAE.addEventListener(FileLoadEvent.LOAD_COMPLETE, function():void {           
    // post load stuff
  });

  scene.addChild(SOMEDAE);

}
一片旧的回忆 2024-11-05 17:24:00

如果 Papervision 有一个加载事件就好了,但我不这么认为。该模型有一个 .loaded 属性,因此它可能会检查每个帧以查看加载是否完成。

It would be nice if Papervision had a loading event but I don't believe so. The model has a .loaded property so perhaps it'll work to check that each frame to see if the load is complete.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文