所以我有2个或更多的动画骨架(所以有2个或更多的json文件)。我希望他们在10秒后的同一时间播放另一个动画。

问题是只有一个动画正在播放,而第二个动画则没有显示。

我这样做的方式如下:

<canvas id="animationCanvas" width="240" height="240"></canvas>
<script>
    var first = true,
        rendererFirst = new spine.SkeletonRenderer('http://someurl.com/images/'),
        spineAFirst = /* My JSON Code */,
        parsedFirst = JSON.parse(spineAFirst);

    rendererFirst.scale = 0.2;
    rendererFirst.load(spineAFirst);
    rendererFirst.state.data.defaultMix = 1.0;

    for (var i in parsedFirst.animations) {
        if (first) {
            first = false;
            rendererFirst.state.setAnimationByName(0, i, true);
        } else {
            rendererFirst.state.addAnimationByName(0, i, true, 10);
        }
    }

    rendererFirst.skeleton.x = 120;
    rendererFirst.skeleton.y = 120;
    rendererFirst.animate('animationCanvas');
</script>


而且,当然,我要进行两次(或更多次)。我也尝试了一个SkeletonRenderer,只是根据需要加载(设置或添加)动画多次,但没有成功。

最佳答案

似乎渲染器每次都在清洁画布时,实现此效果的更好方法似乎是为每个动画创建一个画布,并将渲染器绑定到每个动画。

07-24 16:54