1.传递一个参数:
pg.TestScene.prototype.init = @H_404_10@function () { @H_404_10@if (cc.Scene.prototype.init.call(@H_404_10@this)) { @H_404_10@var sprite = cc.Sprite.create(res.Bet_HighLighted_png); sprite.setPosition(cc.p(cc.winSize.width/2,cc.winSize.height/2)); @H_404_10@this.addChild(sprite,1,100); @H_404_10@var moveToSeat = cc.moveTo(0.5,cc.p(200,200)); @H_404_10@var rotateBy = cc.rotateBy(0.5,180); @H_404_10@var spawn = cc.spawn(moveToSeat,rotateBy); @H_404_10@var delayTime = cc.delayTime(2); // 写法一 @H_404_10@var callFunc = cc.callFunc(@H_404_10@function () { console.log("1.sprite tag ==>" + sprite.getTag()); },@H_404_10@this); // 写法二 // var callFunc = cc.callFunc(this.printLog,this,sprite); @H_404_10@var sequence = cc.sequence(spawn,delayTime,callFunc); sprite.runAction(sequence); @H_404_10@return true; } @H_404_10@return false; }; pg.TestScene.prototype.printLog = @H_404_10@function (sprite) { console.log("2.sprite tag ==>" + sprite.getTag()); };
2.传递两个参数:
pg.TestScene.prototype.init = @H_404_10@function () { @H_404_10@if (cc.Scene.prototype.init.call(@H_404_10@this)) { @H_404_10@var sprite = cc.Sprite.create(res.Bet_HighLighted_png); sprite.setPosition(cc.p(cc.winSize.width / 2,cc.winSize.height / 2)); @H_404_10@this.addChild(sprite,rotateBy); @H_404_10@var delayTime = cc.delayTime(2); @H_404_10@var i = 0; @H_404_10@var callFunc = cc.callFunc(@H_404_10@this.printLog,@H_404_10@this,[i ,sprite]); @H_404_10@var sequence = cc.sequence(spawn,callFunc); sprite.runAction(sequence); @H_404_10@return true; } @H_404_10@return false; }; pg.TestScene.prototype.printLog = @H_404_10@function (target,data) { console.log("i ==>" + data[0]); console.log("sprite tag ==>" + data[1].getTag()); };
用法说明:
cc.callFunc(@H_404_10@function(target,data) { //target 默认是调用这个action的本体Node,Sprite等等 //data 传递的参数,多个参数可以用[data1,data2] 的Array方式组合 }, @H_404_10@this,//通常绑定最外围的HelloWorldLayer 之类的, 可以方便调用, 比如为了removeChild data //参数,任意格式 );