我在精灵动画方面遇到了一些问题。这是我第一次尝试使用它们而且它们不起作用。
代码非常简短: https://gist.github.com/xxZap/7642660
错误是:
未捕获错误:动画帧不存在:null。 SpriteView.js:191
获取http://xxx.x.x.x/simulate/pokemonAnimation/native-ios/resources/images/player2/pokemon/venusaur 404(未找到)Image.js:143
这是我的路径屏幕: http://tinyurl.com/npq39jb
答案 0 :(得分:3)
精灵视图中图像的典型命名约定是:
spriteName-animationName-frameNumber.png
然后,在初始化精灵时,您需要将defaultAnimation
设置为默认动画。
在您的情况下,目前您的“动画名称”将是“框架”。我猜这不是故意的,但如果你想简单地看到这项工作而不必重命名你的形象试试这个:
GC.app.venusaur.activeSprite = new SpriteView({
superview: GC.app.venusaur.view,
x: 0,
y: 0,
autosize: true,
image: 'resources/images/player2/pokemon/venusaur',
opacity: 1,
defaultAnimation: 'frame'
});
请注意,我已将此添加到您的代码中:
defaultAnimation: 'frame'
您可能想要调用“框架”以外的其他内容。
此外,我看到您在单击时将动画插入静态ImageView。如果设置默认图像,可以使用自从精灵视图一次完成此操作。
你可能有一个这样的帧精灵(而不是ImageView):
venusaur-idle-01.png
你的动画代码如下:
venusaur-walk-01.png
venusaur-walk-02.png
venusaur-walk-03.png
etc.
然后你可以像这样初始化你的精灵:
var mySprite = new SpriteView({
superview: GC.app.venusaur.view,
x: 0,
y: 0,
autosize: true,
image: 'resources/images/player2/pokemon/venusaur',
opacity: 1,
defaultAnimation: 'idle'
});
然后你可以像这样(点击或随时)动画它:
mySprite.startAnimation('walk');
要循环动画,请执行以下操作:
mySprite.startAnimation('walk');
要停止循环,请执行以下操作:
mySprite.resetAnimation();
这里的文档非常有用: http://docs.gameclosure.com/api/ui-spriteview.html