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,827 @@
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
+ Copyright (c) 2010 Sangwoo Im
6
+
7
+ http://www.cocos2d-x.org
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+ ****************************************************************************/
27
+
28
+ /**
29
+ * @ignore
30
+ */
31
+ cc.SCROLLVIEW_DIRECTION_NONE = -1;
32
+
33
+ cc.SCROLLVIEW_DIRECTION_HORIZONTAL = 0;
34
+
35
+ cc.SCROLLVIEW_DIRECTION_VERTICAL = 1;
36
+
37
+ cc.SCROLLVIEW_DIRECTION_BOTH = 2;
38
+
39
+ var SCROLL_DEACCEL_RATE = 0.95;
40
+ var SCROLL_DEACCEL_DIST = 1.0;
41
+ var BOUNCE_DURATION = 0.15;
42
+ var INSET_RATIO = 0.2;
43
+ var MOVE_INCH = 7.0/160.0;
44
+ var BOUNCE_BACK_FACTOR = 0.35;
45
+
46
+ cc.convertDistanceFromPointToInch = function(pointDis){
47
+ var eglViewer = cc.view;
48
+ var factor = (eglViewer.getScaleX() + eglViewer.getScaleY())/2;
49
+ return (pointDis * factor) / 160; // CCDevice::getDPI() default value
50
+ };
51
+
52
+ cc.ScrollViewDelegate = cc.Class.extend({
53
+ scrollViewDidScroll:function (view) {
54
+ },
55
+ scrollViewDidZoom:function (view) {
56
+ }
57
+ });
58
+
59
+ /**
60
+ * ScrollView support for cocos2d -x.
61
+ * It provides scroll view functionalities to cocos2d projects natively.
62
+ * @class
63
+ * @extends cc.Layer
64
+ *
65
+ * @property {cc.Point} minOffset - <@readonly> The current container's minimum offset
66
+ * @property {cc.Point} maxOffset - <@readonly> The current container's maximum offset
67
+ * @property {Boolean} bounceable - Indicate whether the scroll view is bounceable
68
+ * @property {cc.Size} viewSize - The size of the scroll view
69
+ * @property {cc.Layer} container - The inside container of the scroll view
70
+ * @property {Number} direction - The direction allowed to scroll: cc.SCROLLVIEW_DIRECTION_BOTH by default, or cc.SCROLLVIEW_DIRECTION_NONE | cc.SCROLLVIEW_DIRECTION_HORIZONTAL | cc.SCROLLVIEW_DIRECTION_VERTICAL
71
+ * @property {cc.ScrollViewDelegate} delegate - The inside container of the scroll view
72
+ * @property {Boolean} clippingToBounds - Indicate whether the scroll view clips its children
73
+ */
74
+ cc.ScrollView = cc.Layer.extend(/** @lends cc.ScrollView# */{
75
+ _zoomScale:0,
76
+ _minZoomScale:0,
77
+ _maxZoomScale:0,
78
+ _delegate:null,
79
+ _direction:cc.SCROLLVIEW_DIRECTION_BOTH,
80
+ _dragging:false,
81
+ _contentOffset:null,
82
+ _container:null,
83
+ _touchMoved:false,
84
+ _maxInset:null,
85
+ _minInset:null,
86
+ _bounceable:false,
87
+ _clippingToBounds:false,
88
+ _scrollDistance:null,
89
+ _touchPoint:null,
90
+ _touchLength:0,
91
+ _touches:null,
92
+ _viewSize:null,
93
+ _minScale:0,
94
+ _maxScale:0,
95
+
96
+ //scissor rect for parent, just for restoring GL_SCISSOR_BOX
97
+ _parentScissorRect:null,
98
+ _scissorRestored:false,
99
+
100
+ // cache object
101
+ _tmpViewRect:null,
102
+ _touchListener: null,
103
+ _className:"ScrollView",
104
+
105
+ /**
106
+ * @contructor
107
+ * @param size
108
+ * @param container
109
+ * @returns {ScrollView}
110
+ */
111
+ ctor:function (size, container) {
112
+ cc.Layer.prototype.ctor.call(this);
113
+ this._contentOffset = cc.p(0,0);
114
+ this._maxInset = cc.p(0, 0);
115
+ this._minInset = cc.p(0, 0);
116
+ this._scrollDistance = cc.p(0, 0);
117
+ this._touchPoint = cc.p(0, 0);
118
+ this._touches = [];
119
+ this._viewSize = cc.size(0, 0);
120
+ this._parentScissorRect = new cc.Rect(0,0,0,0);
121
+ this._tmpViewRect = new cc.Rect(0,0,0,0);
122
+
123
+ if(container != undefined)
124
+ this.initWithViewSize(size, container);
125
+ else
126
+ this.initWithViewSize(cc.size(200, 200), null);
127
+
128
+ },
129
+
130
+ init:function () {
131
+ return this.initWithViewSize(cc.size(200, 200), null);
132
+ },
133
+
134
+ /**
135
+ * initialized whether success or fail
136
+ * @param {cc.Size} size
137
+ * @param {cc.Node} container
138
+ * @return {Boolean}
139
+ */
140
+ initWithViewSize:function (size, container) {
141
+ var pZero = cc.p(0,0);
142
+ if (cc.Layer.prototype.init.call(this)) {
143
+ this._container = container;
144
+
145
+ if (!this._container) {
146
+ this._container = new cc.Layer();
147
+ this._container.ignoreAnchorPointForPosition(false);
148
+ this._container.setAnchorPoint(pZero);
149
+ }
150
+
151
+ this.setViewSize(size);
152
+
153
+ this.setTouchEnabled(true);
154
+ this._touches.length = 0;
155
+ this._delegate = null;
156
+ this._bounceable = true;
157
+ this._clippingToBounds = true;
158
+
159
+ //this._container.setContentSize(CCSizeZero);
160
+ this._direction = cc.SCROLLVIEW_DIRECTION_BOTH;
161
+ this._container.setPosition(pZero);
162
+ this._touchLength = 0.0;
163
+
164
+ this.addChild(this._container);
165
+ this._minScale = this._maxScale = 1.0;
166
+ return true;
167
+ }
168
+ return false;
169
+ },
170
+
171
+ /**
172
+ * Sets a new content offset. It ignores max/min offset. It just sets what's given. (just like UIKit's UIScrollView)
173
+ *
174
+ * @param {cc.Point} offset new offset
175
+ * @param {Number} [animated=] If true, the view will scroll to the new offset
176
+ */
177
+ setContentOffset: function (offset, animated) {
178
+ if (animated) { //animate scrolling
179
+ this.setContentOffsetInDuration(offset, BOUNCE_DURATION);
180
+ return;
181
+ }
182
+ if (!this._bounceable) {
183
+ var minOffset = this.minContainerOffset();
184
+ var maxOffset = this.maxContainerOffset();
185
+
186
+ offset.x = Math.max(minOffset.x, Math.min(maxOffset.x, offset.x));
187
+ offset.y = Math.max(minOffset.y, Math.min(maxOffset.y, offset.y));
188
+ }
189
+
190
+ this._container.setPosition(offset);
191
+ var locDelegate = this._delegate;
192
+ if (locDelegate != null && locDelegate.scrollViewDidScroll) {
193
+ locDelegate.scrollViewDidScroll(this);
194
+ }
195
+
196
+ },
197
+
198
+ getContentOffset:function () {
199
+ var locPos = this._container.getPosition();
200
+ return cc.p(locPos.x, locPos.y);
201
+ },
202
+
203
+ /**
204
+ * <p>Sets a new content offset. It ignores max/min offset. It just sets what's given. (just like UIKit's UIScrollView) <br/>
205
+ * You can override the animation duration with this method.
206
+ * </p>
207
+ * @param {cc.Point} offset new offset
208
+ * @param {Number} dt animation duration
209
+ */
210
+ setContentOffsetInDuration:function (offset, dt) {
211
+ var scroll = cc.moveTo(dt, offset);
212
+ var expire = cc.callFunc(this._stoppedAnimatedScroll, this);
213
+ this._container.runAction(cc.sequence(scroll, expire));
214
+ this.schedule(this._performedAnimatedScroll);
215
+ },
216
+
217
+ /**
218
+ * Sets a new scale and does that for a predefined duration.
219
+ *
220
+ * @param {Number} scale a new scale vale
221
+ * @param {Boolean} [animated=null] if YES, scaling is animated
222
+ */
223
+ setZoomScale: function (scale, animated) {
224
+ if (animated) {
225
+ this.setZoomScaleInDuration(scale, BOUNCE_DURATION);
226
+ return;
227
+ }
228
+
229
+ var locContainer = this._container;
230
+ if (locContainer.getScale() != scale) {
231
+ var oldCenter, newCenter;
232
+ var center;
233
+
234
+ if (this._touchLength == 0.0) {
235
+ var locViewSize = this._viewSize;
236
+ center = cc.p(locViewSize.width * 0.5, locViewSize.height * 0.5);
237
+ center = this.convertToWorldSpace(center);
238
+ } else
239
+ center = this._touchPoint;
240
+
241
+ oldCenter = locContainer.convertToNodeSpace(center);
242
+ locContainer.setScale(Math.max(this._minScale, Math.min(this._maxScale, scale)));
243
+ newCenter = locContainer.convertToWorldSpace(oldCenter);
244
+
245
+ var offset = cc.pSub(center, newCenter);
246
+ if (this._delegate && this._delegate.scrollViewDidZoom)
247
+ this._delegate.scrollViewDidZoom(this);
248
+ this.setContentOffset(cc.pAdd(locContainer.getPosition(), offset));
249
+ }
250
+ },
251
+
252
+ getZoomScale:function () {
253
+ return this._container.getScale();
254
+ },
255
+
256
+ /**
257
+ * Sets a new scale for container in a given duration.
258
+ *
259
+ * @param {Number} s a new scale value
260
+ * @param {Number} dt animation duration
261
+ */
262
+ setZoomScaleInDuration:function (s, dt) {
263
+ if (dt > 0) {
264
+ var locScale = this._container.getScale();
265
+ if (locScale != s) {
266
+ var scaleAction = cc.actionTween(dt, "zoomScale", locScale, s);
267
+ this.runAction(scaleAction);
268
+ }
269
+ } else {
270
+ this.setZoomScale(s);
271
+ }
272
+ },
273
+
274
+ /**
275
+ * Returns the current container's minimum offset. You may want this while you animate scrolling by yourself
276
+ * @return {cc.Point} Returns the current container's minimum offset.
277
+ */
278
+ minContainerOffset:function () {
279
+ var locContainer = this._container;
280
+ var locContentSize = locContainer.getContentSize(), locViewSize = this._viewSize;
281
+ return cc.p(locViewSize.width - locContentSize.width * locContainer.getScaleX(),
282
+ locViewSize.height - locContentSize.height * locContainer.getScaleY());
283
+ },
284
+
285
+ /**
286
+ * Returns the current container's maximum offset. You may want this while you animate scrolling by yourself
287
+ * @return {cc.Point} Returns the current container's maximum offset.
288
+ */
289
+ maxContainerOffset:function () {
290
+ return cc.p(0.0, 0.0);
291
+ },
292
+
293
+ /**
294
+ * Determines if a given node's bounding box is in visible bounds
295
+ * @param {cc.Node} node
296
+ * @return {Boolean} YES if it is in visible bounds
297
+ */
298
+ isNodeVisible:function (node) {
299
+ var offset = this.getContentOffset();
300
+ var size = this.getViewSize();
301
+ var scale = this.getZoomScale();
302
+
303
+ var viewRect = cc.rect(-offset.x / scale, -offset.y / scale, size.width / scale, size.height / scale);
304
+
305
+ return cc.rectIntersectsRect(viewRect, node.getBoundingBox());
306
+ },
307
+
308
+ /**
309
+ * Provided to make scroll view compatible with SWLayer's pause method
310
+ */
311
+ pause:function (sender) {
312
+ this._container.pause();
313
+ var selChildren = this._container.getChildren();
314
+ for (var i = 0; i < selChildren.length; i++) {
315
+ selChildren[i].pause();
316
+ }
317
+ this._super();
318
+ },
319
+
320
+ /**
321
+ * Provided to make scroll view compatible with SWLayer's resume method
322
+ */
323
+ resume:function (sender) {
324
+ var selChildren = this._container.getChildren();
325
+ for (var i = 0, len = selChildren.length; i < len; i++) {
326
+ selChildren[i].resume();
327
+ }
328
+ this._container.resume();
329
+ this._super();
330
+ },
331
+
332
+ isDragging:function () {
333
+ return this._dragging;
334
+ },
335
+ isTouchMoved:function () {
336
+ return this._touchMoved;
337
+ },
338
+ isBounceable:function () {
339
+ return this._bounceable;
340
+ },
341
+ setBounceable:function (bounceable) {
342
+ this._bounceable = bounceable;
343
+ },
344
+
345
+ /**
346
+ * <p>
347
+ * size to clip. CCNode boundingBox uses contentSize directly. <br/>
348
+ * It's semantically different what it actually means to common scroll views. <br/>
349
+ * Hence, this scroll view will use a separate size property.
350
+ * </p>
351
+ */
352
+ getViewSize:function () {
353
+ return this._viewSize;
354
+ },
355
+
356
+ setViewSize:function (size) {
357
+ this._viewSize = size;
358
+ cc.Node.prototype.setContentSize.call(this,size);
359
+ },
360
+
361
+ getContainer:function () {
362
+ return this._container;
363
+ },
364
+
365
+ setContainer:function (container) {
366
+ // Make sure that 'm_pContainer' has a non-NULL value since there are
367
+ // lots of logic that use 'm_pContainer'.
368
+ if (!container)
369
+ return;
370
+
371
+ this.removeAllChildren(true);
372
+
373
+ this._container = container;
374
+ container.ignoreAnchorPointForPosition(false);
375
+ container.setAnchorPoint(0, 0);
376
+
377
+ this.addChild(container);
378
+ this.setViewSize(this._viewSize);
379
+ },
380
+
381
+ /**
382
+ * direction allowed to scroll. CCScrollViewDirectionBoth by default.
383
+ */
384
+ getDirection:function () {
385
+ return this._direction;
386
+ },
387
+ setDirection:function (direction) {
388
+ this._direction = direction;
389
+ },
390
+
391
+ getDelegate:function () {
392
+ return this._delegate;
393
+ },
394
+ setDelegate:function (delegate) {
395
+ this._delegate = delegate;
396
+ },
397
+
398
+ /** override functions */
399
+ // optional
400
+ onTouchBegan:function (touch, event) {
401
+ if (!this.isVisible())
402
+ return false;
403
+ //var frameOriginal = this.getParent().convertToWorldSpace(this.getPosition());
404
+ //var frame = cc.rect(frameOriginal.x, frameOriginal.y, this._viewSize.width, this._viewSize.height);
405
+ var frame = this._getViewRect();
406
+
407
+ //dispatcher does not know about clipping. reject touches outside visible bounds.
408
+ var locContainer = this._container;
409
+ var locPoint = locContainer.convertToWorldSpace(locContainer.convertTouchToNodeSpace(touch));
410
+ var locTouches = this._touches;
411
+ if (locTouches.length > 2 || this._touchMoved || !cc.rectContainsPoint(frame, locPoint))
412
+ return false;
413
+
414
+ locTouches.push(touch);
415
+ //}
416
+
417
+ if (locTouches.length === 1) { // scrolling
418
+ this._touchPoint = this.convertTouchToNodeSpace(touch);
419
+ this._touchMoved = false;
420
+ this._dragging = true; //dragging started
421
+ this._scrollDistance.x = 0;
422
+ this._scrollDistance.y = 0;
423
+ this._touchLength = 0.0;
424
+ } else if (locTouches.length == 2) {
425
+ this._touchPoint = cc.pMidpoint(this.convertTouchToNodeSpace(locTouches[0]),
426
+ this.convertTouchToNodeSpace(locTouches[1]));
427
+ this._touchLength = cc.pDistance(locContainer.convertTouchToNodeSpace(locTouches[0]),
428
+ locContainer.convertTouchToNodeSpace(locTouches[1]));
429
+ this._dragging = false;
430
+ }
431
+ return true;
432
+ },
433
+
434
+ onTouchMoved:function (touch, event) {
435
+ if (!this.isVisible())
436
+ return;
437
+
438
+ this.setNodeDirty();
439
+
440
+ if (this._touches.length === 1 && this._dragging) { // scrolling
441
+ this._touchMoved = true;
442
+ //var frameOriginal = this.getParent().convertToWorldSpace(this.getPosition());
443
+ //var frame = cc.rect(frameOriginal.x, frameOriginal.y, this._viewSize.width, this._viewSize.height);
444
+ var frame = this._getViewRect();
445
+
446
+ //var newPoint = this.convertTouchToNodeSpace(this._touches[0]);
447
+ var newPoint = this.convertTouchToNodeSpace(touch);
448
+ var moveDistance = cc.pSub(newPoint, this._touchPoint);
449
+
450
+ var dis = 0.0, locDirection = this._direction, pos;
451
+ if (locDirection === cc.SCROLLVIEW_DIRECTION_VERTICAL){
452
+ dis = moveDistance.y;
453
+ pos = this._container.getPositionY();
454
+ if (!(this.minContainerOffset().y <= pos && pos <= this.maxContainerOffset().y))
455
+ moveDistance.y *= BOUNCE_BACK_FACTOR;
456
+ } else if (locDirection === cc.SCROLLVIEW_DIRECTION_HORIZONTAL){
457
+ dis = moveDistance.x;
458
+ pos = this._container.getPositionX();
459
+ if (!(this.minContainerOffset().x <= pos && pos <= this.maxContainerOffset().x))
460
+ moveDistance.x *= BOUNCE_BACK_FACTOR;
461
+ }else {
462
+ dis = Math.sqrt(moveDistance.x * moveDistance.x + moveDistance.y * moveDistance.y);
463
+
464
+ pos = this._container.getPositionY();
465
+ var _minOffset = this.minContainerOffset(), _maxOffset = this.maxContainerOffset();
466
+ if (!(_minOffset.y <= pos && pos <= _maxOffset.y))
467
+ moveDistance.y *= BOUNCE_BACK_FACTOR;
468
+
469
+ pos = this._container.getPositionX();
470
+ if (!(_minOffset.x <= pos && pos <= _maxOffset.x))
471
+ moveDistance.x *= BOUNCE_BACK_FACTOR;
472
+ }
473
+
474
+ if (!this._touchMoved && Math.abs(cc.convertDistanceFromPointToInch(dis)) < MOVE_INCH ){
475
+ //CCLOG("Invalid movement, distance = [%f, %f], disInch = %f", moveDistance.x, moveDistance.y);
476
+ return;
477
+ }
478
+
479
+ if (!this._touchMoved){
480
+ moveDistance.x = 0;
481
+ moveDistance.y = 0;
482
+ }
483
+
484
+ this._touchPoint = newPoint;
485
+ this._touchMoved = true;
486
+
487
+ if (this._dragging) {
488
+ switch (locDirection) {
489
+ case cc.SCROLLVIEW_DIRECTION_VERTICAL:
490
+ moveDistance.x = 0.0;
491
+ break;
492
+ case cc.SCROLLVIEW_DIRECTION_HORIZONTAL:
493
+ moveDistance.y = 0.0;
494
+ break;
495
+ default:
496
+ break;
497
+ }
498
+
499
+ var locPosition = this._container.getPosition();
500
+ var newX = locPosition.x + moveDistance.x;
501
+ var newY = locPosition.y + moveDistance.y;
502
+
503
+ this._scrollDistance = moveDistance;
504
+ this.setContentOffset(cc.p(newX, newY));
505
+ }
506
+ } else if (this._touches.length === 2 && !this._dragging) {
507
+ var len = cc.pDistance(this._container.convertTouchToNodeSpace(this._touches[0]),
508
+ this._container.convertTouchToNodeSpace(this._touches[1]));
509
+ this.setZoomScale(this.getZoomScale() * len / this._touchLength);
510
+ }
511
+ },
512
+
513
+ onTouchEnded:function (touch, event) {
514
+ if (!this.isVisible())
515
+ return;
516
+
517
+ if (this._touches.length == 1 && this._touchMoved)
518
+ this.schedule(this._deaccelerateScrolling);
519
+
520
+ this._touches.length = 0;
521
+ this._dragging = false;
522
+ this._touchMoved = false;
523
+ },
524
+
525
+ onTouchCancelled:function (touch, event) {
526
+ if (!this.isVisible())
527
+ return;
528
+
529
+ this._touches.length = 0;
530
+ this._dragging = false;
531
+ this._touchMoved = false;
532
+ },
533
+
534
+ setContentSize: function (size, height) {
535
+ if (this.getContainer() != null) {
536
+ if(height === undefined)
537
+ this.getContainer().setContentSize(size);
538
+ else
539
+ this.getContainer().setContentSize(size, height);
540
+ this.updateInset();
541
+ }
542
+ },
543
+ _setWidth: function (value) {
544
+ var container = this.getContainer();
545
+ if (container != null) {
546
+ container._setWidth(value);
547
+ this.updateInset();
548
+ }
549
+ },
550
+ _setHeight: function (value) {
551
+ var container = this.getContainer();
552
+ if (container != null) {
553
+ container._setHeight(value);
554
+ this.updateInset();
555
+ }
556
+ },
557
+
558
+ getContentSize:function () {
559
+ return this._container.getContentSize();
560
+ },
561
+
562
+ updateInset:function () {
563
+ if (this.getContainer() != null) {
564
+ var locViewSize = this._viewSize;
565
+ var tempOffset = this.maxContainerOffset();
566
+ this._maxInset.x = tempOffset.x + locViewSize.width * INSET_RATIO;
567
+ this._maxInset.y = tempOffset.y + locViewSize.height * INSET_RATIO;
568
+ tempOffset = this.minContainerOffset();
569
+ this._minInset.x = tempOffset.x - locViewSize.width * INSET_RATIO;
570
+ this._minInset.y = tempOffset.y - locViewSize.height * INSET_RATIO;
571
+ }
572
+ },
573
+
574
+ /**
575
+ * Determines whether it clips its children or not.
576
+ */
577
+ isClippingToBounds:function () {
578
+ return this._clippingToBounds;
579
+ },
580
+
581
+ setClippingToBounds:function (clippingToBounds) {
582
+ this._clippingToBounds = clippingToBounds;
583
+ },
584
+
585
+ visit:function (parentCmd) {
586
+ // quick return if not visible
587
+ if (!this.isVisible())
588
+ return;
589
+
590
+ this._renderCmd.visit(parentCmd);
591
+ },
592
+
593
+ addChild:function (child, zOrder, tag) {
594
+ if (!child)
595
+ throw new Error("child must not nil!");
596
+
597
+ zOrder = zOrder || child.getLocalZOrder();
598
+ tag = tag || child.getTag();
599
+
600
+ //child.ignoreAnchorPointForPosition(false);
601
+ //child.setAnchorPoint(0, 0);
602
+ if (this._container != child) {
603
+ this._container.addChild(child, zOrder, tag);
604
+ } else {
605
+ cc.Layer.prototype.addChild.call(this, child, zOrder, tag);
606
+ }
607
+ },
608
+
609
+ isTouchEnabled: function(){
610
+ return this._touchListener != null;
611
+ },
612
+
613
+ setTouchEnabled:function (e) {
614
+ if(this._touchListener)
615
+ cc.eventManager.removeListener(this._touchListener);
616
+ this._touchListener = null;
617
+ if (!e) {
618
+ this._dragging = false;
619
+ this._touchMoved = false;
620
+ this._touches.length = 0;
621
+ } else {
622
+ var listener = cc.EventListener.create({
623
+ event: cc.EventListener.TOUCH_ONE_BY_ONE
624
+ });
625
+ if(this.onTouchBegan)
626
+ listener.onTouchBegan = this.onTouchBegan.bind(this);
627
+ if(this.onTouchMoved)
628
+ listener.onTouchMoved = this.onTouchMoved.bind(this);
629
+ if(this.onTouchEnded)
630
+ listener.onTouchEnded = this.onTouchEnded.bind(this);
631
+ if(this.onTouchCancelled)
632
+ listener.onTouchCancelled = this.onTouchCancelled.bind(this);
633
+ this._touchListener = listener;
634
+ cc.eventManager.addListener(listener, this);
635
+ }
636
+ },
637
+
638
+ /**
639
+ * Init this object with a given size to clip its content.
640
+ *
641
+ * @param size view size
642
+ * @return initialized scroll view object
643
+ */
644
+ _initWithViewSize:function (size) {
645
+ return null;
646
+ },
647
+
648
+ /**
649
+ * Relocates the container at the proper offset, in bounds of max/min offsets.
650
+ *
651
+ * @param animated If YES, relocation is animated
652
+ */
653
+ _relocateContainer:function (animated) {
654
+ var min = this.minContainerOffset();
655
+ var max = this.maxContainerOffset();
656
+ var locDirection = this._direction;
657
+
658
+ var oldPoint = this._container.getPosition();
659
+ var newX = oldPoint.x;
660
+ var newY = oldPoint.y;
661
+ if (locDirection === cc.SCROLLVIEW_DIRECTION_BOTH || locDirection === cc.SCROLLVIEW_DIRECTION_HORIZONTAL) {
662
+ newX = Math.max(newX, min.x);
663
+ newX = Math.min(newX, max.x);
664
+ }
665
+
666
+ if (locDirection == cc.SCROLLVIEW_DIRECTION_BOTH || locDirection == cc.SCROLLVIEW_DIRECTION_VERTICAL) {
667
+ newY = Math.min(newY, max.y);
668
+ newY = Math.max(newY, min.y);
669
+ }
670
+
671
+ if (newY != oldPoint.y || newX != oldPoint.x) {
672
+ this.setContentOffset(cc.p(newX, newY), animated);
673
+ }
674
+ },
675
+ /**
676
+ * implements auto-scrolling behavior. change SCROLL_DEACCEL_RATE as needed to choose <br/>
677
+ * deacceleration speed. it must be less than 1.0.
678
+ *
679
+ * @param {Number} dt delta
680
+ */
681
+ _deaccelerateScrolling:function (dt) {
682
+ if (this._dragging) {
683
+ this.unschedule(this._deaccelerateScrolling);
684
+ return;
685
+ }
686
+
687
+ var maxInset, minInset;
688
+ var oldPosition = this._container.getPosition();
689
+ var locScrollDistance = this._scrollDistance;
690
+ this._container.setPosition(oldPosition.x + locScrollDistance.x , oldPosition.y + locScrollDistance.y);
691
+ if (this._bounceable) {
692
+ maxInset = this._maxInset;
693
+ minInset = this._minInset;
694
+ } else {
695
+ maxInset = this.maxContainerOffset();
696
+ minInset = this.minContainerOffset();
697
+ }
698
+
699
+ //check to see if offset lies within the inset bounds
700
+ var newX = this._container.getPositionX();
701
+ var newY = this._container.getPositionY();
702
+
703
+ locScrollDistance.x = locScrollDistance.x * SCROLL_DEACCEL_RATE;
704
+ locScrollDistance.y = locScrollDistance.y * SCROLL_DEACCEL_RATE;
705
+
706
+ this.setContentOffset(cc.p(newX, newY));
707
+
708
+ if ((Math.abs(locScrollDistance.x) <= SCROLL_DEACCEL_DIST &&
709
+ Math.abs(locScrollDistance.y) <= SCROLL_DEACCEL_DIST) ||
710
+ newY > maxInset.y || newY < minInset.y ||
711
+ newX > maxInset.x || newX < minInset.x ||
712
+ newX == maxInset.x || newX == minInset.x ||
713
+ newY == maxInset.y || newY == minInset.y) {
714
+ this.unschedule(this._deaccelerateScrolling);
715
+ this._relocateContainer(true);
716
+ }
717
+ },
718
+ /**
719
+ * This method makes sure auto scrolling causes delegate to invoke its method
720
+ */
721
+ _performedAnimatedScroll:function (dt) {
722
+ if (this._dragging) {
723
+ this.unschedule(this._performedAnimatedScroll);
724
+ return;
725
+ }
726
+
727
+ if (this._delegate && this._delegate.scrollViewDidScroll)
728
+ this._delegate.scrollViewDidScroll(this);
729
+ },
730
+ /**
731
+ * Expire animated scroll delegate calls
732
+ */
733
+ _stoppedAnimatedScroll:function (node) {
734
+ this.unschedule(this._performedAnimatedScroll);
735
+ // After the animation stopped, "scrollViewDidScroll" should be invoked, this could fix the bug of lack of tableview cells.
736
+ if (this._delegate && this._delegate.scrollViewDidScroll) {
737
+ this._delegate.scrollViewDidScroll(this);
738
+ }
739
+ },
740
+
741
+ /**
742
+ * Zoom handling
743
+ */
744
+ _handleZoom:function () {
745
+ },
746
+
747
+ _getViewRect:function(){
748
+ var screenPos = this.convertToWorldSpace(cc.p(0,0));
749
+ var locViewSize = this._viewSize;
750
+
751
+ var scaleX = this.getScaleX();
752
+ var scaleY = this.getScaleY();
753
+
754
+ for (var p = this._parent; p != null; p = p.getParent()) {
755
+ scaleX *= p.getScaleX();
756
+ scaleY *= p.getScaleY();
757
+ }
758
+
759
+ // Support negative scaling. Not doing so causes intersectsRect calls
760
+ // (eg: to check if the touch was within the bounds) to return false.
761
+ // Note, CCNode::getScale will assert if X and Y scales are different.
762
+ if (scaleX < 0) {
763
+ screenPos.x += locViewSize.width * scaleX;
764
+ scaleX = -scaleX;
765
+ }
766
+ if (scaleY < 0) {
767
+ screenPos.y += locViewSize.height * scaleY;
768
+ scaleY = -scaleY;
769
+ }
770
+
771
+ var locViewRect = this._tmpViewRect;
772
+ locViewRect.x = screenPos.x;
773
+ locViewRect.y = screenPos.y;
774
+ locViewRect.width = locViewSize.width * scaleX;
775
+ locViewRect.height = locViewSize.height * scaleY;
776
+ return locViewRect;
777
+ },
778
+
779
+ _createRenderCmd: function(){
780
+ if (cc._renderType === cc._RENDER_TYPE_CANVAS) {
781
+ return new cc.ScrollView.CanvasRenderCmd(this);
782
+ } else {
783
+ return new cc.ScrollView.WebGLRenderCmd(this);
784
+ }
785
+ }
786
+ });
787
+
788
+ var _p = cc.ScrollView.prototype;
789
+
790
+ // Extended properties
791
+ /** @expose */
792
+ _p.minOffset;
793
+ cc.defineGetterSetter(_p, "minOffset", _p.minContainerOffset);
794
+ /** @expose */
795
+ _p.maxOffset;
796
+ cc.defineGetterSetter(_p, "maxOffset", _p.maxContainerOffset);
797
+ /** @expose */
798
+ _p.bounceable;
799
+ cc.defineGetterSetter(_p, "bounceable", _p.isBounceable, _p.setBounceable);
800
+ /** @expose */
801
+ _p.viewSize;
802
+ cc.defineGetterSetter(_p, "viewSize", _p.getViewSize, _p.setViewSize);
803
+ /** @expose */
804
+ _p.container;
805
+ cc.defineGetterSetter(_p, "container", _p.getContainer, _p.setContainer);
806
+ /** @expose */
807
+ _p.direction;
808
+ cc.defineGetterSetter(_p, "direction", _p.getDirection, _p.setDirection);
809
+ /** @expose */
810
+ _p.delegate;
811
+ cc.defineGetterSetter(_p, "delegate", _p.getDelegate, _p.setDelegate);
812
+ /** @expose */
813
+ _p.clippingToBounds;
814
+ cc.defineGetterSetter(_p, "clippingToBounds", _p.isClippingToBounds, _p.setClippingToBounds);
815
+
816
+ _p = null;
817
+
818
+ /**
819
+ * Returns an autoreleased scroll view object.
820
+ * @deprecated
821
+ * @param {cc.Size} size view size
822
+ * @param {cc.Node} container parent object
823
+ * @return {cc.ScrollView} scroll view object
824
+ */
825
+ cc.ScrollView.create = function (size, container) {
826
+ return new cc.ScrollView(size, container);
827
+ };