onTouchBegan 不能调用函数

foo:function(var){
return var ;
}
onTouchBegan:function(touch,event){
this.foo(2);
return true;
}
会提示:Uncaught TypeError: undefined is not a function myApp.js:253
cc.Layer.extend.ontouchbegan myApp.js:253
cc.eventManager._onTouchEventCallback CCEventManager.js:420
cc.eventManager._dispatchEventToListeners CCEventManager.js:556
cc.eventManager._dispatchTouchEvent CCEventManager.js:476
cc.eventManager.dispatchEvent CCEventManager.js:898
cc.inputManager.handleTouchesBegin CCInputManager.js:136
(anonymous function)

在其他地方调用foo()不会出错,但在onTouchBegan调用就会出错。

onTouchBegan 里面的this不在是原来的this了。你可以使用event.getTarget()来调用foo

much thanks

也可以用this._node

大哥 我还是不懂 能具体写下怎么用吗 多谢多谢

你可以这样写:
var self=this;
var touchListener=cc.EventListener.create({
event:cc.EventListener.TOUCH_ONE_BY_ONE,
onTouchBegan:function(touch,event){
var scaleup=cc.scaleBy(0.1,1.2);
var scaleback=cc.scaleTo(0.1,1);
self.sprite.runAction(cc.sequence(scaleup,scaleback));
return true;
}
});
cc.eventManager.addListener(touchListener,this);