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 //參數,任意格式 );
