2

我对精灵动画有一些问题。这是我第一次尝试使用它们但它们不起作用。

代码真的很短: https ://gist.github.com/xxZap/7642660

错误是:

未捕获的错误:动画帧不存在:null。SpriteView.js:191

获取http://xxx.xxx/simulate/pokemonAnimation/native-ios/resources/images/player2/pokemon/venusaur 404(未找到)Image.js:143

这是我的路径屏幕: http ://tinyurl.com/npq39jb

4

1 回答 1

3

sprite 视图中图像的典型命名约定是这样的:

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 时将其插入动画。如果您设置默认图像,您可以使用自 sprite 视图一次完成所有操作。

你可能有一个像这样的单帧精灵(而不是 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

于 2014-01-14T23:34:29.567 回答