ccb 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (335) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +20 -0
  3. data/README.md +31 -0
  4. data/bin/ccb +4 -0
  5. data/lib/ccb/builder/project_builder.rb +14 -0
  6. data/lib/ccb/builder/scene_builder.rb +9 -0
  7. data/lib/ccb/builder/templates/project/GameConfig.js.tt +21 -0
  8. data/lib/ccb/builder/templates/project/_cocos-project.json +4 -0
  9. data/lib/ccb/builder/templates/project/folder/CMakeLists.txt +295 -0
  10. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/Base64Images.js +32 -0
  11. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/CCBoot.js +2271 -0
  12. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/CCDebugger.js +336 -0
  13. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCAction.js +694 -0
  14. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionCamera.js +293 -0
  15. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionCatmullRom.js +605 -0
  16. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionEase.js +3681 -0
  17. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionInstant.js +757 -0
  18. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionInterval.js +3554 -0
  19. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionTween.js +166 -0
  20. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions3d/CCActionGrid.js +372 -0
  21. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions3d/CCActionGrid3D.js +1257 -0
  22. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions3d/CCActionPageTurn3D.js +113 -0
  23. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions3d/CCActionTiledGrid.js +1289 -0
  24. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/audio/CCAudio.js +1024 -0
  25. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/clipping-nodes/CCClippingNode.js +224 -0
  26. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/clipping-nodes/CCClippingNodeCanvasRenderCmd.js +227 -0
  27. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/clipping-nodes/CCClippingNodeWebGLRenderCmd.js +226 -0
  28. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/compression/ZipUtils.js +82 -0
  29. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/compression/base64.js +95 -0
  30. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/compression/gzip.js +731 -0
  31. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/compression/zlib.min.js +55 -0
  32. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCActionManager.js +378 -0
  33. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCCamera.js +290 -0
  34. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCConfiguration.js +294 -0
  35. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCDirector.js +1019 -0
  36. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCDirectorWebGL.js +329 -0
  37. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCDrawingPrimitivesCanvas.js +438 -0
  38. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCDrawingPrimitivesWebGL.js +464 -0
  39. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCScheduler.js +744 -0
  40. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/BaseNodesPropertyDefine.js +127 -0
  41. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCAtlasNode.js +294 -0
  42. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCAtlasNodeCanvasRenderCmd.js +138 -0
  43. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCAtlasNodeWebGLRenderCmd.js +145 -0
  44. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCNode.js +2386 -0
  45. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCNodeCanvasRenderCmd.js +504 -0
  46. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCNodeWebGLRenderCmd.js +254 -0
  47. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/cocoa/CCAffineTransform.js +259 -0
  48. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/cocoa/CCGeometry.js +327 -0
  49. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/event-manager/CCEvent.js +449 -0
  50. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/event-manager/CCEventExtension.js +126 -0
  51. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/event-manager/CCEventListener.js +519 -0
  52. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/event-manager/CCEventManager.js +1025 -0
  53. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/event-manager/CCTouch.js +175 -0
  54. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/labelttf/CCLabelTTF.js +829 -0
  55. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/labelttf/CCLabelTTFCanvasRenderCmd.js +420 -0
  56. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/labelttf/CCLabelTTFWebGLRenderCmd.js +101 -0
  57. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/labelttf/LabelTTFPropertyDefine.js +88 -0
  58. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/layers/CCLayer.js +642 -0
  59. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/layers/CCLayerCanvasRenderCmd.js +434 -0
  60. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/layers/CCLayerWebGLRenderCmd.js +248 -0
  61. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCClass.js +333 -0
  62. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCCommon.js +303 -0
  63. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCConfig.js +303 -0
  64. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCEGLView.js +1245 -0
  65. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCInputExtension.js +135 -0
  66. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCInputManager.js +616 -0
  67. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCLoaders.js +142 -0
  68. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCMacro.js +830 -0
  69. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCSAXParser.js +160 -0
  70. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCScreen.js +155 -0
  71. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCTypes.js +374 -0
  72. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCTypesPropertyDefine.js +165 -0
  73. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCTypesWebGL.js +689 -0
  74. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCVisibleRect.js +100 -0
  75. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/miniFramework.js +264 -0
  76. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/renderer/RendererCanvas.js +274 -0
  77. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/renderer/RendererWebGL.js +137 -0
  78. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/scenes/CCLoaderScene.js +149 -0
  79. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/scenes/CCScene.js +62 -0
  80. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCAnimation.js +477 -0
  81. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCAnimationCache.js +213 -0
  82. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCBakeSprite.js +71 -0
  83. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSprite.js +1014 -0
  84. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteBatchNode.js +676 -0
  85. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteBatchNodeCanvasRenderCmd.js +101 -0
  86. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteBatchNodeWebGLRenderCmd.js +243 -0
  87. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteCanvasRenderCmd.js +518 -0
  88. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteFrame.js +420 -0
  89. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteFrameCache.js +341 -0
  90. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteWebGLRenderCmd.js +493 -0
  91. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/SpritesPropertyDefine.js +67 -0
  92. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/support/CCPointExtension.js +515 -0
  93. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/support/CCVertex.js +170 -0
  94. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/support/TransformUtils.js +62 -0
  95. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/textures/CCTexture2D.js +455 -0
  96. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/textures/CCTextureAtlas.js +653 -0
  97. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/textures/CCTextureCache.js +371 -0
  98. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/textures/TexturesPropertyDefine.js +221 -0
  99. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/textures/TexturesWebGL.js +899 -0
  100. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/utils/BinaryLoader.js +151 -0
  101. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/effects/CCGrabber.js +110 -0
  102. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/effects/CCGrid.js +737 -0
  103. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/aabb.js +68 -0
  104. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/gl/mat4stack.js +59 -0
  105. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/gl/matrix.js +169 -0
  106. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/mat3.js +329 -0
  107. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/mat4.js +810 -0
  108. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/plane.js +184 -0
  109. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/quaternion.js +497 -0
  110. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/ray2.js +163 -0
  111. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/utility.js +76 -0
  112. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/vec2.js +107 -0
  113. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/vec3.js +205 -0
  114. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/vec4.js +158 -0
  115. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelAtlas.js +239 -0
  116. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelAtlasCanvasRenderCmd.js +95 -0
  117. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelAtlasWebGLRenderCmd.js +132 -0
  118. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelBMFont.js +958 -0
  119. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelBMFontCanvasRenderCmd.js +142 -0
  120. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelBMFontWebGLRenderCmd.js +87 -0
  121. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/menus/CCMenu.js +600 -0
  122. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/menus/CCMenuItem.js +1422 -0
  123. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/motion-streak/CCMotionStreak.js +517 -0
  124. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/motion-streak/CCMotionStreakWebGLRenderCmd.js +66 -0
  125. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/node-grid/CCNodeGrid.js +129 -0
  126. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/node-grid/CCNodeGridWebGLRenderCmd.js +98 -0
  127. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/parallax/CCParallaxNode.js +252 -0
  128. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/parallax/CCParallaxNodeRenderCmd.js +69 -0
  129. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCPNGReader.js +330 -0
  130. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleBatchNode.js +527 -0
  131. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleBatchNodeCanvasRenderCmd.js +38 -0
  132. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleBatchNodeWebGLRenderCmd.js +74 -0
  133. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleExamples.js +1006 -0
  134. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleSystem.js +2294 -0
  135. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleSystemCanvasRenderCmd.js +217 -0
  136. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleSystemWebGLRenderCmd.js +402 -0
  137. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCTIFFReader.js +692 -0
  138. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsDebugNode.js +212 -0
  139. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsDebugNodeCanvasRenderCmd.js +52 -0
  140. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsDebugNodeWebGLRenderCmd.js +53 -0
  141. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsSprite.js +447 -0
  142. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsSpriteCanvasRenderCmd.js +93 -0
  143. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsSpriteWebGLRenderCmd.js +87 -0
  144. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/progress-timer/CCActionProgressTimer.js +227 -0
  145. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/progress-timer/CCProgressTimer.js +345 -0
  146. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/progress-timer/CCProgressTimerCanvasRenderCmd.js +270 -0
  147. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/progress-timer/CCProgressTimerWebGLRenderCmd.js +486 -0
  148. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/render-texture/CCRenderTexture.js +395 -0
  149. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/render-texture/CCRenderTextureCanvasRenderCmd.js +105 -0
  150. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/render-texture/CCRenderTextureWebGLRenderCmd.js +367 -0
  151. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shaders/CCGLProgram.js +767 -0
  152. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shaders/CCGLStateCache.js +340 -0
  153. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shaders/CCShaderCache.js +301 -0
  154. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shaders/CCShaders.js +280 -0
  155. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shape-nodes/CCDrawNode.js +940 -0
  156. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shape-nodes/CCDrawNodeCanvasRenderCmd.js +129 -0
  157. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shape-nodes/CCDrawNodeWebGLRenderCmd.js +41 -0
  158. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/text-input/CCIMEDispatcher.js +526 -0
  159. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/text-input/CCTextFieldTTF.js +472 -0
  160. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTGAlib.js +437 -0
  161. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXLayer.js +914 -0
  162. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXLayerCanvasRenderCmd.js +232 -0
  163. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXLayerWebGLRenderCmd.js +67 -0
  164. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXObjectGroup.js +146 -0
  165. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXTiledMap.js +479 -0
  166. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXXMLParser.js +950 -0
  167. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/transitions/CCTransition.js +1971 -0
  168. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/transitions/CCTransitionPageTurn.js +152 -0
  169. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/transitions/CCTransitionProgress.js +458 -0
  170. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBAnimationManager.js +770 -0
  171. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBKeyframe.js +60 -0
  172. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBReader.js +1129 -0
  173. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBReaderUtil.js +61 -0
  174. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBRelativePositioning.js +90 -0
  175. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBSequence.js +114 -0
  176. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBValue.js +81 -0
  177. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCControlLoader.js +318 -0
  178. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCNodeLoader.js +905 -0
  179. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCNodeLoaderLibrary.js +101 -0
  180. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCSpriteLoader.js +544 -0
  181. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccpool/CCPool.js +146 -0
  182. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/CCProtectedNode.js +305 -0
  183. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/CCProtectedNodeCanvasRenderCmd.js +246 -0
  184. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/CCProtectedNodeWebGLRenderCmd.js +159 -0
  185. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/UIScale9Sprite.js +1105 -0
  186. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/UIScale9SpriteCanvasRenderCmd.js +142 -0
  187. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/UIScale9SpriteWebGLRenderCmd.js +129 -0
  188. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/UIWidget.js +2059 -0
  189. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/UIWidgetRenderCmd.js +100 -0
  190. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UIHBox.js +80 -0
  191. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayout.js +1558 -0
  192. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayoutCanvasRenderCmd.js +179 -0
  193. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayoutComponent.js +585 -0
  194. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayoutManager.js +457 -0
  195. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayoutParameter.js +576 -0
  196. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayoutWebGLRenderCmd.js +240 -0
  197. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UIRelativeBox.js +79 -0
  198. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UIVBox.js +79 -0
  199. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/system/CocosGUI.js +62 -0
  200. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/system/UIHelper.js +164 -0
  201. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UIButton.js +987 -0
  202. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UICheckBox.js +737 -0
  203. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UIImageView.js +337 -0
  204. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UILoadingBar.js +432 -0
  205. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UIRichText.js +579 -0
  206. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UISlider.js +762 -0
  207. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UIText.js +512 -0
  208. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UITextAtlas.js +229 -0
  209. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UITextBMFont.js +216 -0
  210. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UITextField.js +915 -0
  211. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/scroll-widget/UIListView.js +602 -0
  212. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/scroll-widget/UIPageView.js +657 -0
  213. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/scroll-widget/UIScrollView.js +1884 -0
  214. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/CocoStudio.js +68 -0
  215. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/action/CCActionFrame.js +528 -0
  216. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/action/CCActionManager.js +112 -0
  217. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/action/CCActionNode.js +417 -0
  218. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/action/CCActionObject.js +263 -0
  219. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/CCArmature.js +579 -0
  220. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/CCArmatureCanvasRenderCmd.js +190 -0
  221. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/CCArmatureWebGLRenderCmd.js +167 -0
  222. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/CCBone.js +711 -0
  223. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/animation/CCArmatureAnimation.js +669 -0
  224. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/animation/CCProcessBase.js +365 -0
  225. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/animation/CCTween.js +448 -0
  226. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/datas/CCDatas.js +807 -0
  227. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCDecorativeDisplay.js +118 -0
  228. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCDisplayFactory.js +220 -0
  229. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCDisplayManager.js +465 -0
  230. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCSkin.js +215 -0
  231. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCSkinCanvasRenderCmd.js +58 -0
  232. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCSkinWebGLRenderCmd.js +146 -0
  233. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/physics/CCColliderDetector.js +397 -0
  234. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCArmatureDataManager.js +325 -0
  235. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCArmatureDefine.js +45 -0
  236. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCDataReaderHelper.js +1223 -0
  237. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCSpriteFrameCacheHelper.js +68 -0
  238. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCTransformHelp.js +183 -0
  239. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCTweenFunction.js +501 -0
  240. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCUtilMath.js +69 -0
  241. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComAttribute.js +210 -0
  242. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComAudio.js +285 -0
  243. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComController.js +76 -0
  244. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComRender.js +91 -0
  245. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComponent.js +136 -0
  246. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComponentContainer.js +159 -0
  247. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/load.js +221 -0
  248. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/action-1.x.js +238 -0
  249. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/action-2.x.js +266 -0
  250. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/compatible.js +251 -0
  251. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/scene-1.x.js +262 -0
  252. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/timelineParser-1.x.js +292 -0
  253. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/timelineParser-2.x.js +1288 -0
  254. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/uiParser-1.x.js +680 -0
  255. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/timeline/ActionTimeline.js +448 -0
  256. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/timeline/Frame.js +1268 -0
  257. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/timeline/Timeline.js +321 -0
  258. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/trigger/ObjectFactory.js +99 -0
  259. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/trigger/TriggerBase.js +49 -0
  260. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/trigger/TriggerMng.js +301 -0
  261. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/trigger/TriggerObj.js +263 -0
  262. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/editbox/CCEditBox.js +716 -0
  263. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/editbox/CCdomNode.js +657 -0
  264. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControl.js +381 -0
  265. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlButton.js +688 -0
  266. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlColourPicker.js +187 -0
  267. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlHuePicker.js +218 -0
  268. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlPotentiometer.js +300 -0
  269. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlSaturationBrightnessPicker.js +257 -0
  270. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlSlider.js +308 -0
  271. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlStepper.js +390 -0
  272. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlSwitch.js +425 -0
  273. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlUtils.js +177 -0
  274. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCInvocation.js +65 -0
  275. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCMenuPassive.js +415 -0
  276. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCScale9Sprite.js +1099 -0
  277. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCScale9SpriteCanvasRenderCmd.js +142 -0
  278. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCScale9SpriteWebGLRenderCmd.js +129 -0
  279. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/scrollview/CCScrollView.js +827 -0
  280. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/scrollview/CCScrollViewCanvasRenderCmd.js +79 -0
  281. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/scrollview/CCScrollViewWebGLRenderCmd.js +108 -0
  282. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/scrollview/CCSorting.js +239 -0
  283. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/scrollview/CCTableView.js +718 -0
  284. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/spine/CCSkeleton.js +357 -0
  285. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/spine/CCSkeletonAnimation.js +340 -0
  286. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/spine/CCSkeletonCanvasRenderCmd.js +165 -0
  287. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/spine/CCSkeletonWebGLRenderCmd.js +165 -0
  288. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/spine/Spine.js +2239 -0
  289. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/box2d/box2d.js +10882 -0
  290. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/chipmunk/chipmunk.js +6196 -0
  291. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/pluginx/Plugin.js +254 -0
  292. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/pluginx/platform/facebook.js +557 -0
  293. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/pluginx/platform/facebook_sdk.js +151 -0
  294. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/socketio/socket.io.min.js +2 -0
  295. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/jsb_apis.js +618 -0
  296. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/moduleConfig.json +453 -0
  297. data/lib/ccb/builder/templates/project/folder/project.json +42 -0
  298. data/lib/ccb/builder/templates/project/folder/res/CloseNormal.png +0 -0
  299. data/lib/ccb/builder/templates/project/folder/res/CloseSelected.png +0 -0
  300. data/lib/ccb/builder/templates/project/folder/res/HelloWorld.png +0 -0
  301. data/lib/ccb/builder/templates/project/folder/res/favicon.ico +0 -0
  302. data/lib/ccb/builder/templates/project/folder/res/gameOver/cocos2d-html5.png +0 -0
  303. data/lib/ccb/builder/templates/project/folder/res/gameOver/gameOver.png +0 -0
  304. data/lib/ccb/builder/templates/project/folder/res/mainMenu/bg.png +0 -0
  305. data/lib/ccb/builder/templates/project/folder/res/mainMenu/menu.png +0 -0
  306. data/lib/ccb/builder/templates/project/folder/res/setting/menuTitle.png +0 -0
  307. data/lib/ccb/builder/templates/project/folder/res/shared/arial-14.fnt +182 -0
  308. data/lib/ccb/builder/templates/project/folder/res/shared/arial-14.png +0 -0
  309. data/lib/ccb/builder/templates/project/folder/res/sound/music/bgMusic.mp3 +0 -0
  310. data/lib/ccb/builder/templates/project/folder/src/about/layer/ABBackgroundLayer.js +23 -0
  311. data/lib/ccb/builder/templates/project/folder/src/about/layer/ABTouchLayer.js +51 -0
  312. data/lib/ccb/builder/templates/project/folder/src/about/scene/About.js +36 -0
  313. data/lib/ccb/builder/templates/project/folder/src/config/Level.js +7 -0
  314. data/lib/ccb/builder/templates/project/folder/src/gameOver/layer/GOBackgroundLayer.js +50 -0
  315. data/lib/ccb/builder/templates/project/folder/src/gameOver/layer/GOTouchLayer.js +51 -0
  316. data/lib/ccb/builder/templates/project/folder/src/gameOver/scene/GameOver.js +38 -0
  317. data/lib/ccb/builder/templates/project/folder/src/gamePlay/classes/LevelManager.js +21 -0
  318. data/lib/ccb/builder/templates/project/folder/src/gamePlay/layer/GPBackgroundLayer.js +25 -0
  319. data/lib/ccb/builder/templates/project/folder/src/gamePlay/layer/GPTouchLayer.js +51 -0
  320. data/lib/ccb/builder/templates/project/folder/src/gamePlay/scene/GamePlay.js +44 -0
  321. data/lib/ccb/builder/templates/project/folder/src/mainMenu/layer/MMBackgroundLayer.js +43 -0
  322. data/lib/ccb/builder/templates/project/folder/src/mainMenu/layer/MMMainMenuLayer.js +38 -0
  323. data/lib/ccb/builder/templates/project/folder/src/mainMenu/layer/MMTouchLayer.js +96 -0
  324. data/lib/ccb/builder/templates/project/folder/src/mainMenu/scene/MainMenu.js +45 -0
  325. data/lib/ccb/builder/templates/project/folder/src/resource.js +29 -0
  326. data/lib/ccb/builder/templates/project/folder/src/setting/layer/STBackgroundLayer.js +25 -0
  327. data/lib/ccb/builder/templates/project/folder/src/setting/layer/STTouchLayer.js +89 -0
  328. data/lib/ccb/builder/templates/project/folder/src/setting/scene/Setting.js +40 -0
  329. data/lib/ccb/builder/templates/project/index.html.tt +27 -0
  330. data/lib/ccb/builder/templates/project/main.js.tt +62 -0
  331. data/lib/ccb/cli.rb +32 -0
  332. data/lib/ccb/ext/method_hooker.rb +68 -0
  333. data/lib/ccb/ext/string_extention.rb +7 -0
  334. data/lib/ccb.rb +1 -0
  335. metadata +449 -0
