脊椎多个动画

时间:2015-05-29 09:34:55

标签: javascript animation canvas spine.js

所以我有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,只是根据需要加载(和设置或添加)动画,并且它没有工作。

1 个答案:

答案 0 :(得分:0)

似乎渲染器每次调用时都会清理画布,更好的方法是为每个动画创建一个画布,并将渲染器绑定到每个动画。