如何在cocos2d-js中使用getFrame?

时间:2016-06-03 09:58:06

标签: 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()功能返回ccanimation帧数组。我只是想在屏幕上获取哪些图片的动画信息,例如,如果#dieRed1.png在屏幕上被动画或可见,它将显示值或返回值为1。曾试图用Google搜索,但在那里找不到任何其他线索。如果有更好的方法,我也很乐意看到它。不管怎样对不起英语,有点困惑如何安排单词。谢谢你:))

1 个答案:

答案 0 :(得分:0)

好的,所以参考 the official docs

  

{Array} getFrames()

     

返回动画帧数组

这意味着您可以这样做:

var frames = animation.getFrames();

获取阵列。然后你将收到一个cc.AnimationFrame数组。 获取精灵链接:

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

纹理本身应该具有可以完成工作的name属性。