Skip to content

Commit fef9db5

Browse files
committed
Merge pull request cocos2d#1560 from ShengxiangChen/issue_callback
extraction public function
2 parents d357782 + 87f3935 commit fef9db5

File tree

12 files changed

+30
-42
lines changed

12 files changed

+30
-42
lines changed

cocos2d/CCNotificationCenter.js

+1-7
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,7 @@ cc.NotificationObserver = cc.Class.extend({
143143
* @param {cc.Class} obj
144144
*/
145145
performSelector:function (obj) {
146-
if (this._target && (typeof(this._selector) == "string")) {
147-
this._target[this._selector](obj);
148-
} else if (this._target && (typeof(this._selector) == "function")) {
149-
this._selector.call(this._target, obj);
150-
} else {
151-
this._selector(obj);
152-
}
146+
cc.doCallback(this._selector, this._target,obj);
153147
},
154148

155149
_target:null,

cocos2d/actions/CCActionInstant.js

+1-4
Original file line numberDiff line numberDiff line change
@@ -399,10 +399,7 @@ cc.CallFunc = cc.ActionInstant.extend(/** @lends cc.CallFunc# */{
399399
* execute the function.
400400
*/
401401
execute:function () {
402-
if (this._callFunc != null) //CallFunc, N, ND
403-
this._callFunc.call(this._selectorTarget, this._target, this._data);
404-
else if(this._function)
405-
this._function.call(null, this._target);
402+
cc.doCallback(this._callFunc, this._selectorTarget,this._data);
406403
},
407404

408405
/**

cocos2d/core/CCLoader.js

+1-7
Original file line numberDiff line numberDiff line change
@@ -270,13 +270,7 @@ cc.Loader = cc.Class.extend(/** @lends cc.Loader# */{
270270
},
271271

272272
_complete: function () {
273-
if (this._target && (typeof(this._selector) == "string")) {
274-
this._target[this._selector](this);
275-
} else if (this._target && (typeof(this._selector) == "function")) {
276-
this._selector.call(this._target, this);
277-
} else {
278-
this._selector(this);
279-
}
273+
cc.doCallback(this._selector, this._target);
280274

281275
this._curNumber = 0;
282276
this._loadedNumber = 0;

cocos2d/core/CCScheduler.js

+1-4
Original file line numberDiff line numberDiff line change
@@ -316,10 +316,7 @@ cc.Timer = cc.Class.extend(/** @lends cc.Timer# */{
316316
},
317317

318318
_callSelector:function(){
319-
if (typeof(this._selector) == "string")
320-
this._target[this._selector](this._elapsed);
321-
else // if (typeof(this._selector) == "function") {
322-
this._selector.call(this._target, this._elapsed);
319+
cc.doCallback(this._selector, this._target,this._elapsed);
323320
},
324321

325322
/**

cocos2d/core/platform/CCCommon.js

+18
Original file line numberDiff line numberDiff line change
@@ -554,4 +554,22 @@ cc.SizeFromString = function (content) {
554554
var result = CCNS_REG1.exec(content);
555555
if(!result) return cc.SizeZero();
556556
return cc.size(parseFloat(result[1]), parseFloat(result[2]));
557+
};
558+
559+
/**
560+
*
561+
* @param {Function} selector
562+
* @param {cc.Node} target
563+
* @param {Object|Number|String} data
564+
*/
565+
cc.doCallback = function (selector, target, data) {
566+
if(!selector)
567+
return ;
568+
if (target && (typeof(selector) == "string")) {
569+
target[selector](data);
570+
} else if (target && (typeof(selector) == "function")) {
571+
selector.call(target, data);
572+
} else {
573+
selector(data);
574+
}
557575
};

cocos2d/core/sprite_nodes/CCSprite.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ cc.Sprite = cc.NodeRGBA.extend(/** @lends cc.Sprite# */{
350350
var locListeners = this._loadedEventListeners;
351351
for(var i = 0, len = locListeners.length; i < len; i++){
352352
var selCallback = locListeners[i];
353-
selCallback.eventCallback.call(selCallback.eventTarget, this);
353+
cc.doCallback(selCallback.eventCallback, selCallback.eventTarget, this);
354354
}
355355
locListeners.length = 0;
356356
},

cocos2d/core/sprite_nodes/CCSpriteFrame.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ cc.SpriteFrame = cc.Class.extend(/** @lends cc.SpriteFrame# */{
8080
if (!locListeners) return;
8181
for(var i = 0, len = locListeners.length; i < len; i++){
8282
var selCallback = locListeners[i];
83-
selCallback.eventCallback.call(selCallback.eventTarget, this);
83+
cc.doCallback(selCallback.eventCallback, selCallback.eventTarget, this);
8484
}
8585
locListeners.length = 0;
8686
},

cocos2d/core/textures/CCTexture2D.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -932,7 +932,7 @@ cc.Texture2DWebGL = cc.Class.extend(/** @lends cc.Texture2D# */{
932932
var locListeners = this._loadedEventListeners;
933933
for (var i = 0, len = locListeners.length; i < len; i++) {
934934
var selCallback = locListeners[i];
935-
selCallback.eventCallback.call(selCallback.eventTarget, this);
935+
cc.doCallback(selCallback.eventCallback, selCallback.eventTarget, this);
936936
}
937937
locListeners.length = 0;
938938
}
@@ -1284,7 +1284,7 @@ cc.Texture2DCanvas = cc.Class.extend(/** @lends cc.Texture2D# */{
12841284
var locListeners = this._loadedEventListeners;
12851285
for(var i = 0, len = locListeners.length; i < len; i++){
12861286
var selCallback = locListeners[i];
1287-
selCallback.eventCallback.call(selCallback.eventTarget, this);
1287+
cc.doCallback(selCallback.eventCallback, selCallback.eventTarget, this);
12881288
}
12891289
locListeners.length = 0;
12901290
}

cocos2d/core/textures/CCTextureCache.js

+1-5
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,7 @@ cc.TextureCache = cc.Class.extend(/** @lends cc.TextureCache# */{
9797
},
9898

9999
_addImageAsyncCallBack:function (target, selector) {
100-
if (target && (typeof(selector) === "string")) {
101-
target[selector]();
102-
} else if (target && (typeof(selector) === "function")) {
103-
selector.call(target);
104-
}
100+
cc.doCallback(selector, target);
105101
},
106102

107103
_initializingRenderer : function(){

cocos2d/label_nodes/CCLabelAtlas.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ cc.LabelAtlas = cc.AtlasNode.extend(/** @lends cc.LabelAtlas# */{
6868
var locListeners = this._loadedEventListeners;
6969
for(var i = 0, len = locListeners.length; i < len; i++){
7070
var selCallback = locListeners[i];
71-
selCallback.eventCallback.call(selCallback.eventTarget, this);
71+
cc.doCallback(selCallback.eventCallback, selCallback.eventTarget, this);
7272
}
7373
locListeners.length = 0;
7474
},

cocos2d/label_nodes/CCLabelBMFont.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -522,7 +522,7 @@ cc.LabelBMFont = cc.SpriteBatchNode.extend(/** @lends cc.LabelBMFont# */{
522522
var locListeners = this._loadedEventListeners;
523523
for(var i = 0, len = locListeners.length; i < len; i++){
524524
var selCallback = locListeners[i];
525-
selCallback.eventCallback.call(selCallback.eventTarget, this);
525+
cc.doCallback(selCallback.eventCallback, selCallback.eventTarget, this);
526526
}
527527
locListeners.length = 0;
528528
},

cocos2d/menu_nodes/CCMenuItem.js

+1-9
Original file line numberDiff line numberDiff line change
@@ -184,15 +184,7 @@ cc.MenuItem = cc.NodeRGBA.extend(/** @lends cc.MenuItem# */{
184184
*/
185185
activate:function () {
186186
if (this._isEnabled) {
187-
var locTarget = this._target, locCallback = this._callback;
188-
if(!locCallback)
189-
return ;
190-
if (locTarget && (typeof(locCallback) == "string")) {
191-
locTarget[locCallback](this);
192-
} else if (locTarget && (typeof(locCallback) == "function")) {
193-
locCallback.call(locTarget, this);
194-
} else
195-
locCallback(this);
187+
cc.doCallback(this._callback, this._target,this);
196188
}
197189
}
198190
});

0 commit comments

Comments
 (0)