ccb 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,958 @@
1
+ /****************************************************************************
2
+ Copyright (c) 2008-2010 Ricardo Quesada
3
+ Copyright (c) 2011-2012 cocos2d-x.org
4
+ Copyright (c) 2013-2014 Chukong Technologies Inc.
5
+
6
+ http://www.cocos2d-x.org
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ of this software and associated documentation files (the "Software"), to deal
10
+ in the Software without restriction, including without limitation the rights
11
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ copies of the Software, and to permit persons to whom the Software is
13
+ furnished to do so, subject to the following conditions:
14
+
15
+ The above copyright notice and this permission notice shall be included in
16
+ all copies or substantial portions of the Software.
17
+
18
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
+ THE SOFTWARE.
25
+
26
+ Use any of these editors to generate BMFonts:
27
+ http://glyphdesigner.71squared.com/ (Commercial, Mac OS X)
28
+ http://www.n4te.com/hiero/hiero.jnlp (Free, Java)
29
+ http://slick.cokeandcode.com/demos/hiero.jnlp (Free, Java)
30
+ http://www.angelcode.com/products/bmfont/ (Free, Windows only)
31
+ ****************************************************************************/
32
+ /**
33
+ * @constant
34
+ * @type Number
35
+ */
36
+ cc.LABEL_AUTOMATIC_WIDTH = -1;
37
+
38
+ /**
39
+ * <p>cc.LabelBMFont is a subclass of cc.SpriteBatchNode.</p>
40
+ *
41
+ * <p>Features:<br/>
42
+ * <ul><li>- Treats each character like a cc.Sprite. This means that each individual character can be:</li>
43
+ * <li>- rotated</li>
44
+ * <li>- scaled</li>
45
+ * <li>- translated</li>
46
+ * <li>- tinted</li>
47
+ * <li>- change the opacity</li>
48
+ * <li>- It can be used as part of a menu item.</li>
49
+ * <li>- anchorPoint can be used to align the "label"</li>
50
+ * <li>- Supports AngelCode text format</li></ul></p>
51
+ *
52
+ * <p>Limitations:<br/>
53
+ * - All inner characters are using an anchorPoint of (0.5, 0.5) and it is not recommend to change it
54
+ * because it might affect the rendering</p>
55
+ *
56
+ * <p>cc.LabelBMFont implements the protocol cc.LabelProtocol, like cc.Label and cc.LabelAtlas.<br/>
57
+ * cc.LabelBMFont has the flexibility of cc.Label, the speed of cc.LabelAtlas and all the features of cc.Sprite.<br/>
58
+ * If in doubt, use cc.LabelBMFont instead of cc.LabelAtlas / cc.Label.</p>
59
+ *
60
+ * <p>Supported editors:<br/>
61
+ * http://glyphdesigner.71squared.com/ (Commercial, Mac OS X)<br/>
62
+ * http://www.n4te.com/hiero/hiero.jnlp (Free, Java)<br/>
63
+ * http://slick.cokeandcode.com/demos/hiero.jnlp (Free, Java)<br/>
64
+ * http://www.angelcode.com/products/bmfont/ (Free, Windows only)</p>
65
+ * @class
66
+ * @extends cc.SpriteBatchNode
67
+ *
68
+ * @property {String} string - Content string of label
69
+ * @property {Number} textAlign - Horizontal Alignment of label, cc.TEXT_ALIGNMENT_LEFT|cc.TEXT_ALIGNMENT_CENTER|cc.TEXT_ALIGNMENT_RIGHT
70
+ * @property {Number} boundingWidth - Width of the bounding box of label, the real content width is limited by boundingWidth
71
+ *
72
+ * @param {String} str
73
+ * @param {String} fntFile
74
+ * @param {Number} [width=-1]
75
+ * @param {Number} [alignment=cc.TEXT_ALIGNMENT_LEFT]
76
+ * @param {cc.Point} [imageOffset=cc.p(0,0)]
77
+ *
78
+ * @example
79
+ * // Example 01
80
+ * var label1 = new cc.LabelBMFont("Test case", "test.fnt");
81
+ *
82
+ * // Example 02
83
+ * var label2 = new cc.LabelBMFont("test case", "test.fnt", 200, cc.TEXT_ALIGNMENT_LEFT);
84
+ *
85
+ * // Example 03
86
+ * var label3 = new cc.LabelBMFont("This is a \n test case", "test.fnt", 200, cc.TEXT_ALIGNMENT_LEFT, cc.p(0,0));
87
+ */
88
+ cc.LabelBMFont = cc.SpriteBatchNode.extend(/** @lends cc.LabelBMFont# */{
89
+ //property string is Getter and Setter.
90
+ //property textAlign is Getter and Setter.
91
+ //property boundingWidth is Getter and Setter.
92
+ _opacityModifyRGB: false,
93
+
94
+ _string: "",
95
+ _config: null,
96
+
97
+ // name of fntFile
98
+ _fntFile: "",
99
+
100
+ // initial string without line breaks
101
+ _initialString: "",
102
+
103
+ // alignment of all lines
104
+ _alignment: cc.TEXT_ALIGNMENT_CENTER,
105
+
106
+ // max width until a line break is added
107
+ _width: -1,
108
+ _lineBreakWithoutSpaces: false,
109
+ _imageOffset: null,
110
+
111
+ _reusedChar: null,
112
+
113
+ _textureLoaded: false,
114
+ _className: "LabelBMFont",
115
+
116
+ _createRenderCmd: function(){
117
+ if(cc._renderType === cc._RENDER_TYPE_WEBGL)
118
+ return new cc.LabelBMFont.WebGLRenderCmd(this);
119
+ else
120
+ return new cc.LabelBMFont.CanvasRenderCmd(this);
121
+ },
122
+
123
+ _setString: function (newString, needUpdateLabel) {
124
+ if (!needUpdateLabel) {
125
+ this._string = newString;
126
+ } else {
127
+ this._initialString = newString;
128
+ }
129
+ var locChildren = this._children;
130
+ if (locChildren) {
131
+ for (var i = 0; i < locChildren.length; i++) {
132
+ var selNode = locChildren[i];
133
+ if (selNode)
134
+ selNode.setVisible(false);
135
+ }
136
+ }
137
+ if (this._textureLoaded) {
138
+ this.createFontChars();
139
+ if (needUpdateLabel)
140
+ this.updateLabel();
141
+ }
142
+ },
143
+
144
+ /**
145
+ * Constructor function, override it to extend the construction behavior, remember to call "this._super()" in the extended "ctor" function. <br />
146
+ * creates a bitmap font atlas with an initial string and the FNT file.
147
+ * @param {String} str
148
+ * @param {String} fntFile
149
+ * @param {Number} [width=-1]
150
+ * @param {Number} [alignment=cc.TEXT_ALIGNMENT_LEFT]
151
+ * @param {cc.Point} [imageOffset=cc.p(0,0)]
152
+ */
153
+ ctor: function (str, fntFile, width, alignment, imageOffset) {
154
+ cc.SpriteBatchNode.prototype.ctor.call(this);
155
+ this._imageOffset = cc.p(0, 0);
156
+ this._reusedChar = [];
157
+ this._cascadeColorEnabled = true;
158
+ this._cascadeOpacityEnabled = true;
159
+ this.initWithString(str, fntFile, width, alignment, imageOffset);
160
+ },
161
+
162
+ /**
163
+ * return texture is loaded
164
+ * @returns {boolean}
165
+ */
166
+ textureLoaded: function () {
167
+ return this._textureLoaded;
168
+ },
169
+
170
+ /**
171
+ * add texture loaded event listener. <br />
172
+ * Will execute the callback in the loaded.
173
+ * @param {Function} callback
174
+ * @param {Object} target
175
+ * @deprecated since 3.1, please use addEventListener instead
176
+ */
177
+ addLoadedEventListener: function (callback, target) {
178
+ this.addEventListener("load", callback, target);
179
+ },
180
+
181
+ /**
182
+ * Conforms to cc.RGBAProtocol protocol.
183
+ * @return {Boolean}
184
+ */
185
+ isOpacityModifyRGB: function () {
186
+ return this._opacityModifyRGB;
187
+ },
188
+
189
+ /**
190
+ * Set whether to support cc.RGBAProtocol protocol
191
+ * @param {Boolean} opacityModifyRGB
192
+ */
193
+ setOpacityModifyRGB: function (opacityModifyRGB) {
194
+ this._opacityModifyRGB = opacityModifyRGB;
195
+ var locChildren = this._children;
196
+ if (locChildren) {
197
+ for (var i = 0; i < locChildren.length; i++) {
198
+ var node = locChildren[i];
199
+ if (node)
200
+ node.opacityModifyRGB = this._opacityModifyRGB;
201
+ }
202
+ }
203
+ },
204
+
205
+ _changeTextureColor: function () {
206
+ this._renderCmd._changeTextureColor();
207
+ },
208
+
209
+ /**
210
+ * Initialization of the node, please do not call this function by yourself, you should pass the parameters to constructor to initialize it
.
211
+ */
212
+ init: function () {
213
+ return this.initWithString(null, null, null, null, null);
214
+ },
215
+
216
+ /**
217
+ * init a bitmap font atlas with an initial string and the FNT file
218
+ * @param {String} str
219
+ * @param {String} fntFile
220
+ * @param {Number} [width=-1]
221
+ * @param {Number} [alignment=cc.TEXT_ALIGNMENT_LEFT]
222
+ * @param {cc.Point} [imageOffset=cc.p(0,0)]
223
+ * @return {Boolean}
224
+ */
225
+ initWithString: function (str, fntFile, width, alignment, imageOffset) {
226
+ var self = this, theString = str || "";
227
+ var cmd = this._renderCmd;
228
+
229
+ if (self._config)
230
+ cc.log("cc.LabelBMFont.initWithString(): re-init is no longer supported");
231
+
232
+ var texture;
233
+ if (fntFile) {
234
+ var newConf = cc.loader.getRes(fntFile);
235
+ if (!newConf) {
236
+ cc.log("cc.LabelBMFont.initWithString(): Impossible to create font. Please check file");
237
+ return false;
238
+ }
239
+
240
+ self._config = newConf;
241
+ self._fntFile = fntFile;
242
+ texture = cc.textureCache.addImage(newConf.atlasName);
243
+ var locIsLoaded = texture.isLoaded();
244
+ self._textureLoaded = locIsLoaded;
245
+ if (!locIsLoaded) {
246
+ texture.addEventListener("load", function (sender) {
247
+ var self1 = this;
248
+ self1._textureLoaded = true;
249
+ //reset the LabelBMFont
250
+ self1.initWithTexture(sender, self1._initialString.length);
251
+ self1.setString(self1._initialString, true);
252
+ self1.dispatchEvent("load");
253
+ }, self);
254
+ }
255
+ } else {
256
+ texture = new cc.Texture2D();
257
+ var image = new Image();
258
+ texture.initWithElement(image);
259
+ self._textureLoaded = false;
260
+ }
261
+
262
+ if (self.initWithTexture(texture, theString.length)) {
263
+ self._alignment = alignment || cc.TEXT_ALIGNMENT_LEFT;
264
+ self._imageOffset = imageOffset || cc.p(0, 0);
265
+ self._width = (width == null) ? -1 : width;
266
+
267
+ self._realOpacity = 255;
268
+ self._realColor = cc.color(255, 255, 255, 255);
269
+
270
+ self._contentSize.width = 0;
271
+ self._contentSize.height = 0;
272
+
273
+ self.setAnchorPoint(0.5, 0.5);
274
+
275
+ this._renderCmd._initBatchTexture();
276
+
277
+ self.setString(theString, true);
278
+ return true;
279
+ }
280
+ return false;
281
+ },
282
+
283
+ /**
284
+ * updates the font chars based on the string to render
285
+ */
286
+ createFontChars: function () {
287
+ var self = this;
288
+ var cmd = this._renderCmd;
289
+ var locTexture = cmd._texture || self.textureAtlas.texture;
290
+
291
+ var nextFontPositionX = 0;
292
+
293
+ var tmpSize = cc.size(0, 0);
294
+
295
+ var longestLine = 0;
296
+
297
+ var quantityOfLines = 1;
298
+
299
+ var locStr = self._string;
300
+ var stringLen = locStr ? locStr.length : 0;
301
+
302
+ if (stringLen === 0)
303
+ return;
304
+
305
+ var i, locCfg = self._config, locKerningDict = locCfg.kerningDict,
306
+ locCommonH = locCfg.commonHeight, locFontDict = locCfg.fontDefDictionary;
307
+ for (i = 0; i < stringLen - 1; i++) {
308
+ if (locStr.charCodeAt(i) == 10) quantityOfLines++;
309
+ }
310
+
311
+ var totalHeight = locCommonH * quantityOfLines;
312
+ var nextFontPositionY = -(locCommonH - locCommonH * quantityOfLines);
313
+
314
+ var prev = -1;
315
+ for (i = 0; i < stringLen; i++) {
316
+ var key = locStr.charCodeAt(i);
317
+ if (key == 0) continue;
318
+
319
+ if (key === 10) {
320
+ //new line
321
+ nextFontPositionX = 0;
322
+ nextFontPositionY -= locCfg.commonHeight;
323
+ continue;
324
+ }
325
+
326
+ var kerningAmount = locKerningDict[(prev << 16) | (key & 0xffff)] || 0;
327
+ var fontDef = locFontDict[key];
328
+ if (!fontDef) {
329
+ cc.log("cocos2d: LabelBMFont: character not found " + locStr[i]);
330
+ continue;
331
+ }
332
+
333
+ var rect = cc.rect(fontDef.rect.x, fontDef.rect.y, fontDef.rect.width, fontDef.rect.height);
334
+ rect = cc.rectPixelsToPoints(rect);
335
+ rect.x += self._imageOffset.x;
336
+ rect.y += self._imageOffset.y;
337
+
338
+ var fontChar = self.getChildByTag(i);
339
+
340
+ if(!fontChar){
341
+ fontChar = new cc.Sprite();
342
+ fontChar.initWithTexture(locTexture, rect, false);
343
+ fontChar._newTextureWhenChangeColor = true;
344
+ this.addChild(fontChar, 0, i);
345
+ }else{
346
+ this._renderCmd._updateCharTexture(fontChar, rect, key);
347
+ }
348
+
349
+ // Apply label properties
350
+ fontChar.opacityModifyRGB = this._opacityModifyRGB;
351
+ this._renderCmd._updateCharColorAndOpacity(fontChar);
352
+
353
+ var yOffset = locCfg.commonHeight - fontDef.yOffset;
354
+ var fontPos = cc.p(nextFontPositionX + fontDef.xOffset + fontDef.rect.width * 0.5 + kerningAmount,
355
+ nextFontPositionY + yOffset - rect.height * 0.5 * cc.contentScaleFactor());
356
+ fontChar.setPosition(cc.pointPixelsToPoints(fontPos));
357
+
358
+ // update kerning
359
+ nextFontPositionX += fontDef.xAdvance + kerningAmount;
360
+ prev = key;
361
+
362
+ if (longestLine < nextFontPositionX)
363
+ longestLine = nextFontPositionX;
364
+ }
365
+
366
+ //If the last character processed has an xAdvance which is less that the width of the characters image, then we need
367
+ // to adjust the width of the string to take this into account, or the character will overlap the end of the bounding box
368
+ if(fontDef && fontDef.xAdvance < fontDef.rect.width)
369
+ tmpSize.width = longestLine - fontDef.xAdvance + fontDef.rect.width;
370
+ else
371
+ tmpSize.width = longestLine;
372
+ tmpSize.height = totalHeight;
373
+ self.setContentSize(cc.sizePixelsToPoints(tmpSize));
374
+ },
375
+
376
+ /**
377
+ * Update String. <br />
378
+ * Only update this label display string.
379
+ * @param {Boolean} fromUpdate
380
+ */
381
+ updateString: function (fromUpdate) {
382
+ var self = this;
383
+ var locChildren = self._children;
384
+ if (locChildren) {
385
+ for (var i = 0, li = locChildren.length; i < li; i++) {
386
+ var node = locChildren[i];
387
+ if (node) node.visible = false;
388
+ }
389
+ }
390
+ if (self._config)
391
+ self.createFontChars();
392
+
393
+ if (!fromUpdate)
394
+ self.updateLabel();
395
+ },
396
+
397
+ /**
398
+ * Gets the text of this label
399
+ * @return {String}
400
+ */
401
+ getString: function () {
402
+ return this._initialString;
403
+ },
404
+
405
+ /**
406
+ * Set the text
407
+ * @param {String} newString
408
+ * @param {Boolean|null} needUpdateLabel
409
+ */
410
+ setString: function (newString, needUpdateLabel) {
411
+ newString = String(newString);
412
+ if (needUpdateLabel == null)
413
+ needUpdateLabel = true;
414
+ if (newString == null || !cc.isString(newString))
415
+ newString = newString + "";
416
+
417
+ this._initialString = newString;
418
+ this._setString(newString, needUpdateLabel);
419
+ },
420
+
421
+ _setStringForSetter: function (newString) {
422
+ this.setString(newString, false);
423
+ },
424
+
425
+ /**
426
+ * Set the text. <br />
427
+ * Change this Label display string.
428
+ * @deprecated since v3.0 please use .setString
429
+ * @param label
430
+ */
431
+ setCString: function (label) {
432
+ this.setString(label, true);
433
+ },
434
+
435
+ // calc the text all with in a line
436
+ _getCharsWidth:function (startIndex, endIndex) {
437
+ if (endIndex <= 0)
438
+ {
439
+ return 0;
440
+ }
441
+ var curTextFirstSprite = this.getChildByTag(startIndex);
442
+ var curTextLastSprite = this.getChildByTag(startIndex + endIndex);
443
+ return this._getLetterPosXLeft(curTextLastSprite) - this._getLetterPosXLeft(curTextFirstSprite);
444
+ },
445
+
446
+ _checkWarp:function (strArr, i, maxWidth, initStringWrapNum) {
447
+ var self = this;
448
+ var text = strArr[i];
449
+ var curLength = 0;
450
+ for (var strArrIndex = 0; strArrIndex < i; strArrIndex++)
451
+ {
452
+ curLength += strArr[strArrIndex].length;
453
+ }
454
+
455
+ curLength = curLength + i - initStringWrapNum; // add the wrap line num
456
+
457
+ var allWidth = self._getCharsWidth(curLength, strArr[i].length - 1);
458
+
459
+ if (allWidth > maxWidth && text.length > 1) {
460
+ var fuzzyLen = text.length * ( maxWidth / allWidth ) | 0;
461
+ var tmpText = text.substr(fuzzyLen);
462
+ var width = allWidth - this._getCharsWidth(curLength + fuzzyLen, tmpText.length - 1);
463
+ var sLine;
464
+ var pushNum = 0;
465
+
466
+ //Increased while cycle maximum ceiling. default 100 time
467
+ var checkWhile = 0;
468
+
469
+ //Exceeded the size
470
+ while (width > maxWidth && checkWhile++ < 100) {
471
+ fuzzyLen *= maxWidth / width;
472
+ fuzzyLen = fuzzyLen | 0;
473
+ tmpText = text.substr(fuzzyLen);
474
+ width = allWidth - this._getCharsWidth(curLength + fuzzyLen, tmpText.length - 1);
475
+ }
476
+
477
+ checkWhile = 0;
478
+
479
+ //Find the truncation point
480
+ while (width < maxWidth && checkWhile++ < 100) {
481
+ if (tmpText) {
482
+ var exec = cc.LabelTTF._wordRex.exec(tmpText);
483
+ pushNum = exec ? exec[0].length : 1;
484
+ sLine = tmpText;
485
+ }
486
+ if (self._lineBreakWithoutSpaces) {
487
+ pushNum = 0;
488
+ }
489
+ fuzzyLen = fuzzyLen + pushNum;
490
+ tmpText = text.substr(fuzzyLen);
491
+ width = allWidth - this._getCharsWidth(curLength + fuzzyLen, tmpText.length - 1);
492
+ }
493
+
494
+ fuzzyLen -= pushNum;
495
+ if (fuzzyLen === 0) {
496
+ fuzzyLen = 1;
497
+ sLine = sLine.substr(1);
498
+ }
499
+
500
+ var sText = text.substr(0, fuzzyLen), result;
501
+
502
+ //symbol in the first
503
+ if (cc.LabelTTF.wrapInspection) {
504
+ if (cc.LabelTTF._symbolRex.test(sLine || tmpText)) {
505
+ result = cc.LabelTTF._lastWordRex.exec(sText);
506
+ pushNum = result ? result[0].length : 0;
507
+ if (self._lineBreakWithoutSpaces) {
508
+ pushNum = 0;
509
+ }
510
+ fuzzyLen -= pushNum;
511
+
512
+ sLine = text.substr(fuzzyLen);
513
+ sText = text.substr(0, fuzzyLen);
514
+ }
515
+ }
516
+
517
+ //To judge whether a English words are truncated
518
+ if (cc.LabelTTF._firsrEnglish.test(sLine)) {
519
+ result = cc.LabelTTF._lastEnglish.exec(sText);
520
+ if (result && sText !== result[0]) {
521
+ pushNum = result[0].length;
522
+ if (self._lineBreakWithoutSpaces) {
523
+ pushNum = 0;
524
+ }
525
+ fuzzyLen -= pushNum;
526
+ sLine = text.substr(fuzzyLen);
527
+ sText = text.substr(0, fuzzyLen);
528
+ }
529
+ }
530
+ strArr[i] = sLine || tmpText;
531
+ strArr.splice(i, 0, sText);
532
+ }
533
+ },
534
+
535
+ /**
536
+ * Update Label. <br />
537
+ * Update this Label display string and more...
538
+ */
539
+ updateLabel: function () {
540
+ var self = this;
541
+ self.string = self._initialString;
542
+ // process string
543
+ // Step 1: Make multiline
544
+ if (self._width > 0) {
545
+ var stringArr = self.string.split('\n');
546
+ var wrapString = "";
547
+ var newWrapNum = 0;
548
+ var oldArrLength = 0;
549
+ for (i = 0; i < stringArr.length; i++) {
550
+ oldArrLength = stringArr.length;
551
+ this._checkWarp(stringArr, i, self._width * this._scaleX, newWrapNum);
552
+ if (oldArrLength < stringArr.length)
553
+ {
554
+ newWrapNum++;
555
+ }
556
+ if (i > 0)
557
+ {
558
+ wrapString += "\n";
559
+ }
560
+ wrapString += stringArr[i];
561
+ }
562
+ wrapString = wrapString + String.fromCharCode(0);
563
+ self._setString(wrapString, false);
564
+ }
565
+
566
+ // Step 2: Make alignment
567
+ if (self._alignment != cc.TEXT_ALIGNMENT_LEFT) {
568
+ i = 0;
569
+
570
+ var lineNumber = 0;
571
+ var strlen = self._string.length;
572
+ var last_line = [];
573
+
574
+ for (var ctr = 0; ctr < strlen; ctr++) {
575
+ if (self._string[ctr].charCodeAt(0) == 10 || self._string[ctr].charCodeAt(0) == 0) {
576
+ var lineWidth = 0;
577
+ var line_length = last_line.length;
578
+ // if last line is empty we must just increase lineNumber and work with next line
579
+ if (line_length == 0) {
580
+ lineNumber++;
581
+ continue;
582
+ }
583
+ var index = i + line_length - 1 + lineNumber;
584
+ if (index < 0) continue;
585
+
586
+ var lastChar = self.getChildByTag(index);
587
+ if (lastChar == null)
588
+ continue;
589
+ lineWidth = lastChar.getPositionX() + lastChar._getWidth() / 2;
590
+
591
+ var shift = 0;
592
+ switch (self._alignment) {
593
+ case cc.TEXT_ALIGNMENT_CENTER:
594
+ shift = self.width / 2 - lineWidth / 2;
595
+ break;
596
+ case cc.TEXT_ALIGNMENT_RIGHT:
597
+ shift = self.width - lineWidth;
598
+ break;
599
+ default:
600
+ break;
601
+ }
602
+
603
+ if (shift != 0) {
604
+ for (j = 0; j < line_length; j++) {
605
+ index = i + j + lineNumber;
606
+ if (index < 0) continue;
607
+ characterSprite = self.getChildByTag(index);
608
+ if (characterSprite)
609
+ characterSprite.x += shift;
610
+ }
611
+ }
612
+
613
+ i += line_length;
614
+ lineNumber++;
615
+
616
+ last_line.length = 0;
617
+ continue;
618
+ }
619
+ last_line.push(self._string[i]);
620
+ }
621
+ }
622
+ },
623
+
624
+ /**
625
+ * Set text alignment.
626
+ * @param {Number} alignment
627
+ */
628
+ setAlignment: function (alignment) {
629
+ this._alignment = alignment;
630
+ this.updateLabel();
631
+ },
632
+
633
+ _getAlignment: function () {
634
+ return this._alignment;
635
+ },
636
+
637
+ /**
638
+ * Set the bounding width. <br />
639
+ * max with display width. The exceeding string will be wrapping.
640
+ * @param {Number} width
641
+ */
642
+ setBoundingWidth: function (width) {
643
+ this._width = width;
644
+ this.updateLabel();
645
+ },
646
+
647
+ _getBoundingWidth: function () {
648
+ return this._width;
649
+ },
650
+
651
+ /**
652
+ * Set the param to change English word warp according to whether the space. <br />
653
+ * default is false.
654
+ * @param {Boolean} breakWithoutSpace
655
+ */
656
+ setLineBreakWithoutSpace: function (breakWithoutSpace) {
657
+ this._lineBreakWithoutSpaces = breakWithoutSpace;
658
+ this.updateLabel();
659
+ },
660
+
661
+ /**
662
+ * Set scale. <br />
663
+ * Input a number, will be decrease or increase the font size. <br />
664
+ * @param {Number} scale
665
+ * @param {Number} [scaleY=null] default is scale
666
+ */
667
+ setScale: function (scale, scaleY) {
668
+ cc.Node.prototype.setScale.call(this, scale, scaleY);
669
+ this.updateLabel();
670
+ },
671
+
672
+ /**
673
+ * Set scale of x. <br />
674
+ * Input a number, will be decrease or increase the font size. <br />
675
+ * Horizontal scale.
676
+ * @param {Number} scaleX
677
+ */
678
+ setScaleX: function (scaleX) {
679
+ cc.Node.prototype.setScaleX.call(this, scaleX);
680
+ this.updateLabel();
681
+ },
682
+
683
+ /**
684
+ * Set scale of x. <br />
685
+ * Input a number, will be decrease or increase the font size. <br />
686
+ * Longitudinal scale.
687
+ * @param {Number} scaleY
688
+ */
689
+ setScaleY: function (scaleY) {
690
+ cc.Node.prototype.setScaleY.call(this, scaleY);
691
+ this.updateLabel();
692
+ },
693
+
694
+ /**
695
+ * set fnt file path. <br />
696
+ * Change the fnt file path.
697
+ * @param {String} fntFile
698
+ */
699
+ setFntFile: function (fntFile) {
700
+ var self = this;
701
+ if (fntFile != null && fntFile != self._fntFile) {
702
+ var newConf = cc.loader.getRes(fntFile);
703
+
704
+ if (!newConf) {
705
+ cc.log("cc.LabelBMFont.setFntFile() : Impossible to create font. Please check file");
706
+ return;
707
+ }
708
+
709
+ self._fntFile = fntFile;
710
+ self._config = newConf;
711
+
712
+ var texture = cc.textureCache.addImage(newConf.atlasName);
713
+ var locIsLoaded = texture.isLoaded();
714
+ self._textureLoaded = locIsLoaded;
715
+ self.texture = texture;
716
+ this._renderCmd._updateFntFileTexture();
717
+ if (!locIsLoaded) {
718
+ texture.addEventListener("load", function (sender) {
719
+ var self1 = this;
720
+ self1._textureLoaded = true;
721
+ self1.texture = sender;
722
+ self1.createFontChars();
723
+ self1._changeTextureColor();
724
+ self1.updateLabel();
725
+
726
+ self1.dispatchEvent("load");
727
+ }, self);
728
+ } else {
729
+ self.createFontChars();
730
+ }
731
+ }
732
+ },
733
+
734
+ /**
735
+ * Return the fnt file path.
736
+ * @return {String}
737
+ */
738
+ getFntFile: function () {
739
+ return this._fntFile;
740
+ },
741
+
742
+ setTexture: function(texture){
743
+ this._renderCmd.setTexture(texture);
744
+ },
745
+
746
+ /**
747
+ * Set the AnchorPoint of the labelBMFont. <br />
748
+ * In order to change the location of label.
749
+ * @override
750
+ * @param {cc.Point|Number} point The anchor point of labelBMFont or The anchor point.x of labelBMFont.
751
+ * @param {Number} [y] The anchor point.y of labelBMFont.
752
+ */
753
+ setAnchorPoint: function (point, y) {
754
+ cc.Node.prototype.setAnchorPoint.call(this, point, y);
755
+ this.updateLabel();
756
+ },
757
+
758
+ _setAnchorX: function (x) {
759
+ cc.Node.prototype._setAnchorX.call(this, x);
760
+ this.updateLabel();
761
+ },
762
+
763
+ _setAnchorY: function (y) {
764
+ cc.Node.prototype._setAnchorY.call(this, y);
765
+ this.updateLabel();
766
+ },
767
+
768
+ _atlasNameFromFntFile: function (fntFile) {},
769
+
770
+ _kerningAmountForFirst: function (first, second) {
771
+ var ret = 0;
772
+ var key = (first << 16) | (second & 0xffff);
773
+ if (this._configuration.kerningDictionary) {
774
+ var element = this._configuration.kerningDictionary[key.toString()];
775
+ if (element)
776
+ ret = element.amount;
777
+ }
778
+ return ret;
779
+ },
780
+
781
+ _getLetterPosXLeft: function (sp) {
782
+ return sp.getPositionX() * this._scaleX - (sp._getWidth() * this._scaleX * sp._getAnchorX());
783
+ },
784
+
785
+ _getLetterPosXRight: function (sp) {
786
+ return sp.getPositionX() * this._scaleX + (sp._getWidth() * this._scaleX * sp._getAnchorX());
787
+ },
788
+
789
+ //Checking whether the character is a whitespace
790
+ _isspace_unicode: function(ch){
791
+ ch = ch.charCodeAt(0);
792
+ return ((ch >= 9 && ch <= 13) || ch == 32 || ch == 133 || ch == 160 || ch == 5760
793
+ || (ch >= 8192 && ch <= 8202) || ch == 8232 || ch == 8233 || ch == 8239
794
+ || ch == 8287 || ch == 12288)
795
+ },
796
+
797
+ _utf8_trim_ws: function(str){
798
+ var len = str.length;
799
+
800
+ if (len <= 0)
801
+ return;
802
+
803
+ var last_index = len - 1;
804
+
805
+ // Only start trimming if the last character is whitespace..
806
+ if (this._isspace_unicode(str[last_index])) {
807
+ for (var i = last_index - 1; i >= 0; --i) {
808
+ if (this._isspace_unicode(str[i])) {
809
+ last_index = i;
810
+ }
811
+ else {
812
+ break;
813
+ }
814
+ }
815
+ this._utf8_trim_from(str, last_index);
816
+ }
817
+ },
818
+
819
+ //Trims str st str=[0, index) after the operation.
820
+ //Return value: the trimmed string.
821
+ _utf8_trim_from: function(str, index){
822
+ var len = str.length;
823
+ if (index >= len || index < 0)
824
+ return;
825
+ str.splice(index, len);
826
+ }
827
+ });
828
+
829
+ (function(){
830
+ var p = cc.LabelBMFont.prototype;
831
+ cc.EventHelper.prototype.apply(p);
832
+
833
+ /** @expose */
834
+ p.string;
835
+ cc.defineGetterSetter(p, "string", p.getString, p._setStringForSetter);
836
+ /** @expose */
837
+ p.boundingWidth;
838
+ cc.defineGetterSetter(p, "boundingWidth", p._getBoundingWidth, p.setBoundingWidth);
839
+ /** @expose */
840
+ p.textAlign;
841
+ cc.defineGetterSetter(p, "textAlign", p._getAlignment, p.setAlignment);
842
+ })();
843
+
844
+ /**
845
+ * creates a bitmap font atlas with an initial string and the FNT file
846
+ * @deprecated since v3.0 please use new cc.LabelBMFont
847
+ * @param {String} str
848
+ * @param {String} fntFile
849
+ * @param {Number} [width=-1]
850
+ * @param {Number} [alignment=cc.TEXT_ALIGNMENT_LEFT]
851
+ * @param {cc.Point} [imageOffset=cc.p(0,0)]
852
+ * @return {cc.LabelBMFont|Null}
853
+ */
854
+ cc.LabelBMFont.create = function (str, fntFile, width, alignment, imageOffset) {
855
+ return new cc.LabelBMFont(str, fntFile, width, alignment, imageOffset);
856
+ };
857
+
858
+ cc._fntLoader = {
859
+ INFO_EXP: /info [^\n]*(\n|$)/gi,
860
+ COMMON_EXP: /common [^\n]*(\n|$)/gi,
861
+ PAGE_EXP: /page [^\n]*(\n|$)/gi,
862
+ CHAR_EXP: /char [^\n]*(\n|$)/gi,
863
+ KERNING_EXP: /kerning [^\n]*(\n|$)/gi,
864
+ ITEM_EXP: /\w+=[^ \r\n]+/gi,
865
+ INT_EXP: /^[\-]?\d+$/,
866
+
867
+ _parseStrToObj: function (str) {
868
+ var arr = str.match(this.ITEM_EXP);
869
+ var obj = {};
870
+ if (arr) {
871
+ for (var i = 0, li = arr.length; i < li; i++) {
872
+ var tempStr = arr[i];
873
+ var index = tempStr.indexOf("=");
874
+ var key = tempStr.substring(0, index);
875
+ var value = tempStr.substring(index + 1);
876
+ if (value.match(this.INT_EXP)) value = parseInt(value);
877
+ else if (value[0] == '"') value = value.substring(1, value.length - 1);
878
+ obj[key] = value;
879
+ }
880
+ }
881
+ return obj;
882
+ },
883
+
884
+ /**
885
+ * Parse Fnt string.
886
+ * @param fntStr
887
+ * @param url
888
+ * @returns {{}}
889
+ */
890
+ parseFnt: function (fntStr, url) {
891
+ var self = this, fnt = {};
892
+ //padding
893
+ var infoObj = self._parseStrToObj(fntStr.match(self.INFO_EXP)[0]);
894
+ var paddingArr = infoObj["padding"].split(",");
895
+ var padding = {
896
+ left: parseInt(paddingArr[0]),
897
+ top: parseInt(paddingArr[1]),
898
+ right: parseInt(paddingArr[2]),
899
+ bottom: parseInt(paddingArr[3])
900
+ };
901
+
902
+ //common
903
+ var commonObj = self._parseStrToObj(fntStr.match(self.COMMON_EXP)[0]);
904
+ fnt.commonHeight = commonObj["lineHeight"];
905
+ if (cc._renderType === cc._RENDER_TYPE_WEBGL) {
906
+ var texSize = cc.configuration.getMaxTextureSize();
907
+ if (commonObj["scaleW"] > texSize.width || commonObj["scaleH"] > texSize.height)
908
+ cc.log("cc.LabelBMFont._parseCommonArguments(): page can't be larger than supported");
909
+ }
910
+ if (commonObj["pages"] !== 1) cc.log("cc.LabelBMFont._parseCommonArguments(): only supports 1 page");
911
+
912
+ //page
913
+ var pageObj = self._parseStrToObj(fntStr.match(self.PAGE_EXP)[0]);
914
+ if (pageObj["id"] !== 0) cc.log("cc.LabelBMFont._parseImageFileName() : file could not be found");
915
+ fnt.atlasName = cc.path.changeBasename(url, pageObj["file"]);
916
+
917
+ //char
918
+ var charLines = fntStr.match(self.CHAR_EXP);
919
+ var fontDefDictionary = fnt.fontDefDictionary = {};
920
+ for (var i = 0, li = charLines.length; i < li; i++) {
921
+ var charObj = self._parseStrToObj(charLines[i]);
922
+ var charId = charObj["id"];
923
+ fontDefDictionary[charId] = {
924
+ rect: {x: charObj["x"], y: charObj["y"], width: charObj["width"], height: charObj["height"]},
925
+ xOffset: charObj["xoffset"],
926
+ yOffset: charObj["yoffset"],
927
+ xAdvance: charObj["xadvance"]
928
+ };
929
+ }
930
+
931
+ //kerning
932
+ var kerningDict = fnt.kerningDict = {};
933
+ var kerningLines = fntStr.match(self.KERNING_EXP);
934
+ if (kerningLines) {
935
+ for (var i = 0, li = kerningLines.length; i < li; i++) {
936
+ var kerningObj = self._parseStrToObj(kerningLines[i]);
937
+ kerningDict[(kerningObj["first"] << 16) | (kerningObj["second"] & 0xffff)] = kerningObj["amount"];
938
+ }
939
+ }
940
+ return fnt;
941
+ },
942
+
943
+ /**
944
+ * load the fnt
945
+ * @param realUrl
946
+ * @param url
947
+ * @param res
948
+ * @param cb
949
+ */
950
+ load: function (realUrl, url, res, cb) {
951
+ var self = this;
952
+ cc.loader.loadTxt(realUrl, function (err, txt) {
953
+ if (err) return cb(err);
954
+ cb(null, self.parseFnt(txt, url));
955
+ });
956
+ }
957
+ };
958
+ cc.loader.register(["fnt"], cc._fntLoader);