@@ -0,0 +1,1025 @@
1
+ /****************************************************************************
2
+ Copyright (c) 2011-2012 cocos2d-x.org
3
+ Copyright (c) 2013-2014 Chukong Technologies Inc.
4
+
5
+ http://www.cocos2d-x.org
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ of this software and associated documentation files (the "Software"), to deal
9
+ in the Software without restriction, including without limitation the rights
10
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ copies of the Software, and to permit persons to whom the Software is
12
+ furnished to do so, subject to the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be included in
15
+ all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ THE SOFTWARE.
24
+ ****************************************************************************/
25
+
26
+ /**
27
+ * @ignore
28
+ */
29
+ cc._EventListenerVector = cc.Class.extend({
30
+ _fixedListeners: null,
31
+ _sceneGraphListeners: null,
32
+ gt0Index: 0,
33
+
34
+ ctor: function () {
35
+ this._fixedListeners = [];
36
+ this._sceneGraphListeners = [];
37
+ },
38
+
39
+ size: function () {
40
+ return this._fixedListeners.length + this._sceneGraphListeners.length;
41
+ },
42
+
43
+ empty: function () {
44
+ return (this._fixedListeners.length === 0) && (this._sceneGraphListeners.length === 0);
45
+ },
46
+
47
+ push: function (listener) {
48
+ if (listener._getFixedPriority() == 0)
49
+ this._sceneGraphListeners.push(listener);
50
+ else
51
+ this._fixedListeners.push(listener);
52
+ },
53
+
54
+ clearSceneGraphListeners: function () {
55
+ this._sceneGraphListeners.length = 0;
56
+ },
57
+
58
+ clearFixedListeners: function () {
59
+ this._fixedListeners.length = 0;
60
+ },
61
+
62
+ clear: function () {
63
+ this._sceneGraphListeners.length = 0;
64
+ this._fixedListeners.length = 0;
65
+ },
66
+
67
+ getFixedPriorityListeners: function () {
68
+ return this._fixedListeners;
69
+ },
70
+
71
+ getSceneGraphPriorityListeners: function () {
72
+ return this._sceneGraphListeners;
73
+ }
74
+ });
75
+
76
+ cc.__getListenerID = function (event) {
77
+ var eventType = cc.Event, getType = event.getType();
78
+ if(getType === eventType.ACCELERATION)
79
+ return cc._EventListenerAcceleration.LISTENER_ID;
80
+ if(getType === eventType.CUSTOM)
81
+ return event.getEventName();
82
+ if(getType === eventType.KEYBOARD)
83
+ return cc._EventListenerKeyboard.LISTENER_ID;
84
+ if(getType === eventType.MOUSE)
85
+ return cc._EventListenerMouse.LISTENER_ID;
86
+ if(getType === eventType.FOCUS)
87
+ return cc._EventListenerFocus.LISTENER_ID;
88
+ if(getType === eventType.TOUCH){
89
+ // Touch listener is very special, it contains two kinds of listeners, EventListenerTouchOneByOne and EventListenerTouchAllAtOnce.
90
+ // return UNKNOWN instead.
91
+ cc.log(cc._LogInfos.__getListenerID);
92
+ }
93
+ return "";
94
+ };
95
+
96
+ /**
97
+ * <p>
98
+ * cc.eventManager is a singleton object which manages event listener subscriptions and event dispatching. <br/>
99
+ * <br/>
100
+ * The EventListener list is managed in such way so that event listeners can be added and removed <br/>
101
+ * while events are being dispatched.
102
+ * </p>
103
+ * @class
104
+ * @name cc.eventManager
105
+ */
106
+ cc.eventManager = /** @lends cc.eventManager# */{
107
+ //Priority dirty flag
108
+ DIRTY_NONE:0,
109
+ DIRTY_FIXED_PRIORITY:1 <<0,
110
+ DIRTY_SCENE_GRAPH_PRIORITY : 1<< 1,
111
+ DIRTY_ALL: 3,
112
+
113
+ _listenersMap: {},
114
+ _priorityDirtyFlagMap: {},
115
+ _nodeListenersMap: {},
116
+ _nodePriorityMap: {},
117
+ _globalZOrderNodeMap: {},
118
+ _toAddedListeners: [],
119
+ _dirtyNodes: [],
120
+ _inDispatch: 0,
121
+ _isEnabled: false,
122
+ _nodePriorityIndex: 0,
123
+
124
+ _internalCustomListenerIDs:[cc.game.EVENT_HIDE, cc.game.EVENT_SHOW],
125
+
126
+ _setDirtyForNode: function (node) {
127
+ // Mark the node dirty only when there is an event listener associated with it.
128
+ if (this._nodeListenersMap[node.__instanceId] != null)
129
+ this._dirtyNodes.push(node);
130
+ var _children = node.getChildren();
131
+ for(var i = 0, len = _children.length; i < len; i++)
132
+ this._setDirtyForNode(_children[i]);
133
+ },
134
+
135
+ /**
136
+ * Pauses all listeners which are associated the specified target.
137
+ * @param {cc.Node} node
138
+ * @param {Boolean} [recursive=false]
139
+ */
140
+ pauseTarget: function (node, recursive) {
141
+ var listeners = this._nodeListenersMap[node.__instanceId], i, len;
142
+ if (listeners) {
143
+ for ( i = 0, len = listeners.length; i < len; i++)
144
+ listeners[i]._setPaused(true);
145
+ }
146
+ if (recursive === true) {
147
+ var locChildren = node.getChildren();
148
+ for ( i = 0, len = locChildren.length; i< len; i++)
149
+ this.pauseTarget(locChildren[i], true);
150
+ }
151
+ },
152
+
153
+ /**
154
+ * Resumes all listeners which are associated the specified target.
155
+ * @param {cc.Node} node
156
+ * @param {Boolean} [recursive=false]
157
+ */
158
+ resumeTarget: function (node, recursive) {
159
+ var listeners = this._nodeListenersMap[node.__instanceId], i, len;
160
+ if (listeners){
161
+ for ( i = 0, len = listeners.length; i < len; i++)
162
+ listeners[i]._setPaused(false);
163
+ }
164
+ this._setDirtyForNode(node);
165
+ if (recursive === true) {
166
+ var locChildren = node.getChildren();
167
+ for ( i = 0, len = locChildren.length; i< len; i++)
168
+ this.resumeTarget(locChildren[i], true);
169
+ }
170
+ },
171
+
172
+ _addListener: function (listener) {
173
+ if (this._inDispatch === 0)
174
+ this._forceAddEventListener(listener);
175
+ else
176
+ this._toAddedListeners.push(listener);
177
+ },
178
+
179
+ _forceAddEventListener: function (listener) {
180
+ var listenerID = listener._getListenerID();
181
+ var listeners = this._listenersMap[listenerID];
182
+ if (!listeners) {
183
+ listeners = new cc._EventListenerVector();
184
+ this._listenersMap[listenerID] = listeners;
185
+ }
186
+ listeners.push(listener);
187
+
188
+ if (listener._getFixedPriority() == 0) {
189
+ this._setDirty(listenerID, this.DIRTY_SCENE_GRAPH_PRIORITY);
190
+
191
+ var node = listener._getSceneGraphPriority();
192
+ if (node == null)
193
+ cc.log(cc._LogInfos.eventManager__forceAddEventListener);
194
+
195
+ this._associateNodeAndEventListener(node, listener);
196
+ if (node.isRunning())
197
+ this.resumeTarget(node);
198
+ } else
199
+ this._setDirty(listenerID, this.DIRTY_FIXED_PRIORITY);
200
+ },
201
+
202
+ _getListeners: function (listenerID) {
203
+ return this._listenersMap[listenerID];
204
+ },
205
+
206
+ _updateDirtyFlagForSceneGraph: function () {
207
+ if (this._dirtyNodes.length == 0)
208
+ return;
209
+
210
+ var locDirtyNodes = this._dirtyNodes, selListeners, selListener, locNodeListenersMap = this._nodeListenersMap;
211
+ for (var i = 0, len = locDirtyNodes.length; i < len; i++) {
212
+ selListeners = locNodeListenersMap[locDirtyNodes[i].__instanceId];
213
+ if (selListeners) {
214
+ for (var j = 0, listenersLen = selListeners.length; j < listenersLen; j++) {
215
+ selListener = selListeners[j];
216
+ if (selListener)
217
+ this._setDirty(selListener._getListenerID(), this.DIRTY_SCENE_GRAPH_PRIORITY);
218
+ }
219
+ }
220
+ }
221
+ this._dirtyNodes.length = 0;
222
+ },
223
+
224
+ _removeAllListenersInVector: function (listenerVector) {
225
+ if (!listenerVector)
226
+ return;
227
+ var selListener;
228
+ for (var i = 0; i < listenerVector.length;) {
229
+ selListener = listenerVector[i];
230
+ selListener._setRegistered(false);
231
+ if (selListener._getSceneGraphPriority() != null){
232
+ this._dissociateNodeAndEventListener(selListener._getSceneGraphPriority(), selListener);
233
+ selListener._setSceneGraphPriority(null); // NULL out the node pointer so we don't have any dangling pointers to destroyed nodes.
234
+ }
235
+
236
+ if (this._inDispatch === 0)
237
+ cc.arrayRemoveObject(listenerVector, selListener);
238
+ else
239
+ ++i;
240
+ }
241
+ },
242
+
243
+ _removeListenersForListenerID: function (listenerID) {
244
+ var listeners = this._listenersMap[listenerID], i;
245
+ if (listeners) {
246
+ var fixedPriorityListeners = listeners.getFixedPriorityListeners();
247
+ var sceneGraphPriorityListeners = listeners.getSceneGraphPriorityListeners();
248
+
249
+ this._removeAllListenersInVector(sceneGraphPriorityListeners);
250
+ this._removeAllListenersInVector(fixedPriorityListeners);
251
+
252
+ // Remove the dirty flag according the 'listenerID'.
253
+ // No need to check whether the dispatcher is dispatching event.
254
+ delete this._priorityDirtyFlagMap[listenerID];
255
+
256
+ if (!this._inDispatch) {
257
+ listeners.clear();
258
+ delete this._listenersMap[listenerID];
259
+ }
260
+ }
261
+
262
+ var locToAddedListeners = this._toAddedListeners, listener;
263
+ for (i = 0; i < locToAddedListeners.length;) {
264
+ listener = locToAddedListeners[i];
265
+ if (listener && listener._getListenerID() == listenerID)
266
+ cc.arrayRemoveObject(locToAddedListeners, listener);
267
+ else
268
+ ++i;
269
+ }
270
+ },
271
+
272
+ _sortEventListeners: function (listenerID) {
273
+ var dirtyFlag = this.DIRTY_NONE, locFlagMap = this._priorityDirtyFlagMap;
274
+ if (locFlagMap[listenerID])
275
+ dirtyFlag = locFlagMap[listenerID];
276
+
277
+ if (dirtyFlag != this.DIRTY_NONE) {
278
+ // Clear the dirty flag first, if `rootNode` is null, then set its dirty flag of scene graph priority
279
+ locFlagMap[listenerID] = this.DIRTY_NONE;
280
+
281
+ if (dirtyFlag & this.DIRTY_FIXED_PRIORITY)
282
+ this._sortListenersOfFixedPriority(listenerID);
283
+
284
+ if (dirtyFlag & this.DIRTY_SCENE_GRAPH_PRIORITY){
285
+ var rootNode = cc.director.getRunningScene();
286
+ if(rootNode)
287
+ this._sortListenersOfSceneGraphPriority(listenerID, rootNode);
288
+ else
289
+ locFlagMap[listenerID] = this.DIRTY_SCENE_GRAPH_PRIORITY;
290
+ }
291
+ }
292
+ },
293
+
294
+ _sortListenersOfSceneGraphPriority: function (listenerID, rootNode) {
295
+ var listeners = this._getListeners(listenerID);
296
+ if (!listeners)
297
+ return;
298
+
299
+ var sceneGraphListener = listeners.getSceneGraphPriorityListeners();
300
+ if(!sceneGraphListener || sceneGraphListener.length === 0)
301
+ return;
302
+
303
+ // Reset priority index
304
+ this._nodePriorityIndex = 0;
305
+ this._nodePriorityMap = {};
306
+
307
+ this._visitTarget(rootNode, true);
308
+
309
+ // After sort: priority < 0, > 0
310
+ listeners.getSceneGraphPriorityListeners().sort(this._sortEventListenersOfSceneGraphPriorityDes);
311
+ },
312
+
313
+ _sortEventListenersOfSceneGraphPriorityDes : function(l1, l2){
314
+ var locNodePriorityMap = cc.eventManager._nodePriorityMap;
315
+ if(!l1 || !l2 || !l1._getSceneGraphPriority() || !l2._getSceneGraphPriority())
316
+ return -1;
317
+ return locNodePriorityMap[l2._getSceneGraphPriority().__instanceId] - locNodePriorityMap[l1._getSceneGraphPriority().__instanceId];
318
+ },
319
+
320
+ _sortListenersOfFixedPriority: function (listenerID) {
321
+ var listeners = this._listenersMap[listenerID];
322
+ if (!listeners)
323
+ return;
324
+
325
+ var fixedListeners = listeners.getFixedPriorityListeners();
326
+ if(!fixedListeners || fixedListeners.length === 0)
327
+ return;
328
+ // After sort: priority < 0, > 0
329
+ fixedListeners.sort(this._sortListenersOfFixedPriorityAsc);
330
+
331
+ // FIXME: Should use binary search
332
+ var index = 0;
333
+ for (var len = fixedListeners.length; index < len;) {
334
+ if (fixedListeners[index]._getFixedPriority() >= 0)
335
+ break;
336
+ ++index;
337
+ }
338
+ listeners.gt0Index = index;
339
+ },
340
+
341
+ _sortListenersOfFixedPriorityAsc: function (l1, l2) {
342
+ return l1._getFixedPriority() - l2._getFixedPriority();
343
+ },
344
+
345
+ _onUpdateListeners: function (listenerID) {
346
+ var listeners = this._listenersMap[listenerID];
347
+ if (!listeners)
348
+ return;
349
+
350
+ var fixedPriorityListeners = listeners.getFixedPriorityListeners();
351
+ var sceneGraphPriorityListeners = listeners.getSceneGraphPriorityListeners();
352
+ var i, selListener;
353
+
354
+ if (sceneGraphPriorityListeners) {
355
+ for (i = 0; i < sceneGraphPriorityListeners.length;) {
356
+ selListener = sceneGraphPriorityListeners[i];
357
+ if (!selListener._isRegistered()) {
358
+ cc.arrayRemoveObject(sceneGraphPriorityListeners, selListener);
359
+ } else
360
+ ++i;
361
+ }
362
+ }
363
+
364
+ if (fixedPriorityListeners) {
365
+ for (i = 0; i < fixedPriorityListeners.length;) {
366
+ selListener = fixedPriorityListeners[i];
367
+ if (!selListener._isRegistered())
368
+ cc.arrayRemoveObject(fixedPriorityListeners, selListener);
369
+ else
370
+ ++i;
371
+ }
372
+ }
373
+
374
+ if (sceneGraphPriorityListeners && sceneGraphPriorityListeners.length === 0)
375
+ listeners.clearSceneGraphListeners();
376
+
377
+ if (fixedPriorityListeners && fixedPriorityListeners.length === 0)
378
+ listeners.clearFixedListeners();
379
+ },
380
+
381
+ _updateListeners: function (event) {
382
+ var locInDispatch = this._inDispatch;
383
+ cc.assert(locInDispatch > 0, cc._LogInfos.EventManager__updateListeners);
384
+ if (event.getType() == cc.Event.TOUCH) {
385
+ this._onUpdateListeners(cc._EventListenerTouchOneByOne.LISTENER_ID);
386
+ this._onUpdateListeners(cc._EventListenerTouchAllAtOnce.LISTENER_ID);
387
+ } else
388
+ this._onUpdateListeners(cc.__getListenerID(event));
389
+
390
+ if(locInDispatch > 1)
391
+ return;
392
+
393
+ cc.assert(locInDispatch == 1, cc._LogInfos.EventManager__updateListeners_2);
394
+ var locListenersMap = this._listenersMap, locPriorityDirtyFlagMap = this._priorityDirtyFlagMap;
395
+ for (var selKey in locListenersMap) {
396
+ if (locListenersMap[selKey].empty()) {
397
+ delete locPriorityDirtyFlagMap[selKey];
398
+ delete locListenersMap[selKey];
399
+ }
400
+ }
401
+
402
+ var locToAddedListeners = this._toAddedListeners;
403
+ if (locToAddedListeners.length !== 0) {
404
+ for (var i = 0, len = locToAddedListeners.length; i < len; i++)
405
+ this._forceAddEventListener(locToAddedListeners[i]);
406
+ this._toAddedListeners.length = 0;
407
+ }
408
+ },
409
+
410
+ _onTouchEventCallback: function(listener, argsObj){
411
+ // Skip if the listener was removed.
412
+ if (!listener._isRegistered)
413
+ return false;
414
+
415
+ var event = argsObj.event, selTouch = argsObj.selTouch;
416
+ event._setCurrentTarget(listener._node);
417
+
418
+ var isClaimed = false, removedIdx;
419
+ var getCode = event.getEventCode(), eventCode = cc.EventTouch.EventCode;
420
+ if (getCode == eventCode.BEGAN) {
421
+ if (listener.onTouchBegan) {
422
+ isClaimed = listener.onTouchBegan(selTouch, event);
423
+ if (isClaimed && listener._registered)
424
+ listener._claimedTouches.push(selTouch);
425
+ }
426
+ } else if (listener._claimedTouches.length > 0
427
+ && ((removedIdx = listener._claimedTouches.indexOf(selTouch)) != -1)) {
428
+ isClaimed = true;
429
+ if(getCode === eventCode.MOVED && listener.onTouchMoved){
430
+ listener.onTouchMoved(selTouch, event);
431
+ } else if(getCode === eventCode.ENDED){
432
+ if (listener.onTouchEnded)
433
+ listener.onTouchEnded(selTouch, event);
434
+ if (listener._registered)
435
+ listener._claimedTouches.splice(removedIdx, 1);
436
+ } else if(getCode === eventCode.CANCELLED){
437
+ if (listener.onTouchCancelled)
438
+ listener.onTouchCancelled(selTouch, event);
439
+ if (listener._registered)
440
+ listener._claimedTouches.splice(removedIdx, 1);
441
+ }
442
+ }
443
+
444
+ // If the event was stopped, return directly.
445
+ if (event.isStopped()) {
446
+ cc.eventManager._updateListeners(event);
447
+ return true;
448
+ }
449
+
450
+ if (isClaimed && listener._registered && listener.swallowTouches) {
451
+ if (argsObj.needsMutableSet)
452
+ argsObj.touches.splice(selTouch, 1);
453
+ return true;
454
+ }
455
+ return false;
456
+ },
457
+
458
+ _dispatchTouchEvent: function (event) {
459
+ this._sortEventListeners(cc._EventListenerTouchOneByOne.LISTENER_ID);
460
+ this._sortEventListeners(cc._EventListenerTouchAllAtOnce.LISTENER_ID);
461
+
462
+ var oneByOneListeners = this._getListeners(cc._EventListenerTouchOneByOne.LISTENER_ID);
463
+ var allAtOnceListeners = this._getListeners(cc._EventListenerTouchAllAtOnce.LISTENER_ID);
464
+
465
+ // If there aren't any touch listeners, return directly.
466
+ if (null == oneByOneListeners && null == allAtOnceListeners)
467
+ return;
468
+
469
+ var originalTouches = event.getTouches(), mutableTouches = cc.copyArray(originalTouches);
470
+ var oneByOneArgsObj = {event: event, needsMutableSet: (oneByOneListeners && allAtOnceListeners), touches: mutableTouches, selTouch: null};
471
+
472
+ //
473
+ // process the target handlers 1st
474
+ //
475
+ if (oneByOneListeners) {
476
+ for (var i = 0; i < originalTouches.length; i++) {
477
+ oneByOneArgsObj.selTouch = originalTouches[i];
478
+ this._dispatchEventToListeners(oneByOneListeners, this._onTouchEventCallback, oneByOneArgsObj);
479
+ if (event.isStopped())
480
+ return;
481
+ }
482
+ }
483
+
484
+ //
485
+ // process standard handlers 2nd
486
+ //
487
+ if (allAtOnceListeners && mutableTouches.length > 0) {
488
+ this._dispatchEventToListeners(allAtOnceListeners, this._onTouchesEventCallback, {event: event, touches: mutableTouches});
489
+ if (event.isStopped())
490
+ return;
491
+ }
492
+ this._updateListeners(event);
493
+ },
494
+
495
+ _onTouchesEventCallback: function (listener, callbackParams) {
496
+ // Skip if the listener was removed.
497
+ if (!listener._registered)
498
+ return false;
499
+
500
+ var eventCode = cc.EventTouch.EventCode, event = callbackParams.event, touches = callbackParams.touches, getCode = event.getEventCode();
501
+ event._setCurrentTarget(listener._node);
502
+ if(getCode == eventCode.BEGAN && listener.onTouchesBegan)
503
+ listener.onTouchesBegan(touches, event);
504
+ else if(getCode == eventCode.MOVED && listener.onTouchesMoved)
505
+ listener.onTouchesMoved(touches, event);
506
+ else if(getCode == eventCode.ENDED && listener.onTouchesEnded)
507
+ listener.onTouchesEnded(touches, event);
508
+ else if(getCode == eventCode.CANCELLED && listener.onTouchesCancelled)
509
+ listener.onTouchesCancelled(touches, event);
510
+
511
+ // If the event was stopped, return directly.
512
+ if (event.isStopped()) {
513
+ cc.eventManager._updateListeners(event);
514
+ return true;
515
+ }
516
+ return false;
517
+ },
518
+
519
+ _associateNodeAndEventListener: function (node, listener) {
520
+ var listeners = this._nodeListenersMap[node.__instanceId];
521
+ if (!listeners) {
522
+ listeners = [];
523
+ this._nodeListenersMap[node.__instanceId] = listeners;
524
+ }
525
+ listeners.push(listener);
526
+ },
527
+
528
+ _dissociateNodeAndEventListener: function (node, listener) {
529
+ var listeners = this._nodeListenersMap[node.__instanceId];
530
+ if (listeners) {
531
+ cc.arrayRemoveObject(listeners, listener);
532
+ if (listeners.length === 0)
533
+ delete this._nodeListenersMap[node.__instanceId];
534
+ }
535
+ },
536
+
537
+ _dispatchEventToListeners: function (listeners, onEvent, eventOrArgs) {
538
+ var shouldStopPropagation = false;
539
+ var fixedPriorityListeners = listeners.getFixedPriorityListeners();
540
+ var sceneGraphPriorityListeners = listeners.getSceneGraphPriorityListeners();
541
+
542
+ var i = 0, j, selListener;
543
+ if (fixedPriorityListeners) { // priority < 0
544
+ if (fixedPriorityListeners.length !== 0) {
545
+ for (; i < listeners.gt0Index; ++i) {
546
+ selListener = fixedPriorityListeners[i];
547
+ if (selListener.isEnabled() && !selListener._isPaused() && selListener._isRegistered() && onEvent(selListener, eventOrArgs)) {
548
+ shouldStopPropagation = true;
549
+ break;
550
+ }
551
+ }
552
+ }
553
+ }
554
+
555
+ if (sceneGraphPriorityListeners && !shouldStopPropagation) { // priority == 0, scene graph priority
556
+ for (j = 0; j < sceneGraphPriorityListeners.length; j++) {
557
+ selListener = sceneGraphPriorityListeners[j];
558
+ if (selListener.isEnabled() && !selListener._isPaused() && selListener._isRegistered() && onEvent(selListener, eventOrArgs)) {
559
+ shouldStopPropagation = true;
560
+ break;
561
+ }
562
+ }
563
+ }
564
+
565
+ if (fixedPriorityListeners && !shouldStopPropagation) { // priority > 0
566
+ for (; i < fixedPriorityListeners.length; ++i) {
567
+ selListener = fixedPriorityListeners[i];
568
+ if (selListener.isEnabled() && !selListener._isPaused() && selListener._isRegistered() && onEvent(selListener, eventOrArgs)) {
569
+ shouldStopPropagation = true;
570
+ break;
571
+ }
572
+ }
573
+ }
574
+ },
575
+
576
+ _setDirty: function (listenerID, flag) {
577
+ var locDirtyFlagMap = this._priorityDirtyFlagMap;
578
+ if (locDirtyFlagMap[listenerID] == null)
579
+ locDirtyFlagMap[listenerID] = flag;
580
+ else
581
+ locDirtyFlagMap[listenerID] = flag | locDirtyFlagMap[listenerID];
582
+ },
583
+
584
+ _visitTarget: function (node, isRootNode) {
585
+ var children = node.getChildren(), i = 0;
586
+ var childrenCount = children.length, locGlobalZOrderNodeMap = this._globalZOrderNodeMap, locNodeListenersMap = this._nodeListenersMap;
587
+
588
+ if (childrenCount > 0) {
589
+ var child;
590
+ // visit children zOrder < 0
591
+ for (; i < childrenCount; i++) {
592
+ child = children[i];
593
+ if (child && child.getLocalZOrder() < 0)
594
+ this._visitTarget(child, false);
595
+ else
596
+ break;
597
+ }
598
+
599
+ if (locNodeListenersMap[node.__instanceId] != null) {
600
+ if (!locGlobalZOrderNodeMap[node.getGlobalZOrder()])
601
+ locGlobalZOrderNodeMap[node.getGlobalZOrder()] = [];
602
+ locGlobalZOrderNodeMap[node.getGlobalZOrder()].push(node.__instanceId);
603
+ }
604
+
605
+ for (; i < childrenCount; i++) {
606
+ child = children[i];
607
+ if (child)
608
+ this._visitTarget(child, false);
609
+ }
610
+ } else {
611
+ if (locNodeListenersMap[node.__instanceId] != null) {
612
+ if (!locGlobalZOrderNodeMap[node.getGlobalZOrder()])
613
+ locGlobalZOrderNodeMap[node.getGlobalZOrder()] = [];
614
+ locGlobalZOrderNodeMap[node.getGlobalZOrder()].push(node.__instanceId);
615
+ }
616
+ }
617
+
618
+ if (isRootNode) {
619
+ var globalZOrders = [];
620
+ for (var selKey in locGlobalZOrderNodeMap)
621
+ globalZOrders.push(selKey);
622
+
623
+ globalZOrders.sort(this._sortNumberAsc);
624
+
625
+ var zOrdersLen = globalZOrders.length, selZOrders, j, locNodePriorityMap = this._nodePriorityMap;
626
+ for (i = 0; i < zOrdersLen; i++) {
627
+ selZOrders = locGlobalZOrderNodeMap[globalZOrders[i]];
628
+ for (j = 0; j < selZOrders.length; j++)
629
+ locNodePriorityMap[selZOrders[j]] = ++this._nodePriorityIndex;
630
+ }
631
+ this._globalZOrderNodeMap = {};
632
+ }
633
+ },
634
+
635
+ _sortNumberAsc : function (a, b) {
636
+ return a - b;
637
+ },
638
+
639
+ /**
640
+ * <p>
641
+ * Adds a event listener for a specified event. <br/>
642
+ * if the parameter "nodeOrPriority" is a node, it means to add a event listener for a specified event with the priority of scene graph. <br/>
643
+ * if the parameter "nodeOrPriority" is a Number, it means to add a event listener for a specified event with the fixed priority. <br/>
644
+ * </p>
645
+ * @param {cc.EventListener|Object} listener The listener of a specified event or a object of some event parameters.
646
+ * @param {cc.Node|Number} nodeOrPriority The priority of the listener is based on the draw order of this node or fixedPriority The fixed priority of the listener.
647
+ * @note The priority of scene graph will be fixed value 0. So the order of listener item in the vector will be ' <0, scene graph (0 priority), >0'.
648
+ * A lower priority will be called before the ones that have a higher value. 0 priority is forbidden for fixed priority since it's used for scene graph based priority.
649
+ * The listener must be a cc.EventListener object when adding a fixed priority listener, because we can't remove a fixed priority listener without the listener handler,
650
+ * except calls removeAllListeners().
651
+ * @return {cc.EventListener} Return the listener. Needed in order to remove the event from the dispatcher.
652
+ */
653
+ addListener: function (listener, nodeOrPriority) {
654
+ cc.assert(listener && nodeOrPriority, cc._LogInfos.eventManager_addListener_2);
655
+ if(!(listener instanceof cc.EventListener)){
656
+ cc.assert(!cc.isNumber(nodeOrPriority), cc._LogInfos.eventManager_addListener_3);
657
+ listener = cc.EventListener.create(listener);
658
+ } else {
659
+ if(listener._isRegistered()){
660
+ cc.log(cc._LogInfos.eventManager_addListener_4);
661
+ return;
662
+ }
663
+ }
664
+
665
+ if (!listener.checkAvailable())
666
+ return;
667
+
668
+ if (cc.isNumber(nodeOrPriority)) {
669
+ if (nodeOrPriority == 0) {
670
+ cc.log(cc._LogInfos.eventManager_addListener);
671
+ return;
672
+ }
673
+
674
+ listener._setSceneGraphPriority(null);
675
+ listener._setFixedPriority(nodeOrPriority);
676
+ listener._setRegistered(true);
677
+ listener._setPaused(false);
678
+ this._addListener(listener);
679
+ } else {
680
+ listener._setSceneGraphPriority(nodeOrPriority);
681
+ listener._setFixedPriority(0);
682
+ listener._setRegistered(true);
683
+ this._addListener(listener);
684
+ }
685
+
686
+ return listener;
687
+ },
688
+
689
+ /**
690
+ * Adds a Custom event listener. It will use a fixed priority of 1.
691
+ * @param {string} eventName
692
+ * @param {function} callback
693
+ * @return {cc.EventListener} the generated event. Needed in order to remove the event from the dispatcher
694
+ */
695
+ addCustomListener: function (eventName, callback) {
696
+ var listener = new cc._EventListenerCustom(eventName, callback);
697
+ this.addListener(listener, 1);
698
+ return listener;
699
+ },
700
+
701
+ /**
702
+ * Remove a listener
703
+ * @param {cc.EventListener} listener an event listener or a registered node target
704
+ */
705
+ removeListener: function (listener) {
706
+ if (listener == null)
707
+ return;
708
+
709
+ var isFound, locListener = this._listenersMap;
710
+ for (var selKey in locListener) {
711
+ var listeners = locListener[selKey];
712
+ var fixedPriorityListeners = listeners.getFixedPriorityListeners(), sceneGraphPriorityListeners = listeners.getSceneGraphPriorityListeners();
713
+
714
+ isFound = this._removeListenerInVector(sceneGraphPriorityListeners, listener);
715
+ if (isFound){
716
+ // fixed #4160: Dirty flag need to be updated after listeners were removed.
717
+ this._setDirty(listener._getListenerID(), this.DIRTY_SCENE_GRAPH_PRIORITY);
718
+ }else{
719
+ isFound = this._removeListenerInVector(fixedPriorityListeners, listener);
720
+ if (isFound)
721
+ this._setDirty(listener._getListenerID(), this.DIRTY_FIXED_PRIORITY);
722
+ }
723
+
724
+ if (listeners.empty()) {
725
+ delete this._priorityDirtyFlagMap[listener._getListenerID()];
726
+ delete locListener[selKey];
727
+ }
728
+
729
+ if (isFound)
730
+ break;
731
+ }
732
+
733
+ if (!isFound) {
734
+ var locToAddedListeners = this._toAddedListeners;
735
+ for (var i = 0, len = locToAddedListeners.length; i < len; i++) {
736
+ var selListener = locToAddedListeners[i];
737
+ if (selListener == listener) {
738
+ cc.arrayRemoveObject(locToAddedListeners, selListener);
739
+ selListener._setRegistered(false);
740
+ break;
741
+ }
742
+ }
743
+ }
744
+ },
745
+
746
+ _removeListenerInVector : function(listeners, listener){
747
+ if (listeners == null)
748
+ return false;
749
+
750
+ for (var i = 0, len = listeners.length; i < len; i++) {
751
+ var selListener = listeners[i];
752
+ if (selListener == listener) {
753
+ selListener._setRegistered(false);
754
+ if (selListener._getSceneGraphPriority() != null){
755
+ this._dissociateNodeAndEventListener(selListener._getSceneGraphPriority(), selListener);
756
+ selListener._setSceneGraphPriority(null); // NULL out the node pointer so we don't have any dangling pointers to destroyed nodes.
757
+ }
758
+
759
+ if (this._inDispatch == 0)
760
+ cc.arrayRemoveObject(listeners, selListener);
761
+ return true;
762
+ }
763
+ }
764
+ return false;
765
+ },
766
+
767
+ /**
768
+ * Removes all listeners with the same event listener type or removes all listeners of a node
769
+ * @param {Number|cc.Node} listenerType listenerType or a node
770
+ * @param {Boolean} [recursive=false]
771
+ */
772
+ removeListeners: function (listenerType, recursive) {
773
+ var _t = this;
774
+ if (listenerType instanceof cc.Node) {
775
+ // Ensure the node is removed from these immediately also.
776
+ // Don't want any dangling pointers or the possibility of dealing with deleted objects..
777
+ delete _t._nodePriorityMap[listenerType.__instanceId];
778
+ cc.arrayRemoveObject(_t._dirtyNodes, listenerType);
779
+ var listeners = _t._nodeListenersMap[listenerType.__instanceId], i;
780
+ if (listeners) {
781
+ var listenersCopy = cc.copyArray(listeners);
782
+ for (i = 0; i < listenersCopy.length; i++)
783
+ _t.removeListener(listenersCopy[i]);
784
+ listenersCopy.length = 0;
785
+ }
786
+
787
+ // Bug fix: ensure there are no references to the node in the list of listeners to be added.
788
+ // If we find any listeners associated with the destroyed node in this list then remove them.
789
+ // This is to catch the scenario where the node gets destroyed before it's listener
790
+ // is added into the event dispatcher fully. This could happen if a node registers a listener
791
+ // and gets destroyed while we are dispatching an event (touch etc.)
792
+ var locToAddedListeners = _t._toAddedListeners;
793
+ for (i = 0; i < locToAddedListeners.length; ) {
794
+ var listener = locToAddedListeners[i];
795
+ if (listener._getSceneGraphPriority() == listenerType) {
796
+ listener._setSceneGraphPriority(null); // Ensure no dangling ptr to the target node.
797
+ listener._setRegistered(false);
798
+ locToAddedListeners.splice(i, 1);
799
+ } else
800
+ ++i;
801
+ }
802
+
803
+ if (recursive === true) {
804
+ var locChildren = listenerType.getChildren(), len;
805
+ for (i = 0, len = locChildren.length; i< len; i++)
806
+ _t.removeListeners(locChildren[i], true);
807
+ }
808
+ } else {
809
+ if (listenerType == cc.EventListener.TOUCH_ONE_BY_ONE)
810
+ _t._removeListenersForListenerID(cc._EventListenerTouchOneByOne.LISTENER_ID);
811
+ else if (listenerType == cc.EventListener.TOUCH_ALL_AT_ONCE)
812
+ _t._removeListenersForListenerID(cc._EventListenerTouchAllAtOnce.LISTENER_ID);
813
+ else if (listenerType == cc.EventListener.MOUSE)
814
+ _t._removeListenersForListenerID(cc._EventListenerMouse.LISTENER_ID);
815
+ else if (listenerType == cc.EventListener.ACCELERATION)
816
+ _t._removeListenersForListenerID(cc._EventListenerAcceleration.LISTENER_ID);
817
+ else if (listenerType == cc.EventListener.KEYBOARD)
818
+ _t._removeListenersForListenerID(cc._EventListenerKeyboard.LISTENER_ID);
819
+ else
820
+ cc.log(cc._LogInfos.eventManager_removeListeners);
821
+ }
822
+ },
823
+
824
+ /**
825
+ * Removes all custom listeners with the same event name
826
+ * @param {string} customEventName
827
+ */
828
+ removeCustomListeners: function (customEventName) {
829
+ this._removeListenersForListenerID(customEventName);
830
+ },
831
+
832
+ /**
833
+ * Removes all listeners
834
+ */
835
+ removeAllListeners: function () {
836
+ var locListeners = this._listenersMap, locInternalCustomEventIDs = this._internalCustomListenerIDs;
837
+ for (var selKey in locListeners){
838
+ if(locInternalCustomEventIDs.indexOf(selKey) === -1)
839
+ this._removeListenersForListenerID(selKey);
840
+ }
841
+ },
842
+
843
+ /**
844
+ * Sets listener's priority with fixed value.
845
+ * @param {cc.EventListener} listener
846
+ * @param {Number} fixedPriority
847
+ */
848
+ setPriority: function (listener, fixedPriority) {
849
+ if (listener == null)
850
+ return;
851
+
852
+ var locListeners = this._listenersMap;
853
+ for (var selKey in locListeners) {
854
+ var selListeners = locListeners[selKey];
855
+ var fixedPriorityListeners = selListeners.getFixedPriorityListeners();
856
+ if (fixedPriorityListeners) {
857
+ var found = fixedPriorityListeners.indexOf(listener);
858
+ if (found != -1) {
859
+ if(listener._getSceneGraphPriority() != null)
860
+ cc.log(cc._LogInfos.eventManager_setPriority);
861
+ if (listener._getFixedPriority() !== fixedPriority) {
862
+ listener._setFixedPriority(fixedPriority);
863
+ this._setDirty(listener._getListenerID(), this.DIRTY_FIXED_PRIORITY);
864
+ }
865
+ return;
866
+ }
867
+ }
868
+ }
869
+ },
870
+
871
+ /**
872
+ * Whether to enable dispatching events
873
+ * @param {boolean} enabled
874
+ */
875
+ setEnabled: function (enabled) {
876
+ this._isEnabled = enabled;
877
+ },
878
+
879
+ /**
880
+ * Checks whether dispatching events is enabled
881
+ * @returns {boolean}
882
+ */
883
+ isEnabled: function () {
884
+ return this._isEnabled;
885
+ },
886
+
887
+ /**
888
+ * Dispatches the event, also removes all EventListeners marked for deletion from the event dispatcher list.
889
+ * @param {cc.Event} event
890
+ */
891
+ dispatchEvent: function (event) {
892
+ if (!this._isEnabled)
893
+ return;
894
+
895
+ this._updateDirtyFlagForSceneGraph();
896
+ this._inDispatch++;
897
+ if(!event || !event.getType)
898
+ throw "event is undefined";
899
+ if (event.getType() == cc.Event.TOUCH) {
900
+ this._dispatchTouchEvent(event);
901
+ this._inDispatch--;
902
+ return;
903
+ }
904
+
905
+ var listenerID = cc.__getListenerID(event);
906
+ this._sortEventListeners(listenerID);
907
+ var selListeners = this._listenersMap[listenerID];
908
+ if (selListeners != null)
909
+ this._dispatchEventToListeners(selListeners, this._onListenerCallback, event);
910
+
911
+ this._updateListeners(event);
912
+ this._inDispatch--;
913
+ },
914
+
915
+ _onListenerCallback: function(listener, event){
916
+ event._setCurrentTarget(listener._getSceneGraphPriority());
917
+ listener._onEvent(event);
918
+ return event.isStopped();
919
+ },
920
+
921
+ /**
922
+ * Dispatches a Custom Event with a event name an optional user data
923
+ * @param {string} eventName
924
+ * @param {*} optionalUserData
925
+ */
926
+ dispatchCustomEvent: function (eventName, optionalUserData) {
927
+ var ev = new cc.EventCustom(eventName);
928
+ ev.setUserData(optionalUserData);
929
+ this.dispatchEvent(ev);
930
+ }
931
+ };
932
+
933
+ // The event helper
934
+ cc.EventHelper = function(){};
935
+
936
+ cc.EventHelper.prototype = {
937
+ constructor: cc.EventHelper,
938
+
939
+ apply: function ( object ) {
940
+ object.addEventListener = cc.EventHelper.prototype.addEventListener;
941
+ object.hasEventListener = cc.EventHelper.prototype.hasEventListener;
942
+ object.removeEventListener = cc.EventHelper.prototype.removeEventListener;
943
+ object.dispatchEvent = cc.EventHelper.prototype.dispatchEvent;
944
+ },
945
+
946
+ addEventListener: function ( type, listener, target ) {
947
+ //check 'type' status, if the status is ready, dispatch event next frame
948
+ if(type === "load" && this._textureLoaded){ //only load event checked.
949
+ setTimeout(function(){
950
+ listener.call(target);
951
+ }, 0);
952
+ return;
953
+ }
954
+
955
+ if ( this._listeners === undefined )
956
+ this._listeners = {};
957
+
958
+ var listeners = this._listeners;
959
+ if ( listeners[ type ] === undefined )
960
+ listeners[ type ] = [];
961
+
962
+ if ( !this.hasEventListener(type, listener, target))
963
+ listeners[ type ].push( {callback:listener, eventTarget: target} );
964
+ },
965
+
966
+ hasEventListener: function ( type, listener, target ) {
967
+ if ( this._listeners === undefined )
968
+ return false;
969
+
970
+ var listeners = this._listeners;
971
+ if ( listeners[ type ] !== undefined ) {
972
+ for(var i = 0, len = listeners.length; i < len ; i++){
973
+ var selListener = listeners[i];
974
+ if(selListener.callback == listener && selListener.eventTarget == target)
975
+ return true;
976
+ }
977
+ }
978
+ return false;
979
+ },
980
+
981
+ removeEventListener: function( type, target){
982
+ if ( this._listeners === undefined )
983
+ return;
984
+
985
+ var listeners = this._listeners;
986
+ var listenerArray = listeners[ type ];
987
+
988
+ if ( listenerArray !== undefined ) {
989
+ for(var i = 0; i < listenerArray.length ; ){
990
+ var selListener = listenerArray[i];
991
+ if(selListener.eventTarget == target)
992
+ listenerArray.splice( i, 1 );
993
+ else
994
+ i++
995
+ }
996
+ }
997
+ },
998
+
999
+ dispatchEvent: function ( event, clearAfterDispatch ) {
1000
+ if ( this._listeners === undefined )
1001
+ return;
1002
+
1003
+ if(clearAfterDispatch == null)
1004
+ clearAfterDispatch = true;
1005
+ var listeners = this._listeners;
1006
+ var listenerArray = listeners[ event];
1007
+
1008
+ if ( listenerArray !== undefined ) {
1009
+ var array = [];
1010
+ var length = listenerArray.length;
1011
+
1012
+ for ( var i = 0; i < length; i ++ ) {
1013
+ array[ i ] = listenerArray[ i ];
1014
+ }
1015
+
1016
+ for ( i = 0; i < length; i ++ ) {
1017
+ array[ i ].callback.call( array[i].eventTarget, this );
1018
+ }
1019
+
1020
+ if(clearAfterDispatch)
1021
+ listenerArray.length = 0;
1022
+ }
1023
+ }
1024
+ };
1025
+