123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283 |
- /****************************************************************************
- Copyright (c) 2008-2010 Ricardo Quesada
- Copyright (c) 2011-2012 cocos2d-x.org
- Copyright (c) 2013-2014 Chukong Technologies Inc.
- http://www.cocos2d-x.org
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
- ****************************************************************************/
- var cc = cc || {};
- cc._tmp = cc._tmp || {};
- /**
- * Function added for JS bindings compatibility. Not needed in cocos2d-html5.
- * @function
- * @param {object} jsObj subclass
- * @param {object} superclass
- */
- cc.associateWithNative = function (jsObj, superclass) {
- };
- /**
- * Key map for keyboard event
- *
- * @constant
- * @type {Object}
- * @example
- cc.eventManager.addListener({
- event: cc.EventListener.KEYBOARD,
- onKeyPressed: function(keyCode, event){
- if (cc.KEY["a"] == keyCode) {
- cc.log("A is pressed");
- }
- }
- }, this);
- */
- cc.KEY = {
- backspace:8,
- tab:9,
- enter:13,
- shift:16, //should use shiftkey instead
- ctrl:17, //should use ctrlkey
- alt:18, //should use altkey
- pause:19,
- capslock:20,
- escape:27,
- pageup:33,
- pagedown:34,
- end:35,
- home:36,
- left:37,
- up:38,
- right:39,
- down:40,
- insert:45,
- Delete:46,
- 0:48,
- 1:49,
- 2:50,
- 3:51,
- 4:52,
- 5:53,
- 6:54,
- 7:55,
- 8:56,
- 9:57,
- a:65,
- b:66,
- c:67,
- d:68,
- e:69,
- f:70,
- g:71,
- h:72,
- i:73,
- j:74,
- k:75,
- l:76,
- m:77,
- n:78,
- o:79,
- p:80,
- q:81,
- r:82,
- s:83,
- t:84,
- u:85,
- v:86,
- w:87,
- x:88,
- y:89,
- z:90,
- num0:96,
- num1:97,
- num2:98,
- num3:99,
- num4:100,
- num5:101,
- num6:102,
- num7:103,
- num8:104,
- num9:105,
- '*':106,
- '+':107,
- '-':109,
- 'numdel':110,
- '/':111,
- f1:112, //f1-f12 dont work on ie
- f2:113,
- f3:114,
- f4:115,
- f5:116,
- f6:117,
- f7:118,
- f8:119,
- f9:120,
- f10:121,
- f11:122,
- f12:123,
- numlock:144,
- scrolllock:145,
- semicolon:186,
- ',':186,
- equal:187,
- '=':187,
- ';':188,
- comma:188,
- dash:189,
- '.':190,
- period:190,
- forwardslash:191,
- grave:192,
- '[':219,
- openbracket:219,
- ']':221,
- closebracket:221,
- backslash:220,
- quote:222,
- space:32
- };
- /**
- * Image Format:JPG
- * @constant
- * @type {Number}
- */
- cc.FMT_JPG = 0;
- /**
- * Image Format:PNG
- * @constant
- * @type {Number}
- */
- cc.FMT_PNG = 1;
- /**
- * Image Format:TIFF
- * @constant
- * @type {Number}
- */
- cc.FMT_TIFF = 2;
- /**
- * Image Format:RAWDATA
- * @constant
- * @type {Number}
- */
- cc.FMT_RAWDATA = 3;
- /**
- * Image Format:WEBP
- * @constant
- * @type {Number}
- */
- cc.FMT_WEBP = 4;
- /**
- * Image Format:UNKNOWN
- * @constant
- * @type {Number}
- */
- cc.FMT_UNKNOWN = 5;
- /**
- * get image format by image data
- * @function
- * @param {Array} imgData
- * @returns {Number}
- */
- cc.getImageFormatByData = function (imgData) {
- // if it is a png file buffer.
- if (imgData.length > 8 && imgData[0] == 0x89
- && imgData[1] == 0x50
- && imgData[2] == 0x4E
- && imgData[3] == 0x47
- && imgData[4] == 0x0D
- && imgData[5] == 0x0A
- && imgData[6] == 0x1A
- && imgData[7] == 0x0A) {
- return cc.FMT_PNG;
- }
- // if it is a tiff file buffer.
- if (imgData.length > 2 && ((imgData[0] == 0x49 && imgData[1] == 0x49)
- || (imgData[0] == 0x4d && imgData[1] == 0x4d)
- || (imgData[0] == 0xff && imgData[1] == 0xd8))) {
- return cc.FMT_TIFF;
- }
- return cc.FMT_UNKNOWN;
- };
- /**
- * Another way to subclass: Using Google Closure.
- * The following code was copied + pasted from goog.base / goog.inherits
- * @function
- * @param {Function} childCtor
- * @param {Function} parentCtor
- */
- cc.inherits = function (childCtor, parentCtor) {
- function tempCtor() {}
- tempCtor.prototype = parentCtor.prototype;
- childCtor.superClass_ = parentCtor.prototype;
- childCtor.prototype = new tempCtor();
- childCtor.prototype.constructor = childCtor;
- // Copy "static" method, but doesn't generate subclasses.
- // for( var i in parentCtor ) {
- // childCtor[ i ] = parentCtor[ i ];
- // }
- };
- /**
- * @deprecated since v3.0, please use cc.Class.extend and _super
- * @cc.Class.extend
- */
- cc.base = function(me, opt_methodName, var_args) {
- var caller = arguments.callee.caller;
- if (caller.superClass_) {
- // This is a constructor. Call the superclass constructor.
- ret = caller.superClass_.constructor.apply( me, Array.prototype.slice.call(arguments, 1));
- return ret;
- }
- var args = Array.prototype.slice.call(arguments, 2);
- var foundCaller = false;
- for (var ctor = me.constructor; ctor; ctor = ctor.superClass_ && ctor.superClass_.constructor) {
- if (ctor.prototype[opt_methodName] === caller) {
- foundCaller = true;
- } else if (foundCaller) {
- return ctor.prototype[opt_methodName].apply(me, args);
- }
- }
- // If we did not find the caller in the prototype chain,
- // then one of two things happened:
- // 1) The caller is an instance method.
- // 2) This method was not called by the right caller.
- if (me[opt_methodName] === caller) {
- return me.constructor.prototype[opt_methodName].apply(me, args);
- } else {
- throw Error(
- 'cc.base called from a method of one name ' +
- 'to a method of a different name');
- }
- };
|