首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个collada场景

多个collada场景
EN

Stack Overflow用户
提问于 2012-08-05 08:40:56
回答 1查看 623关注 0票数 1

我有两个collada文件(两个不同的场景:"01.dae“和"02.dae")。我想首先显示01.dae,在动画完成后,我想在相同的画布上加载和显示02.dae。(我试图修改"webgl_loader_collada_keyframe.html“来实现这一点,但到目前为止还没有结果。)

我怎么能处理多个科拉达动画场景?一个源代码或任何提示或窍门将不胜感激!

谢谢你的回答。我修改了我的代码,基于你的科,但不幸的是,它不起作用。你能看一下我的密码吗?

这是我的代码:

代码语言:javascript
复制
    loader.load( 'pump.dae', function ( collada ) {


        model = collada.scene;
        animations = collada.animations;
        kfAnimationsLength = animations.length;
        model.scale.x = model.scale.y = model.scale.z = 0.125; // 1/8 scale, modeled in cm

        init();
        start();
        animate( lastTimestamp );
        setTimeout(loadSecond,3000);                
    } );


    function loadSecond()
    {           
    loader2.load( 'pump2.dae', function ( collada2 ) 
    {

        scene.remove( model );              
        model2 = collada2.scene;
        animations2 = collada2.animations;
        kfAnimationsLength2 = animations2.length;
        model2.scale.x = model2.scale.y = model2.scale.z = 0.125; // 1/8 scale, modeled in cm

        init2();
        start2();
        animate2( lastTimestamp2 );

        //alert("second loaded");

    } );
    }

..。

如您所见,我将您的代码扩展为

scene.remove(模型);

移除前一幕。

第一个场景显示,然后正确地断开,但是新的场景不加载。你有科吗?为什么?

(注:我不知道我的第一幕真实是多长时间。)

EN

回答 1

Stack Overflow用户

发布于 2012-08-07 19:49:28

如果您知道动画的长度,可以使用setTimeout加载第二个模型。

代码语言:javascript
复制
var loader = new THREE.ColladaLoader();
loader.options.convertUpAxis = true;
loader.load('PATH TO MODEL', function colladaReady( collada){
    dae = collada.scene;
    skin = collada.skins[ 0 ];              
    dae.scale.x = dae.scale.y = dae.scale.z = 1;
    dae.updateMatrix();
    scene.add(dae);    
    render(); 
    setTimeout(loadSecond,3000);
});

function loadSecond(){
    var loader = new THREE.ColladaLoader();
    loader.options.convertUpAxis = true;
    loader.load('PATH TO MODEL', function colladaReady( collada){
        ///repeat model loading logic
}

其中,setTimeout中的时间间隔等于动画的长度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11815060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档