mirror of https://github.com/axmolengine/axmol.git
Merge branch 'develop' of https://github.com/cocos2d/cocos2d-x into develop
# By samuele3hu (3) and others # Via James Chen (3) and others * 'develop' of https://github.com/cocos2d/cocos2d-x: Update CHANGELOG [ci skip] issue #3708:Remove some comments issue #3708:Remove the useless test case #3947 Simulate 'setTimeout' and 'setInterval' in JSB. issue #3708:Performance Test: data structure conversion in lua binding
This commit is contained in:
commit
7b4f15dae9
|
@ -6,6 +6,7 @@ cocos2d-x-3.0rc0 Feb.?? 2014
|
|||
[NEW] Using python to automatically generate script bindings codes.
|
||||
[NEW] Linux javascript bindings support.
|
||||
|
||||
[FIX] Supports 'setTimeout' and 'setInterval' in JSB.
|
||||
[FIX] Exposes the missing data structures of Spine to JS.
|
||||
[FIX] Node::setRotation() moves opposite when node has a physics body.
|
||||
[FIX] A string which only contains CJK characters can't make a line-break when it's needed.
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
//
|
||||
|
||||
var cc = cc || {};
|
||||
var window = window || this;
|
||||
|
||||
cc.TARGET_PLATFORM = {
|
||||
WINDOWS:0,
|
||||
|
@ -821,3 +822,62 @@ cc.VisibleRect = {
|
|||
}
|
||||
};
|
||||
|
||||
var _windowTimeIntervalId = 0;
|
||||
var _windowTimeFunHash = {};
|
||||
var WindowTimeFun = cc.Class.extend({
|
||||
_code: null,
|
||||
_intervalId: 0,
|
||||
ctor: function (code) {
|
||||
this._intervalId = _windowTimeIntervalId++;
|
||||
this._code = code;
|
||||
},
|
||||
fun: function () {
|
||||
if (!this._code) return;
|
||||
var code = this._code;
|
||||
if (typeof code == "string") {
|
||||
Function(code)();
|
||||
}
|
||||
else if (typeof code == "function") {
|
||||
code();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* overwrite window's setTimeout
|
||||
@param {String|Function} code
|
||||
@param {number} delay
|
||||
@return {number}
|
||||
*/
|
||||
var setTimeout = function (code, delay) {
|
||||
var target = new WindowTimeFun(code);
|
||||
cc.Director.getInstance().getScheduler().scheduleCallbackForTarget(target, target.fun, delay / 1000, 0, 0, false);
|
||||
_windowTimeFunHash[target._intervalId] = target;
|
||||
return target._intervalId;
|
||||
};
|
||||
|
||||
/**
|
||||
* overwrite window's setInterval
|
||||
@param {String|Function} code
|
||||
@param {number} delay
|
||||
@return {number}
|
||||
*/
|
||||
var setInterval = function (code, delay) {
|
||||
var target = new WindowTimeFun(code);
|
||||
cc.Director.getInstance().getScheduler().scheduleCallbackForTarget(target, target.fun, delay / 1000, cc.REPEAT_FOREVER, 0, false);
|
||||
_windowTimeFunHash[target._intervalId] = target;
|
||||
return target._intervalId;
|
||||
};
|
||||
|
||||
/**
|
||||
* overwrite window's clearInterval
|
||||
@param {number} intervalId
|
||||
*/
|
||||
var clearInterval = function (intervalId) {
|
||||
var target = _windowTimeFunHash[intervalId];
|
||||
if (target) {
|
||||
cc.Director.getInstance().getScheduler().unscheduleCallbackForTarget(target, target.fun);
|
||||
delete _windowTimeFunHash[intervalId];
|
||||
}
|
||||
};
|
||||
var clearTimeout = clearInterval;
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue