如何在 cocos2d-js 中使用 getFrames?

how to use getFrames in cocos2d-js?

我是 cocos2d-js 的新手,我刚刚创建了这段代码:`

    var that = this;
    that._dice
    // add player
    // create sprite sheet
    cc.spriteFrameCache.addSpriteFrames(res.dice_plist);
    var spriteSheet = new cc.SpriteBatchNode(res.diceRed_png);
    that.addChild(spriteSheet, 2);


    // init runningAction
    var animFrames = [];
    for (var i = 1; i < 7; i++) {
        var str = "dieRed" + i + ".png";
        var frame = cc.spriteFrameCache.getSpriteFrame(str);
        animFrames.push(frame);
    }

    var animation = new cc.Animation(animFrames, 0.1);
    that.runningAction = new cc.Repeat.create(new cc.Animate(animation), Math.random()*10);


    var diceSprite = new cc.Sprite("#dieRed1.png");
    diceSprite.visible = true;
    console.log(this.getContentSize(diceSprite));
    diceSprite.runAction(this.runningAction);

    that._dice.push(diceSprite);
    var size = cc.winSize;
    spriteSheet.setPosition(size.width/6.5, size.height/1.20);
    spriteSheet.setAnchorPoint(0.5, 0.5);
    spriteSheet.addChild(diceSprite, 2);
    `  

并且我想使用 getFrames() 功能来 return ccanimation 帧数组。我只是想获取屏幕上正在动画显示的图片的信息,例如,如果 #dieRed1.png 正在动画显示或在屏幕上可见,它将显示值或 return 值的 1. 我曾尝试用谷歌搜索,但在那里找不到任何其他线索。如果有更好的方法,我也很乐意看到。无论如何,对英语感到抱歉,有点困惑如何安排单词。谢谢:)

好的,所以参考 the official docs

{Array} getFrames()

Returns the array of animation frames

这意味着你可以这样做:

var frames = animation.getFrames();

获取数组。然后你会收到一个 cc.AnimationFrame 的数组。 要获得精灵 link 做:

var frame = frames[0];//cc.AnimationFrame
var spriteFrame = frame.getSpriteFrame(); //cc.SpriteFrame
var texture = spriteFrame.getTexture(); // cc.Texture

并且纹理本身应该具有 name 属性,它可以完成这项工作。