cocos2d-js callFunc傳參


1.傳遞一個參數:

pg.TestScene.prototype.init = function () {
    if (cc.Scene.prototype.init.call(this)) {

        var sprite = cc.Sprite.create(res.Bet_HighLighted_png);
        sprite.setPosition(cc.p(cc.winSize.width/2, cc.winSize.height/2));
        this.addChild(sprite, 1, 100);

        var moveToSeat = cc.moveTo(0.5, cc.p(200, 200));
        var rotateBy = cc.rotateBy(0.5, 180);
        var spawn = cc.spawn(moveToSeat, rotateBy);
        var delayTime = cc.delayTime(2);

        // 寫法一
        var callFunc = cc.callFunc(function () {
            console.log("1.sprite tag ==>" + sprite.getTag());
        }, this);
        // 寫法二
        // var callFunc = cc.callFunc(this.printLog, this, sprite);
        var sequence = cc.sequence(spawn, delayTime, callFunc);
        sprite.runAction(sequence);
        return true;
    }
    return false;
};

pg.TestScene.prototype.printLog = function (sprite) {
    console.log("2.sprite tag ==>" + sprite.getTag());
};

2.傳遞兩個參數:

pg.TestScene.prototype.init = function () {
    if (cc.Scene.prototype.init.call(this)) {
       
        var sprite = cc.Sprite.create(res.Bet_HighLighted_png);
        sprite.setPosition(cc.p(cc.winSize.width / 2, cc.winSize.height / 2));
        this.addChild(sprite, 1, 100);

        var moveToSeat = cc.moveTo(0.5, cc.p(200, 200));
        var rotateBy = cc.rotateBy(0.5, 180);
        var spawn = cc.spawn(moveToSeat, rotateBy);
        var delayTime = cc.delayTime(2);
        
        var i = 0;
        var callFunc = cc.callFunc(this.printLog, this, [i , sprite]);
        var sequence = cc.sequence(spawn, delayTime, callFunc);
        sprite.runAction(sequence);
        return true;
    }
    return false;
};

pg.TestScene.prototype.printLog = function (target, data) {
    console.log("i ==>" + data[0]);
    console.log("sprite tag ==>" + data[1].getTag());
};

用法說明:

cc.callFunc(function(target, data) {
        //target  默認是調用這個action的本體Node,Sprite等等
        //data 傳遞的參數,多個參數可以用[data1, data2] 的Array方式組合

    },
    this, //通常綁定最外圍的HelloWorldLayer 之類的, 可以方便調用, 比如為了removeChild

    data //參數,任意格式
);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM