From 2d86803124a1246a66b8e9f286b1a7cb75e97059 Mon Sep 17 00:00:00 2001 From: 06wj <06wj@163.com> Date: Wed, 8 Aug 2018 15:57:32 +0800 Subject: [PATCH] build: 1.2.0 --- build/amd/hilo-amd.js | 286 +- build/amd/hilo-amd.min.js | 8 +- build/amd/hilo-amd.zip | Bin 187244 -> 188643 bytes build/amd/hilo/core/Class.js | 2 +- build/amd/hilo/core/Class.min.js | 2 +- build/amd/hilo/core/Hilo.js | 23 +- build/amd/hilo/core/Hilo.min.js | 4 +- build/amd/hilo/event/EventMixin.js | 2 +- build/amd/hilo/event/EventMixin.min.js | 2 +- build/amd/hilo/game/Camera.js | 2 +- build/amd/hilo/game/Camera.min.js | 2 +- build/amd/hilo/game/Camera3d.js | 2 +- build/amd/hilo/game/Camera3d.min.js | 2 +- build/amd/hilo/game/ParticleSystem.js | 2 +- build/amd/hilo/game/ParticleSystem.min.js | 2 +- build/amd/hilo/geom/Matrix.js | 46 +- build/amd/hilo/geom/Matrix.min.js | 4 +- build/amd/hilo/loader/ImageLoader.js | 2 +- build/amd/hilo/loader/ImageLoader.min.js | 2 +- build/amd/hilo/loader/LoadQueue.js | 3 +- build/amd/hilo/loader/LoadQueue.min.js | 2 +- build/amd/hilo/loader/ScriptLoader.js | 2 +- build/amd/hilo/loader/ScriptLoader.min.js | 2 +- build/amd/hilo/media/HTMLAudio.js | 2 +- build/amd/hilo/media/HTMLAudio.min.js | 2 +- build/amd/hilo/media/WebAudio.js | 2 +- build/amd/hilo/media/WebAudio.min.js | 2 +- build/amd/hilo/media/WebSound.js | 2 +- build/amd/hilo/media/WebSound.min.js | 2 +- build/amd/hilo/renderer/CanvasRenderer.js | 87 +- build/amd/hilo/renderer/CanvasRenderer.min.js | 4 +- build/amd/hilo/renderer/DOMRenderer.js | 2 +- build/amd/hilo/renderer/DOMRenderer.min.js | 2 +- build/amd/hilo/renderer/Renderer.js | 2 +- build/amd/hilo/renderer/Renderer.min.js | 2 +- build/amd/hilo/renderer/WebGLRenderer.js | 33 +- build/amd/hilo/renderer/WebGLRenderer.min.js | 4 +- build/amd/hilo/tween/Ease.js | 2 +- build/amd/hilo/tween/Ease.min.js | 2 +- build/amd/hilo/tween/Tween.js | 2 +- build/amd/hilo/tween/Tween.min.js | 2 +- build/amd/hilo/util/TextureAtlas.js | 2 +- build/amd/hilo/util/TextureAtlas.min.js | 2 +- build/amd/hilo/util/Ticker.js | 2 +- build/amd/hilo/util/Ticker.min.js | 2 +- build/amd/hilo/util/browser.js | 2 +- build/amd/hilo/util/browser.min.js | 2 +- build/amd/hilo/util/drag.js | 2 +- build/amd/hilo/util/drag.min.js | 2 +- build/amd/hilo/util/polyfill.js | 2 +- build/amd/hilo/util/polyfill.min.js | 2 +- build/amd/hilo/util/util.js | 2 +- build/amd/hilo/util/util.min.js | 2 +- build/amd/hilo/view/Bitmap.js | 2 +- build/amd/hilo/view/Bitmap.min.js | 2 +- build/amd/hilo/view/BitmapText.js | 2 +- build/amd/hilo/view/BitmapText.min.js | 2 +- build/amd/hilo/view/Button.js | 2 +- build/amd/hilo/view/Button.min.js | 2 +- build/amd/hilo/view/CacheMixin.js | 2 +- build/amd/hilo/view/CacheMixin.min.js | 2 +- build/amd/hilo/view/Container.js | 2 +- build/amd/hilo/view/Container.min.js | 2 +- build/amd/hilo/view/DOMElement.js | 5 +- build/amd/hilo/view/DOMElement.min.js | 4 +- build/amd/hilo/view/Drawable.js | 2 +- build/amd/hilo/view/Drawable.min.js | 2 +- build/amd/hilo/view/Graphics.js | 2 +- build/amd/hilo/view/Graphics.min.js | 2 +- build/amd/hilo/view/Sprite.js | 2 +- build/amd/hilo/view/Sprite.min.js | 2 +- build/amd/hilo/view/Stage.js | 2 +- build/amd/hilo/view/Stage.min.js | 2 +- build/amd/hilo/view/Text.js | 2 +- build/amd/hilo/view/Text.min.js | 2 +- build/amd/hilo/view/View.js | 29 +- build/amd/hilo/view/View.min.js | 4 +- build/cmd/hilo-cmd.js | 286 +- build/cmd/hilo-cmd.min.js | 8 +- build/cmd/hilo-cmd.zip | Bin 187183 -> 188584 bytes build/cmd/hilo/core/Class.js | 2 +- build/cmd/hilo/core/Class.min.js | 2 +- build/cmd/hilo/core/Hilo.js | 23 +- build/cmd/hilo/core/Hilo.min.js | 4 +- build/cmd/hilo/event/EventMixin.js | 2 +- build/cmd/hilo/event/EventMixin.min.js | 2 +- build/cmd/hilo/game/Camera.js | 2 +- build/cmd/hilo/game/Camera.min.js | 2 +- build/cmd/hilo/game/Camera3d.js | 2 +- build/cmd/hilo/game/Camera3d.min.js | 2 +- build/cmd/hilo/game/ParticleSystem.js | 2 +- build/cmd/hilo/game/ParticleSystem.min.js | 2 +- build/cmd/hilo/geom/Matrix.js | 46 +- build/cmd/hilo/geom/Matrix.min.js | 4 +- build/cmd/hilo/loader/ImageLoader.js | 2 +- build/cmd/hilo/loader/ImageLoader.min.js | 2 +- build/cmd/hilo/loader/LoadQueue.js | 3 +- build/cmd/hilo/loader/LoadQueue.min.js | 2 +- build/cmd/hilo/loader/ScriptLoader.js | 2 +- build/cmd/hilo/loader/ScriptLoader.min.js | 2 +- build/cmd/hilo/media/HTMLAudio.js | 2 +- build/cmd/hilo/media/HTMLAudio.min.js | 2 +- build/cmd/hilo/media/WebAudio.js | 2 +- build/cmd/hilo/media/WebAudio.min.js | 2 +- build/cmd/hilo/media/WebSound.js | 2 +- build/cmd/hilo/media/WebSound.min.js | 2 +- build/cmd/hilo/renderer/CanvasRenderer.js | 87 +- build/cmd/hilo/renderer/CanvasRenderer.min.js | 4 +- build/cmd/hilo/renderer/DOMRenderer.js | 2 +- build/cmd/hilo/renderer/DOMRenderer.min.js | 2 +- build/cmd/hilo/renderer/Renderer.js | 2 +- build/cmd/hilo/renderer/Renderer.min.js | 2 +- build/cmd/hilo/renderer/WebGLRenderer.js | 33 +- build/cmd/hilo/renderer/WebGLRenderer.min.js | 4 +- build/cmd/hilo/tween/Ease.js | 2 +- build/cmd/hilo/tween/Ease.min.js | 2 +- build/cmd/hilo/tween/Tween.js | 2 +- build/cmd/hilo/tween/Tween.min.js | 2 +- build/cmd/hilo/util/TextureAtlas.js | 2 +- build/cmd/hilo/util/TextureAtlas.min.js | 2 +- build/cmd/hilo/util/Ticker.js | 2 +- build/cmd/hilo/util/Ticker.min.js | 2 +- build/cmd/hilo/util/browser.js | 2 +- build/cmd/hilo/util/browser.min.js | 2 +- build/cmd/hilo/util/drag.js | 2 +- build/cmd/hilo/util/drag.min.js | 2 +- build/cmd/hilo/util/polyfill.js | 2 +- build/cmd/hilo/util/polyfill.min.js | 2 +- build/cmd/hilo/util/util.js | 2 +- build/cmd/hilo/util/util.min.js | 2 +- build/cmd/hilo/view/Bitmap.js | 2 +- build/cmd/hilo/view/Bitmap.min.js | 2 +- build/cmd/hilo/view/BitmapText.js | 2 +- build/cmd/hilo/view/BitmapText.min.js | 2 +- build/cmd/hilo/view/Button.js | 2 +- build/cmd/hilo/view/Button.min.js | 2 +- build/cmd/hilo/view/CacheMixin.js | 2 +- build/cmd/hilo/view/CacheMixin.min.js | 2 +- build/cmd/hilo/view/Container.js | 2 +- build/cmd/hilo/view/Container.min.js | 2 +- build/cmd/hilo/view/DOMElement.js | 5 +- build/cmd/hilo/view/DOMElement.min.js | 4 +- build/cmd/hilo/view/Drawable.js | 2 +- build/cmd/hilo/view/Drawable.min.js | 2 +- build/cmd/hilo/view/Graphics.js | 2 +- build/cmd/hilo/view/Graphics.min.js | 2 +- build/cmd/hilo/view/Sprite.js | 2 +- build/cmd/hilo/view/Sprite.min.js | 2 +- build/cmd/hilo/view/Stage.js | 2 +- build/cmd/hilo/view/Stage.min.js | 2 +- build/cmd/hilo/view/Text.js | 2 +- build/cmd/hilo/view/Text.min.js | 2 +- build/cmd/hilo/view/View.js | 29 +- build/cmd/hilo/view/View.min.js | 4 +- build/commonjs/core/Class.js | 2 +- build/commonjs/core/Class.min.js | 2 +- build/commonjs/core/Hilo.js | 23 +- build/commonjs/core/Hilo.min.js | 4 +- build/commonjs/event/EventMixin.js | 2 +- build/commonjs/event/EventMixin.min.js | 2 +- build/commonjs/game/Camera.js | 2 +- build/commonjs/game/Camera.min.js | 2 +- build/commonjs/game/Camera3d.js | 2 +- build/commonjs/game/Camera3d.min.js | 2 +- build/commonjs/game/ParticleSystem.js | 2 +- build/commonjs/game/ParticleSystem.min.js | 2 +- build/commonjs/geom/Matrix.js | 46 +- build/commonjs/geom/Matrix.min.js | 4 +- build/commonjs/hilo-commonjs.zip | Bin 111264 -> 111899 bytes build/commonjs/loader/ImageLoader.js | 2 +- build/commonjs/loader/ImageLoader.min.js | 2 +- build/commonjs/loader/LoadQueue.js | 3 +- build/commonjs/loader/LoadQueue.min.js | 2 +- build/commonjs/loader/ScriptLoader.js | 2 +- build/commonjs/loader/ScriptLoader.min.js | 2 +- build/commonjs/media/HTMLAudio.js | 2 +- build/commonjs/media/HTMLAudio.min.js | 2 +- build/commonjs/media/WebAudio.js | 2 +- build/commonjs/media/WebAudio.min.js | 2 +- build/commonjs/media/WebSound.js | 2 +- build/commonjs/media/WebSound.min.js | 2 +- build/commonjs/renderer/CanvasRenderer.js | 87 +- build/commonjs/renderer/CanvasRenderer.min.js | 4 +- build/commonjs/renderer/DOMRenderer.js | 2 +- build/commonjs/renderer/DOMRenderer.min.js | 2 +- build/commonjs/renderer/Renderer.js | 2 +- build/commonjs/renderer/Renderer.min.js | 2 +- build/commonjs/renderer/WebGLRenderer.js | 33 +- build/commonjs/renderer/WebGLRenderer.min.js | 4 +- build/commonjs/tween/Ease.js | 2 +- build/commonjs/tween/Ease.min.js | 2 +- build/commonjs/tween/Tween.js | 2 +- build/commonjs/tween/Tween.min.js | 2 +- build/commonjs/util/TextureAtlas.js | 2 +- build/commonjs/util/TextureAtlas.min.js | 2 +- build/commonjs/util/Ticker.js | 2 +- build/commonjs/util/Ticker.min.js | 2 +- build/commonjs/util/browser.js | 2 +- build/commonjs/util/browser.min.js | 2 +- build/commonjs/util/drag.js | 2 +- build/commonjs/util/drag.min.js | 2 +- build/commonjs/util/polyfill.js | 2 +- build/commonjs/util/polyfill.min.js | 2 +- build/commonjs/util/util.js | 2 +- build/commonjs/util/util.min.js | 2 +- build/commonjs/view/Bitmap.js | 2 +- build/commonjs/view/Bitmap.min.js | 2 +- build/commonjs/view/BitmapText.js | 2 +- build/commonjs/view/BitmapText.min.js | 2 +- build/commonjs/view/Button.js | 2 +- build/commonjs/view/Button.min.js | 2 +- build/commonjs/view/CacheMixin.js | 2 +- build/commonjs/view/CacheMixin.min.js | 2 +- build/commonjs/view/Container.js | 2 +- build/commonjs/view/Container.min.js | 2 +- build/commonjs/view/DOMElement.js | 5 +- build/commonjs/view/DOMElement.min.js | 4 +- build/commonjs/view/Drawable.js | 2 +- build/commonjs/view/Drawable.min.js | 2 +- build/commonjs/view/Graphics.js | 2 +- build/commonjs/view/Graphics.min.js | 2 +- build/commonjs/view/Sprite.js | 2 +- build/commonjs/view/Sprite.min.js | 2 +- build/commonjs/view/Stage.js | 2 +- build/commonjs/view/Stage.min.js | 2 +- build/commonjs/view/Text.js | 2 +- build/commonjs/view/Text.min.js | 2 +- build/commonjs/view/View.js | 29 +- build/commonjs/view/View.min.js | 4 +- build/dragonbones/dragonbones.js | 57 +- build/dragonbones/dragonbones.min.js | 8298 +---------------- build/flash/hilo-flash.js | 2 +- build/flash/hilo-flash.min.js | 2 +- build/kissy/hilo-kissy.js | 286 +- build/kissy/hilo-kissy.min.js | 8 +- build/kissy/hilo-kissy.zip | Bin 188648 -> 190038 bytes build/kissy/hilo/core/Class.js | 2 +- build/kissy/hilo/core/Class.min.js | 2 +- build/kissy/hilo/core/Hilo.js | 23 +- build/kissy/hilo/core/Hilo.min.js | 4 +- build/kissy/hilo/event/EventMixin.js | 2 +- build/kissy/hilo/event/EventMixin.min.js | 2 +- build/kissy/hilo/game/Camera.js | 2 +- build/kissy/hilo/game/Camera.min.js | 2 +- build/kissy/hilo/game/Camera3d.js | 2 +- build/kissy/hilo/game/Camera3d.min.js | 2 +- build/kissy/hilo/game/ParticleSystem.js | 2 +- build/kissy/hilo/game/ParticleSystem.min.js | 2 +- build/kissy/hilo/geom/Matrix.js | 46 +- build/kissy/hilo/geom/Matrix.min.js | 4 +- build/kissy/hilo/loader/ImageLoader.js | 2 +- build/kissy/hilo/loader/ImageLoader.min.js | 2 +- build/kissy/hilo/loader/LoadQueue.js | 3 +- build/kissy/hilo/loader/LoadQueue.min.js | 2 +- build/kissy/hilo/loader/ScriptLoader.js | 2 +- build/kissy/hilo/loader/ScriptLoader.min.js | 2 +- build/kissy/hilo/media/HTMLAudio.js | 2 +- build/kissy/hilo/media/HTMLAudio.min.js | 2 +- build/kissy/hilo/media/WebAudio.js | 2 +- build/kissy/hilo/media/WebAudio.min.js | 2 +- build/kissy/hilo/media/WebSound.js | 2 +- build/kissy/hilo/media/WebSound.min.js | 2 +- build/kissy/hilo/renderer/CanvasRenderer.js | 87 +- .../kissy/hilo/renderer/CanvasRenderer.min.js | 4 +- build/kissy/hilo/renderer/DOMRenderer.js | 2 +- build/kissy/hilo/renderer/DOMRenderer.min.js | 2 +- build/kissy/hilo/renderer/Renderer.js | 2 +- build/kissy/hilo/renderer/Renderer.min.js | 2 +- build/kissy/hilo/renderer/WebGLRenderer.js | 33 +- .../kissy/hilo/renderer/WebGLRenderer.min.js | 4 +- build/kissy/hilo/tween/Ease.js | 2 +- build/kissy/hilo/tween/Ease.min.js | 2 +- build/kissy/hilo/tween/Tween.js | 2 +- build/kissy/hilo/tween/Tween.min.js | 2 +- build/kissy/hilo/util/TextureAtlas.js | 2 +- build/kissy/hilo/util/TextureAtlas.min.js | 2 +- build/kissy/hilo/util/Ticker.js | 2 +- build/kissy/hilo/util/Ticker.min.js | 2 +- build/kissy/hilo/util/browser.js | 2 +- build/kissy/hilo/util/browser.min.js | 2 +- build/kissy/hilo/util/drag.js | 2 +- build/kissy/hilo/util/drag.min.js | 2 +- build/kissy/hilo/util/polyfill.js | 2 +- build/kissy/hilo/util/polyfill.min.js | 2 +- build/kissy/hilo/util/util.js | 2 +- build/kissy/hilo/util/util.min.js | 2 +- build/kissy/hilo/view/Bitmap.js | 2 +- build/kissy/hilo/view/Bitmap.min.js | 2 +- build/kissy/hilo/view/BitmapText.js | 2 +- build/kissy/hilo/view/BitmapText.min.js | 2 +- build/kissy/hilo/view/Button.js | 2 +- build/kissy/hilo/view/Button.min.js | 2 +- build/kissy/hilo/view/CacheMixin.js | 2 +- build/kissy/hilo/view/CacheMixin.min.js | 2 +- build/kissy/hilo/view/Container.js | 2 +- build/kissy/hilo/view/Container.min.js | 2 +- build/kissy/hilo/view/DOMElement.js | 5 +- build/kissy/hilo/view/DOMElement.min.js | 4 +- build/kissy/hilo/view/Drawable.js | 2 +- build/kissy/hilo/view/Drawable.min.js | 2 +- build/kissy/hilo/view/Graphics.js | 2 +- build/kissy/hilo/view/Graphics.min.js | 2 +- build/kissy/hilo/view/Sprite.js | 2 +- build/kissy/hilo/view/Sprite.min.js | 2 +- build/kissy/hilo/view/Stage.js | 2 +- build/kissy/hilo/view/Stage.min.js | 2 +- build/kissy/hilo/view/Text.js | 2 +- build/kissy/hilo/view/Text.min.js | 2 +- build/kissy/hilo/view/View.js | 29 +- build/kissy/hilo/view/View.min.js | 4 +- build/physics/physics.js | 2 +- build/physics/physics.min.js | 2 +- build/standalone/hilo-standalone.js | 286 +- build/standalone/hilo-standalone.min.js | 8 +- build/standalone/hilo-standalone.zip | Bin 188034 -> 189431 bytes build/standalone/hilo/core/Class.js | 2 +- build/standalone/hilo/core/Class.min.js | 2 +- build/standalone/hilo/core/Hilo.js | 23 +- build/standalone/hilo/core/Hilo.min.js | 4 +- build/standalone/hilo/event/EventMixin.js | 2 +- build/standalone/hilo/event/EventMixin.min.js | 2 +- build/standalone/hilo/game/Camera.js | 2 +- build/standalone/hilo/game/Camera.min.js | 2 +- build/standalone/hilo/game/Camera3d.js | 2 +- build/standalone/hilo/game/Camera3d.min.js | 2 +- build/standalone/hilo/game/ParticleSystem.js | 2 +- .../hilo/game/ParticleSystem.min.js | 2 +- build/standalone/hilo/geom/Matrix.js | 46 +- build/standalone/hilo/geom/Matrix.min.js | 4 +- build/standalone/hilo/loader/ImageLoader.js | 2 +- .../standalone/hilo/loader/ImageLoader.min.js | 2 +- build/standalone/hilo/loader/LoadQueue.js | 3 +- build/standalone/hilo/loader/LoadQueue.min.js | 2 +- build/standalone/hilo/loader/ScriptLoader.js | 2 +- .../hilo/loader/ScriptLoader.min.js | 2 +- build/standalone/hilo/media/HTMLAudio.js | 2 +- build/standalone/hilo/media/HTMLAudio.min.js | 2 +- build/standalone/hilo/media/WebAudio.js | 2 +- build/standalone/hilo/media/WebAudio.min.js | 2 +- build/standalone/hilo/media/WebSound.js | 2 +- build/standalone/hilo/media/WebSound.min.js | 2 +- .../hilo/renderer/CanvasRenderer.js | 87 +- .../hilo/renderer/CanvasRenderer.min.js | 4 +- build/standalone/hilo/renderer/DOMRenderer.js | 2 +- .../hilo/renderer/DOMRenderer.min.js | 2 +- build/standalone/hilo/renderer/Renderer.js | 2 +- .../standalone/hilo/renderer/Renderer.min.js | 2 +- .../standalone/hilo/renderer/WebGLRenderer.js | 33 +- .../hilo/renderer/WebGLRenderer.min.js | 4 +- build/standalone/hilo/tween/Ease.js | 2 +- build/standalone/hilo/tween/Ease.min.js | 2 +- build/standalone/hilo/tween/Tween.js | 2 +- build/standalone/hilo/tween/Tween.min.js | 2 +- build/standalone/hilo/util/TextureAtlas.js | 2 +- .../standalone/hilo/util/TextureAtlas.min.js | 2 +- build/standalone/hilo/util/Ticker.js | 2 +- build/standalone/hilo/util/Ticker.min.js | 2 +- build/standalone/hilo/util/browser.js | 2 +- build/standalone/hilo/util/browser.min.js | 2 +- build/standalone/hilo/util/drag.js | 2 +- build/standalone/hilo/util/drag.min.js | 2 +- build/standalone/hilo/util/polyfill.js | 2 +- build/standalone/hilo/util/polyfill.min.js | 2 +- build/standalone/hilo/util/util.js | 2 +- build/standalone/hilo/util/util.min.js | 2 +- build/standalone/hilo/view/Bitmap.js | 2 +- build/standalone/hilo/view/Bitmap.min.js | 2 +- build/standalone/hilo/view/BitmapText.js | 2 +- build/standalone/hilo/view/BitmapText.min.js | 2 +- build/standalone/hilo/view/Button.js | 2 +- build/standalone/hilo/view/Button.min.js | 2 +- build/standalone/hilo/view/CacheMixin.js | 2 +- build/standalone/hilo/view/CacheMixin.min.js | 2 +- build/standalone/hilo/view/Container.js | 2 +- build/standalone/hilo/view/Container.min.js | 2 +- build/standalone/hilo/view/DOMElement.js | 5 +- build/standalone/hilo/view/DOMElement.min.js | 4 +- build/standalone/hilo/view/Drawable.js | 2 +- build/standalone/hilo/view/Drawable.min.js | 2 +- build/standalone/hilo/view/Graphics.js | 2 +- build/standalone/hilo/view/Graphics.min.js | 2 +- build/standalone/hilo/view/Sprite.js | 2 +- build/standalone/hilo/view/Sprite.min.js | 2 +- build/standalone/hilo/view/Stage.js | 2 +- build/standalone/hilo/view/Stage.min.js | 2 +- build/standalone/hilo/view/Text.js | 2 +- build/standalone/hilo/view/Text.min.js | 2 +- build/standalone/hilo/view/View.js | 29 +- build/standalone/hilo/view/View.min.js | 4 +- docs/api-en/code/core/Hilo.js | 19 +- docs/api-en/code/geom/Matrix.js | 44 + docs/api-en/code/renderer/CanvasRenderer.js | 85 +- docs/api-en/code/renderer/WebGLRenderer.js | 31 +- docs/api-en/code/view/View.js | 27 +- docs/api-en/index.html | 2 +- docs/api-en/symbols/Bitmap.html | 20 + docs/api-en/symbols/BitmapText.html | 20 + docs/api-en/symbols/Button.html | 36 +- docs/api-en/symbols/Container.html | 20 + docs/api-en/symbols/DOMElement.html | 20 + docs/api-en/symbols/Graphics.html | 20 + docs/api-en/symbols/Matrix.html | 173 + docs/api-en/symbols/ParticleSystem.html | 20 + docs/api-en/symbols/Sprite.html | 20 + docs/api-en/symbols/Stage.html | 20 + docs/api-en/symbols/Text.html | 20 + docs/api-en/symbols/View.html | 39 + .../src/docs_api-en_code_core_Hilo.js.html | 183 +- .../src/docs_api-en_code_geom_Matrix.js.html | 314 +- ...pi-en_code_renderer_CanvasRenderer.js.html | 305 +- ...api-en_code_renderer_WebGLRenderer.js.html | 279 +- .../src/docs_api-en_code_view_View.js.html | 853 +- docs/api-zh/code/core/Hilo.js | 19 +- docs/api-zh/code/geom/Matrix.js | 44 + docs/api-zh/code/renderer/CanvasRenderer.js | 85 +- docs/api-zh/code/renderer/WebGLRenderer.js | 31 +- docs/api-zh/code/view/View.js | 27 +- docs/api-zh/index.html | 2 +- docs/api-zh/symbols/Bitmap.html | 20 + docs/api-zh/symbols/BitmapText.html | 20 + docs/api-zh/symbols/Button.html | 36 +- docs/api-zh/symbols/Container.html | 20 + docs/api-zh/symbols/DOMElement.html | 20 + docs/api-zh/symbols/Graphics.html | 20 + docs/api-zh/symbols/Matrix.html | 173 + docs/api-zh/symbols/ParticleSystem.html | 20 + docs/api-zh/symbols/Sprite.html | 20 + docs/api-zh/symbols/Stage.html | 20 + docs/api-zh/symbols/Text.html | 20 + docs/api-zh/symbols/View.html | 39 + .../src/docs_api-zh_code_core_Hilo.js.html | 183 +- .../src/docs_api-zh_code_geom_Matrix.js.html | 314 +- ...pi-zh_code_renderer_CanvasRenderer.js.html | 305 +- ...api-zh_code_renderer_WebGLRenderer.js.html | 279 +- .../src/docs_api-zh_code_view_View.js.html | 853 +- gulpfile.js | 2 +- package.json | 2 +- 437 files changed, 5095 insertions(+), 11448 deletions(-) diff --git a/build/amd/hilo-amd.js b/build/amd/hilo-amd.js index e6b710d0..b1947c2a 100644 --- a/build/amd/hilo-amd.js +++ b/build/amd/hilo-amd.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -192,7 +192,7 @@ return browser; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -229,7 +229,7 @@ return util; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -257,7 +257,7 @@ var Hilo = { * Hilo version * @type String */ - version: '1.1.11', + version: '1.2.0', /** * @language=en * Gets a globally unique id. Such as Stage1, Bitmap2 etc. @@ -461,12 +461,23 @@ var Hilo = { if (this.cacheStateIfChanged(obj, ['depth'], stateCache)) { style.zIndex = obj.depth + 1; } - if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { - style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + if (obj.transform){ + var transform = obj.transform; + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = '0 0'; + } + style[prefix + 'Transform'] = 'matrix3d(' + transform.a + ', '+ transform.b + ', 0, 0, '+ transform.c + ', '+ transform.d + ', 0, 0, 0, 0, 1, 0, '+ transform.tx + ', '+ transform.ty + ', 0, 1)'; } - if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { - style[prefix + 'Transform'] = this.getTransformCSS(obj); + else{ + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + } + + if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { + style[prefix + 'Transform'] = this.getTransformCSS(obj); + } } + if (this.cacheStateIfChanged(obj, ['background'], stateCache)) { style.backgroundColor = obj.background; } @@ -554,7 +565,7 @@ return Hilo; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -737,7 +748,7 @@ return Class; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -767,6 +778,50 @@ var Matrix = Class.create(/** @lends Matrix.prototype */{ this.ty = ty; }, + /** + * set + * @param {Number} a + * @param {Number} b + * @param {Number} c + * @param {Number} d + * @param {Number} tx + * @param {Number} ty + */ + set: function(a, b, c, d, tx, ty){ + this.a = a; + this.b = b; + this.c = c; + this.d = d; + this.tx = tx; + this.ty = ty; + + return this; + }, + + /** + * copy + * @param {Matrix} mat + * @return {Matrix} this + */ + copy: function(mat){ + this.a = mat.a; + this.b = mat.b; + this.c = mat.c; + this.d = mat.d; + this.tx = mat.tx; + this.ty = mat.ty; + + return this; + }, + + /** + * clone + * @return {Matrix} + */ + clone: function(){ + return new Matrix().copy(this); + }, + /** * @language=en * Link a Matrix to current Matrix, in order to make geometry effects on these two composed more effective. @@ -917,7 +972,7 @@ return Matrix; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1070,7 +1125,7 @@ return EventMixin; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1151,7 +1206,7 @@ return Drawable; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1245,7 +1300,7 @@ return Renderer; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1264,26 +1319,26 @@ define('hilo/renderer/CanvasRenderer', ['hilo/core/Class', 'hilo/core/Hilo', 'hi * @requires hilo/renderer/Renderer * @property {CanvasRenderingContext2D} context The context of the canvas element, readonly. */ -var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ +var CanvasRenderer = Class.create( /** @lends CanvasRenderer.prototype */ { Extends: Renderer, - constructor: function(properties){ + constructor: function(properties) { CanvasRenderer.superclass.constructor.call(this, properties); this.context = this.canvas.getContext("2d"); }, - renderType:'canvas', + renderType: 'canvas', context: null, /** * @private * @see Renderer#startDraw */ - startDraw: function(target){ - if(target.visible && target.alpha > 0){ - if(target === this.stage){ + startDraw: function(target) { + if (target.visible && target.alpha > 0) { + if (target === this.stage) { this.context.clearRect(0, 0, target.width, target.height); } - if(target.blendMode !== this.blendMode){ + if (target.blendMode !== this.blendMode) { this.context.globalCompositeOperation = this.blendMode = target.blendMode; } this.context.save(); @@ -1296,31 +1351,38 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#draw */ - draw: function(target){ - var ctx = this.context, w = target.width, h = target.height; + draw: function(target) { + var ctx = this.context, + w = target.width, + h = target.height; //draw background var bg = target.background; - if(bg){ + if (bg) { ctx.fillStyle = bg; ctx.fillRect(0, 0, w, h); } //draw image - var drawable = target.drawable, image = drawable && drawable.image; - if(image){ - var rect = drawable.rect, sw = rect[2], sh = rect[3], offsetX = rect[4], offsetY = rect[5]; + var drawable = target.drawable, + image = drawable && drawable.image; + if (image) { + var rect = drawable.rect, + sw = rect[2], + sh = rect[3], + offsetX = rect[4], + offsetY = rect[5]; //ie9+浏览器宽高为0时会报错 fixed ie9 bug. - if(!sw || !sh){ + if (!sw || !sh) { return; } - if(!w && !h){ + if (!w && !h) { //fix width/height TODO: how to get rid of this? w = target.width = sw; h = target.height = sh; } //the pivot is the center of frame if has offset, otherwise is (0, 0) - if(offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); + if (offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); ctx.drawImage(image, rect[0], rect[1], sw, sh, 0, 0, w, h); } }, @@ -1329,7 +1391,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#endDraw */ - endDraw: function(target){ + endDraw: function(target) { this.context.restore(); }, @@ -1337,9 +1399,9 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#transform */ - transform: function(target){ + transform: function(target) { var drawable = target.drawable; - if(drawable && drawable.domElement){ + if (drawable && drawable.domElement) { Hilo.setElementStyleByView(target); return; } @@ -1348,66 +1410,72 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ scaleX = target.scaleX, scaleY = target.scaleY; - if(target === this.stage){ + if (target === this.stage) { var style = this.canvas.style, oldScaleX = target._scaleX, oldScaleY = target._scaleY, isStyleChange = false; - if((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)){ + if ((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)) { target._scaleX = scaleX; style.width = scaleX * target.width + "px"; isStyleChange = true; } - if((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)){ + if ((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)) { target._scaleY = scaleY; style.height = scaleY * target.height + "px"; isStyleChange = true; } - if(isStyleChange){ + if (isStyleChange) { target.updateViewport(); } - }else{ + } else { var x = target.x, y = target.y, pivotX = target.pivotX, pivotY = target.pivotY, rotation = target.rotation % 360, + transform = target.transform, mask = target.mask; - if(mask){ + if (mask) { mask._render(this); ctx.clip(); } //alignment var align = target.align; - if(align){ + if (align) { var pos = target.getAlignPosition(); x = pos.x; y = pos.y; } + + if (transform) { + ctx.transform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); + } else { + if (x != 0 || y != 0) ctx.translate(x, y); + if (rotation != 0) ctx.rotate(rotation * Math.PI / 180); + if (scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); + if (pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); + } - if(x != 0 || y != 0) ctx.translate(x, y); - if(rotation != 0) ctx.rotate(rotation * Math.PI / 180); - if(scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); - if(pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); } - if(target.alpha > 0) ctx.globalAlpha *= target.alpha; + if (target.alpha > 0) ctx.globalAlpha *= target.alpha; }, /** * @private * @see Renderer#remove */ - remove: function(target){ + remove: function(target) { var drawable = target.drawable; var elem = drawable && drawable.domElement; - if(elem){ + if (elem) { var parentElem = elem.parentNode; - if(parentElem){ + if (parentElem) { parentElem.removeChild(elem); } } @@ -1417,7 +1485,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#clear */ - clear: function(x, y, width, height){ + clear: function(x, y, width, height) { this.context.clearRect(x, y, width, height); }, @@ -1425,7 +1493,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#resize */ - resize: function(width, height){ + resize: function(width, height) { var canvas = this.canvas; var stage = this.stage; var style = canvas.style; @@ -1443,7 +1511,7 @@ return CanvasRenderer; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1625,7 +1693,7 @@ return DOMRenderer; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -2049,21 +2117,28 @@ var WebGLRenderer = Class.create(/** @lends WebGLRenderer.prototype */{ var cos = 1, sin = 0, rotation = view.rotation % 360, pivotX = view.pivotX, pivotY = view.pivotY, - scaleX = view.scaleX, scaleY = view.scaleY; + scaleX = view.scaleX, scaleY = view.scaleY, + transform = view.transform; - if(rotation){ - var r = rotation * DEG2RAD; - cos = Math.cos(r); - sin = Math.sin(r); + if (transform) { + mtx.copy(transform); } + else { + if(rotation){ + var r = rotation * DEG2RAD; + cos = Math.cos(r); + sin = Math.sin(r); + } + + var pos = view.getAlignPosition(); - var pos = view.getAlignPosition(); - mtx.a = cos*scaleX; - mtx.b = sin*scaleX; - mtx.c = -sin*scaleY; - mtx.d = cos*scaleY; - mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; - mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + mtx.a = cos*scaleX; + mtx.b = sin*scaleX; + mtx.c = -sin*scaleY; + mtx.d = cos*scaleY; + mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; + mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + } mtx.concat(ancestor.__webglWorldMatrix); }, @@ -2195,7 +2270,7 @@ return WebGLRenderer; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -2229,6 +2304,7 @@ define('hilo/view/View', ['hilo/core/Hilo', 'hilo/core/Class', 'hilo/event/Event * @property {Number} pivotY Position of the center point on the y axis of the view, default value is 0. * @property {Number} scaleX The x axis scale factor of the view, default value is 1. * @property {Number} scaleY The y axis scale factor of the view, default value is 1. + * @property {Matrix} transform The transform of the view.If set the transform, x, y, scaleX, scaleY, rotation, pivotX, pivotY will be ignored.default is null. * @property {Boolean} pointerEnabled Is the view can receive DOM events, default value is true. * @property {Object} background The background style to fill the view, can be css color, gradient or pattern of canvas * @property {Graphics} mask Sets a mask for the view. A mask is an object that limits the visibility of an object to the shape of the mask applied to it. A regular mask must be a Hilo.Graphics object. This allows for much faster masking in canvas as it utilises shape clipping. To remove a mask, set this property to null. @@ -2270,6 +2346,7 @@ return Class.create(/** @lends View.prototype */{ boundsArea: null, parent: null, depth: -1, + transform: null, blendMode:'source-over', /** @@ -2382,19 +2459,26 @@ return Class.create(/** @lends View.prototype */{ var cos = 1, sin = 0, rotation = o.rotation % 360, pivotX = o.pivotX, pivotY = o.pivotY, - scaleX = o.scaleX, scaleY = o.scaleY; + scaleX = o.scaleX, scaleY = o.scaleY, + transform = o.transform; - if(rotation){ - var r = rotation * Math.PI / 180; - cos = Math.cos(r); - sin = Math.sin(r); + if(transform) { + mtx.concat(transform); } + else{ + if(rotation){ + var r = rotation * Math.PI / 180; + cos = Math.cos(r); + sin = Math.sin(r); + } - if(pivotX != 0) mtx.tx -= pivotX; - if(pivotY != 0) mtx.ty -= pivotY; + if(pivotX != 0) mtx.tx -= pivotX; + if(pivotY != 0) mtx.ty -= pivotY; - var pos = o.getAlignPosition(); - mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + var pos = o.getAlignPosition(); + mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + } + } return mtx; }, @@ -2683,7 +2767,7 @@ return View; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -2749,7 +2833,7 @@ return CacheMixin; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3123,7 +3207,7 @@ return Container; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3390,7 +3474,7 @@ return Stage; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3468,7 +3552,7 @@ return Bitmap; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3739,7 +3823,7 @@ return Sprite; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3824,7 +3908,8 @@ var DOMElement = Class.create(/** @lends DOMElement.prototype */{ style:{ 'position':'absolute', 'transform':'scale3d(' + stage.scaleX + ',' + stage.scaleY + ', 1)', - 'transformOrigin':'0 0' + 'transformOrigin':'0 0', + 'zIndex':'1' } }); canvas.parentNode.insertBefore(renderer._domElementContainer, canvas.nextSibling); @@ -3853,7 +3938,7 @@ return DOMElement; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -4406,7 +4491,7 @@ return Graphics; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -4659,7 +4744,7 @@ return Text; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -4843,7 +4928,7 @@ return BitmapText; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5022,7 +5107,7 @@ return Button; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5259,7 +5344,7 @@ return TextureAtlas; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5488,7 +5573,7 @@ return Ticker; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5536,7 +5621,7 @@ if (!fnProto.bind) { }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5675,7 +5760,7 @@ return drag; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6125,7 +6210,7 @@ return Tween; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6397,7 +6482,7 @@ return Ease; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6445,7 +6530,7 @@ return ImageLoader; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6512,7 +6597,7 @@ return ScriptLoader; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6562,6 +6647,7 @@ var LoadQueue = Class.create(/** @lends LoadQueue.prototype */{ *
  • loader - specified resource loader. If you specify this,we abandon choosing loader inside
  • *
  • noCache - a tag that set on or off to prevent cache,implemented by adding timestamp inside
  • *
  • size - predicted resource size, help calculating loading progress
  • + *
  • crossOrigin - Whether cross-domain is needed. eg:crossOrigin='anonymous'
  • * * @returns {LoadQueue} 下载队列实例本身。 */ @@ -6761,7 +6847,7 @@ return LoadQueue; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6964,7 +7050,7 @@ return HTMLAudio; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7281,7 +7367,7 @@ return WebAudio; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7384,7 +7470,7 @@ return WebSound; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7477,7 +7563,7 @@ return Camera; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7664,7 +7750,7 @@ return Camera3d; }); /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo-amd.min.js b/build/amd/hilo-amd.min.js index 661bcf01..eea3af74 100644 --- a/build/amd/hilo-amd.min.js +++ b/build/amd/hilo-amd.min.js @@ -1,8 +1,8 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ -define("hilo/util/browser",function(){var t=function(){var t=navigator.userAgent,e=document,i=window,r=e.documentElement,n={iphone:/iphone/i.test(t),ipad:/ipad/i.test(t),ipod:/ipod/i.test(t),ios:/iphone|ipad|ipod/i.test(t),android:/android/i.test(t),webkit:/webkit/i.test(t),chrome:/chrome/i.test(t),safari:/safari/i.test(t),firefox:/firefox/i.test(t),ie:/msie/i.test(t),opera:/opera/i.test(t),supportTouch:"ontouchstart"in i,supportCanvas:null!=e.createElement("canvas").getContext,supportStorage:!1,supportOrientation:"orientation"in i||"orientation"in i.screen,supportDeviceMotion:"ondevicemotion"in i};try{var a="hilo";localStorage.setItem(a,a),localStorage.removeItem(a),n.supportStorage=!0}catch(o){}var s=n.jsVendor=n.webkit?"webkit":n.firefox?"webkit":n.opera?"o":n.ie?"ms":"",h=n.cssVendor="-"+s+"-",l=e.createElement("div"),c=l.style,u=void 0!=c[s+"Transform"],d=void 0!=c[s+"Perspective"];d&&(l.id="test3d",c=e.createElement("style"),c.textContent="@media ("+h+"transform-3d){#test3d{height:3px}}",e.head.appendChild(c),r.appendChild(l),d=3==l.offsetHeight,e.head.removeChild(c),r.removeChild(l)),n.supportTransform=u,n.supportTransform3D=d;var f=n.supportTouch,p=f?"touchstart":"mousedown",v=f?"touchmove":"mousemove",m=f?"touchend":"mouseup";return n.POINTER_START=p,n.POINTER_MOVE=v,n.POINTER_END=m,n}();return t}),define("hilo/util/util",function(){var t={copy:function(t,e,i){for(var r in e)i&&!t.hasOwnProperty(r)&&void 0===t[r]||(t[r]=e[r]);return t}};return t}),define("hilo/core/Hilo",["hilo/util/browser","hilo/util/util"],function(t,e){var i=window,r=document,n=r.documentElement,a=0,o={},s={version:"1.1.11",getUid:function(t){var e=++a;if(t){var i=t.charCodeAt(t.length-1);return i>=48&&i<=57&&(t+="_"),t+e}return e},viewToString:function(t){for(var e,i=t;i;)e=e?i.id+"."+e:i.id,i=i.parent;return e},copy:function(t,i,r){return e.copy(t,i,r),o.copy||(o.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),t},browser:t,event:{POINTER_START:t.POINTER_START,POINTER_MOVE:t.POINTER_MOVE,POINTER_END:t.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(t){var e;try{e=t.getBoundingClientRect()}catch(r){e={top:t.offsetTop,left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,bottom:t.offsetTop+t.offsetHeight}}var a=(i.pageXOffset||n.scrollLeft)-(n.clientLeft||0)||0,o=(i.pageYOffset||n.scrollTop)-(n.clientTop||0)||0,s=i.getComputedStyle?getComputedStyle(t):t.currentStyle,h=parseInt,l=h(s.paddingLeft)+h(s.borderLeftWidth)||0,c=h(s.paddingTop)+h(s.borderTopWidth)||0,u=h(s.paddingRight)+h(s.borderRightWidth)||0,d=h(s.paddingBottom)+h(s.borderBottomWidth)||0,f=e.top||0,p=e.left||0,v=e.right||0,m=e.bottom||0;return{left:p+a+l,top:f+o+c,width:v-u-p-l,height:m-d-f-c}},createElement:function(t,e){var i,n,a,o=r.createElement(t);for(i in e)if(n=e[i],"style"===i)for(a in n)o.style[a]=n[a];else o[i]=n;return o},getElement:function(t){return r.getElementById(t)},setElementStyleByView:function(t){var e=t.drawable,i=e.domElement.style,r=t._stateCache||(t._stateCache={}),n=s.browser.jsVendor,a="px",o=!1;if(this.cacheStateIfChanged(t,["visible"],r)&&(i.display=t.visible?"":"none"),this.cacheStateIfChanged(t,["alpha"],r)&&(i.opacity=t.alpha),t.visible&&!(t.alpha<=0)){this.cacheStateIfChanged(t,["width"],r)&&(i.width=t.width+a),this.cacheStateIfChanged(t,["height"],r)&&(i.height=t.height+a),this.cacheStateIfChanged(t,["depth"],r)&&(i.zIndex=t.depth+1),(o=this.cacheStateIfChanged(t,["pivotX","pivotY"],r))&&(i[n+"TransformOrigin"]=t.pivotX+a+" "+t.pivotY+a),(this.cacheStateIfChanged(t,["x","y","rotation","scaleX","scaleY"],r)||o)&&(i[n+"Transform"]=this.getTransformCSS(t)),this.cacheStateIfChanged(t,["background"],r)&&(i.backgroundColor=t.background),i.pointerEvents||(i.pointerEvents="none");var h=e.image;if(h){var l=h.src;l!==r.image&&(r.image=l,i.backgroundImage="url("+l+")");var c=e.rect;if(c){var u=c[0],d=c[1];u!==r.sx&&(r.sx=u,i.backgroundPositionX=-u+a),d!==r.sy&&(r.sy=d,i.backgroundPositionY=-d+a)}}var f=t.mask;if(f){var p=f.drawable.domElement.style.backgroundImage;p!==r.maskImage&&(r.maskImage=p,i[n+"MaskImage"]=p,i[n+"MaskRepeat"]="no-repeat");var v=f.x,m=f.y;v===r.maskX&&m===r.maskY||(r.maskX=v,r.maskY=m,i[n+"MaskPosition"]=v+a+" "+m+a)}}},cacheStateIfChanged:function(t,e,i){var r,n,a,o,s=!1;for(r=0,n=e.length;r=6?(e=s[0],i=s[1],r=s[2],n=s[3],a=s[4],o=s[5]):(e=t.a,i=t.b,r=t.c,n=t.d,a=t.tx,o=t.ty),this.a=h*e+l*r,this.b=h*i+l*n,this.c=c*e+u*r,this.d=c*i+u*n,this.tx=d*e+f*r+a,this.ty=d*i+f*n+o,this},rotate:function(t){var e=Math.sin(t),i=Math.cos(t),r=this.a,n=this.b,a=this.c,o=this.d,s=this.tx,h=this.ty;return this.a=r*i-n*e,this.b=r*e+n*i,this.c=a*i-o*e,this.d=a*e+o*i,this.tx=s*i-h*e,this.ty=s*e+h*i,this},scale:function(t,e){return this.a*=t,this.d*=e,this.c*=t,this.b*=e,this.tx*=t,this.ty*=e,this},translate:function(t,e){return this.tx+=t,this.ty+=e,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,e=this.b,i=this.c,r=this.d,n=this.tx,a=t*r-e*i;return this.a=r/a,this.b=-e/a,this.c=-i/a,this.d=t/a,this.tx=(i*this.ty-r*n)/a,this.ty=-(t*this.ty-e*n)/a,this},transformPoint:function(t,e,i){var r=t.x*this.a+t.y*this.c+this.tx,n=t.x*this.b+t.y*this.d+this.ty;return e&&(r=r+.5>>0,n=n+.5>>0),i?{x:r,y:n}:(t.x=r,t.y=n,t)}});return e}),define("hilo/event/EventMixin",["hilo/core/Class"],function(t){var e={_listeners:null,on:function(t,e,i){for(var r=this._listeners=this._listeners||{},n=r[t]=r[t]||[],a=0,o=n.length;a-1&&o.splice(c,1)}}return 0==o.length&&delete a[n],!0}return!1}},i=t.create({constructor:function(t,e,i){this.type=t,this.target=e,this.detail=i,this.timeStamp=+new Date},type:null,target:null,detail:null,timeStamp:0,stopImmediatePropagation:function(){this._stopped=!0}}),r=window.Event;if(r){var n=r.prototype,a=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){a&&a.call(this),this._stopped=!0}}return e}),define("hilo/view/Drawable",["hilo/core/Class","hilo/util/util"],function(t,e){var i=t.create({constructor:function(t){this.init(t)},image:null,rect:null,init:function(t){var r=this,n=r.image;i.isDrawable(t)?r.image=t:e.copy(r,t,!0);var a=r.image;if("string"==typeof a){if(!n||a!==n.getAttribute("src")){r.image=null;var o=new Image;return t.crossOrigin&&(o.crossOrigin=t.crossOrigin),o.onload=function(){o.onload=null,r.init(o)},void(o.src=a)}a=r.image=n}a&&!r.rect&&(r.rect=[0,0,a.width,a.height])},Statics:{isDrawable:function(t){if(!t||!t.tagName)return!1;var e=t.tagName.toLowerCase();return"img"===e||"canvas"===e||"video"===e}}});return i}),define("hilo/renderer/Renderer",["hilo/core/Class","hilo/util/util"],function(t,e){var i=t.create({constructor:function(t){t=t||{},e.copy(this,t,!0)},renderType:null,canvas:null,stage:null,blendMode:"source-over",startDraw:function(t){},draw:function(t){},endDraw:function(t){},transform:function(){},hide:function(){},remove:function(t){},clear:function(t,e,i,r){},resize:function(t,e){}});return i}),define("hilo/renderer/CanvasRenderer",["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer"],function(t,e,i){var r=t.create({Extends:i,constructor:function(t){r.superclass.constructor.call(this,t),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(t){return!!(t.visible&&t.alpha>0)&&(t===this.stage&&this.context.clearRect(0,0,t.width,t.height),t.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=t.blendMode),this.context.save(),!0)},draw:function(t){var e=this.context,i=t.width,r=t.height,n=t.background;n&&(e.fillStyle=n,e.fillRect(0,0,i,r));var a=t.drawable,o=a&&a.image;if(o){var s=a.rect,h=s[2],l=s[3],c=s[4],u=s[5];if(!h||!l)return;i||r||(i=t.width=h,r=t.height=l),(c||u)&&e.translate(c-.5*h,u-.5*l),e.drawImage(o,s[0],s[1],h,l,0,0,i,r)}},endDraw:function(t){this.context.restore()},transform:function(t){var i=t.drawable;if(i&&i.domElement)return void e.setElementStyleByView(t);var r=this.context,n=t.scaleX,a=t.scaleY;if(t===this.stage){var o=this.canvas.style,s=t._scaleX,h=t._scaleY,l=!1;(!s&&1!=n||s&&s!=n)&&(t._scaleX=n,o.width=n*t.width+"px",l=!0),(!h&&1!=a||h&&h!=a)&&(t._scaleY=a,o.height=a*t.height+"px",l=!0),l&&t.updateViewport()}else{var c=t.x,u=t.y,d=t.pivotX,f=t.pivotY,p=t.rotation%360,v=t.mask;v&&(v._render(this),r.clip());var m=t.align;if(m){var g=t.getAlignPosition();c=g.x,u=g.y}0==c&&0==u||r.translate(c,u),0!=p&&r.rotate(p*Math.PI/180),1==n&&1==a||r.scale(n,a),0==d&&0==f||r.translate(-d,-f)}t.alpha>0&&(r.globalAlpha*=t.alpha)},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},clear:function(t,e,i,r){this.context.clearRect(t,e,i,r)},resize:function(t,e){var i=this.canvas,r=this.stage,n=i.style;i.width=t,i.height=e,n.width=r.width*r.scaleX+"px",n.height=r.height*r.scaleY+"px"}});return r}),define("hilo/renderer/DOMRenderer",["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer","hilo/view/Drawable"],function(t,e,i,r){var n=function(){function a(t,i){var r=t.tagName||"div",n=i.image,a=t.width||n&&n.width,o=t.height||n&&n.height,s=e.createElement(r),h=s.style;if(t.id&&(s.id=t.id),h.position="absolute",h.left=(t.left||0)+"px",h.top=(t.top||0)+"px",h.width=a+"px",h.height=o+"px","canvas"==r){if(s.width=a,s.height=o,n){var l=s.getContext("2d"),c=i.rect||[0,0,a,o];l.drawImage(n,c[0],c[1],c[2],c[3],t.x||0,t.y||0,t.width||c[2],t.height||c[3])}}else if(h.opacity=void 0!=t.alpha?t.alpha:1,(t===this.stage||t.clipChildren)&&(h.overflow="hidden"),n&&n.src){h.backgroundImage="url("+n.src+")";var u=t.rectX||0,d=t.rectY||0;h.backgroundPosition=-u+"px "+-d+"px"}return s}return t.create({Extends:i,constructor:function(t){n.superclass.constructor.call(this,t)},renderType:"dom",startDraw:function(t){var e=t.drawable=t.drawable||new r;return e.domElement=e.domElement||a(t,e),!0},draw:function(t){var e=t.parent,i=t.drawable.domElement,r=i.parentNode;if(e){var n=e.drawable.domElement;if(n!=r&&n.appendChild(i),!t.width&&!t.height){var a=t.drawable.rect;a&&(a[2]||a[3])&&(t.width=a[2],t.height=a[3])}}else t!==this.stage||r||(i.style.overflow="hidden",this.canvas.appendChild(i))},transform:function(t){if(e.setElementStyleByView(t),t===this.stage){var i=this.canvas.style,r=t._scaleX,n=t._scaleY,a=t.scaleX,o=t.scaleY;(!r&&1!=a||r&&r!=a)&&(t._scaleX=a,i.width=a*t.width+"px"),(!n&&1!=o||n&&n!=o)&&(t._scaleY=o,i.height=o*t.height+"px")}},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},hide:function(t){var e=t.drawable&&t.drawable.domElement;e&&(e.style.display="none")},resize:function(t,e){var i=this.canvas.style;i.width=t+"px",i.height=e+"px","absolute"!=i.position&&(i.position="relative")}})}();return n}),define("hilo/renderer/WebGLRenderer",["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer","hilo/geom/Matrix"],function(t,e,i,r){var n=Math.PI/180,a=t.create({Extends:i,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var t=document.createElement("canvas");t.getContext&&(t.getContext("webgl")||t.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(t){a.superclass.constructor.call(this,t);var e=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=a.MAX_BATCH_NUM,this.positionStride=4*a.ATTRIBUTE_NUM;var i=this.maxBatchNum*a.ATTRIBUTE_NUM*4,r=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*i),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(r);for(var n=0,o=0;n0)&&(t===this.stage&&this.clear(),!0)},draw:function(t){var e=t.width,i=t.height,r=(t.background,t.drawable),n=r&&r.image;if(n){var a=r.rect,o=a[2],s=a[3];e||i||(e=t.width=o,i=t.height=s),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var h=this._createVertexs(n,a[0],a[1],o,s,0,0,e,i),l=this.batchIndex*this.positionStride,c=this.float32Array,u=this.uint32Array,d=(t.tint>>16)+(65280&t.tint)+((255&t.tint)<<16)+(255*t.__webglRenderAlpha<<24);c[l+0]=h[0],c[l+1]=h[1],c[l+2]=h[2],c[l+3]=h[3],u[l+4]=d,c[l+5]=h[4],c[l+6]=h[5],c[l+7]=h[6],c[l+8]=h[7],u[l+9]=d,c[l+10]=h[8],c[l+11]=h[9],c[l+12]=h[10],c[l+13]=h[11],u[l+14]=d,c[l+15]=h[12],c[l+16]=h[13],c[l+17]=h[14],c[l+18]=h[15],u[l+19]=d;for(var f=t.__webglWorldMatrix,p=0;p<4;p++){var v=c[l+5*p],m=c[l+5*p+1];c[l+5*p]=f.a*v+f.c*m+f.tx,c[l+5*p+1]=f.b*v+f.d*m+f.ty}t.__textureImage=n,this.sprites[this.batchIndex++]=t}},endDraw:function(t){t===this.stage&&this._renderBatches()},transform:function(t){var i=t.drawable;if(i&&i.domElement)return void e.setElementStyleByView(t);var n=t.scaleX,a=t.scaleY;if(t===this.stage){var o=this.canvas.style,s=t._scaleX,h=t._scaleY,l=!1;(!s&&1!=n||s&&s!=n)&&(t._scaleX=n,o.width=n*t.width+"px",l=!0),(!h&&1!=a||h&&h!=a)&&(t._scaleY=a,o.height=a*t.height+"px",l=!0),l&&t.updateViewport(),t.__webglWorldMatrix=t.__webglWorldMatrix||new r(1,0,0,1,0,0)}else t.parent&&(t.__webglWorldMatrix=t.__webglWorldMatrix||new r(1,0,0,1,0,0),this._setConcatenatedMatrix(t,t.parent));t.alpha>0&&(t.parent&&t.parent.__webglRenderAlpha?t.__webglRenderAlpha=t.alpha*t.parent.__webglRenderAlpha:t.__webglRenderAlpha=t.alpha)},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},clear:function(t,e,i,r){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(t,e){if(this.width!==t||this.height!==e){var i=this.canvas,r=this.stage,n=i.style;this.width=i.width=t,this.height=i.height=e,n.width=r.width*r.scaleX+"px",n.height=r.height*r.scaleY+"px",this.gl.viewport(0,0,t,e),this.canvasHalfWidth=.5*t,this.canvasHalfHeight=.5*e,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var t=this.gl;t.bufferSubData(t.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var e=0,i=0,r=null,n=0;n0&&(i.bindTexture(i.TEXTURE_2D,this._getTexture(this.sprites[t])),i.drawElements(i.TRIANGLES,6*r,i.UNSIGNED_SHORT,6*t*2))},_uploadProjectionTransform:function(t){this._projectionTransformElements&&!t||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var t=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",e="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new o(this,{v:t,f:e},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(t,e,i,r,n,a,o,s,h){var l=this.__tempVertexs||[],c=t.width,u=t.height;r/=c,n/=u,e/=c,i/=u,s=s,h=h,a=a,o=o,r+e>1&&(r=1-e),n+i>1&&(n=1-i);var d=0;return l[d++]=a,l[d++]=o,l[d++]=e,l[d++]=i,l[d++]=a+s,l[d++]=o,l[d++]=e+r,l[d++]=i,l[d++]=a,l[d++]=o+h,l[d++]=e,l[d++]=i+n,l[d++]=a+s,l[d++]=o+h,l[d++]=e+r,l[d++]=i+n,l},_setConcatenatedMatrix:function(t,e){var i=t.__webglWorldMatrix,r=1,a=0,o=t.rotation%360,s=t.pivotX,h=t.pivotY,l=t.scaleX,c=t.scaleY;if(o){var u=o*n;r=Math.cos(u),a=Math.sin(u)}var d=t.getAlignPosition();i.a=r*l,i.b=a*l,i.c=-a*c,i.d=r*c,i.tx=d.x-i.a*s-i.c*h,i.ty=d.y-i.b*s-i.d*h,i.concat(e.__webglWorldMatrix)},_getTexture:function(t){var e=t.__textureImage,i=this._cacheTexture[e.src];return i||(i=this.activeShader.uploadTexture(e)),i}}),o=function(t,e,i){this.renderer=t,this.gl=t.gl,this.program=this._createProgram(this.gl,e.v,e.f),i=i||{},this.attributes=i.attributes||[],this.uniforms=i.uniforms||[]};return o.prototype={active:function(){var t=this,e=t.renderer,i=t.gl,r=t.program;r&&i&&(e.activeShader=t,i.useProgram(r),t.attributes.forEach(function(t){e[t]=i.getAttribLocation(r,t),i.enableVertexAttribArray(e[t])}),t.uniforms.forEach(function(t){e[t]=i.getUniformLocation(r,t)}),t.width===e.width&&t.height===e.height||(t.width=e.width,t.height=e.height,e._uploadProjectionTransform()))},uploadTexture:function(t){var e=this.gl,i=this.renderer,r=e.createTexture(),n=i.u_Sampler;return e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,r),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.uniform1i(n,0),e.bindTexture(e.TEXTURE_2D,null),this.renderer._cacheTexture[t.src]=r,r},_createProgram:function(t,e,i){var r=this._createShader(t,t.VERTEX_SHADER,e),n=this._createShader(t,t.FRAGMENT_SHADER,i);if(!r||!n)return null;var a=t.createProgram();if(a){t.attachShader(a,r),t.attachShader(a,n),t.linkProgram(a),t.deleteShader(n),t.deleteShader(r);var o=t.getProgramParameter(a,t.LINK_STATUS);if(!o){var s=t.getProgramInfoLog(a);return console.log("Failed to link program: "+s),t.deleteProgram(a),null}}return a},_createShader:function(t,e,i){var r=t.createShader(e);if(r){t.shaderSource(r,i),t.compileShader(r);var n=t.getShaderParameter(r,t.COMPILE_STATUS);if(!n){var a=t.getShaderInfoLog(r);return console.log("Failed to compile shader: "+a),t.deleteShader(r),null}}return r}},a}),define("hilo/view/View",["hilo/core/Hilo","hilo/core/Class","hilo/event/EventMixin","hilo/geom/Matrix","hilo/util/util"],function(t,e,i,r,n){var a=function(){function a(t,e,i){for(var r,n,a,o,s=0,h=!1,l=0,c=i.length;ld.x?(r=d.x,n=u.x):(r=u.x,n=d.x),t>=r&&t<=n))h=!0;else if(u.y>d.y?(a=d.y,o=u.y):(a=u.y,o=d.y),!(eo)){var f=(e-u.y)*(d.x-u.x)/(d.y-u.y)+u.x;if(f>t?s++:f==t&&(h=!0),u.x>t&&u.y==e){var p=i[(c+l-1)%c];(p.ye||p.y>e&&d.ys?s=c:cl?l=c:c=0)return!1;u>i.overlap&&(i.overlap=u,i.normal.x=p.x,i.normal.y=p.y)}return i}return e.create({Mixes:i,constructor:function(e){e=e||{},this.id=this.id||e.id||t.getUid("View"),n.copy(this,e,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,r,n,a,o,s=this.width,h=this.height,l=this.getConcatenatedMatrix(),c=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:h},{x:0,y:h}],u=[],d=0,f=c.length;de?r=e:ni?a=i:o>1,r=0;break;case"TR":i=o-n,r=0;break;case"L":i=0,r=s-a>>1;break;case"C":i=o-n>>1,r=s-a>>1;break;case"R":i=o-n,r=s-a>>1;break;case"BL":i=0,r=s-a;break;case"B":i=o-n>>1,r=s-a;break;case"BR":i=o-n,r=s-a}}return{x:i,y:r}},hitTestPoint:function(t,e,i){var r=this.getBounds(),n=t>=r.x&&t<=r.x+r.width&&e>=r.y&&e<=r.y+r.height;return n&&i&&(n=a(t,e,r)),n},hitTestObject:function(t,e){var i=this.getBounds(),r=t.getBounds(),n=i.x<=r.x+r.width&&r.x<=i.x+i.width&&i.y<=r.y+r.height&&r.y<=i.y+i.height;return n&&e&&(n=o(i,r)),!!n},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=n.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return t.viewToString(this)}})}();return a}),define("hilo/view/CacheMixin",["hilo/view/Drawable","hilo/util/browser"],function(t,e){var i,r,n={_cacheDirty:!0,cache:function(t){(t||this._cacheDirty||!this.drawable)&&this.updateCache()},updateCache:function(){e.supportCanvas&&(i||(i=document.createElement("canvas"),r=i.getContext("2d")),i.width=this.width,i.height=this.height,this._draw(r),this.drawable=this.drawable||new t,this.drawable.init({image:i.toDataURL()}),this._cacheDirty=!1)},setCacheDirty:function(t){this._cacheDirty=t}};return n}),define("hilo/view/Container",["hilo/core/Hilo","hilo/core/Class","hilo/view/View"],function(t,e,i){var r=e.create({Extends:i,constructor:function(e){e=e||{},this.id=this.id||e.id||t.getUid("Container"),r.superclass.constructor.call(this,e),this.children?this._updateChildren():this.children=[]},children:null,pointerChildren:!0,clipChildren:!1,getNumChildren:function(){return this.children.length},addChildAt:function(t,e){var i=this.children,r=i.length,n=t.parent;e=e<0?0:e>r?r:e;var a=this.getChildIndex(t);if(a==e)return this;if(a>=0?(i.splice(a,1),e=e==r?r-1:e):n&&n.removeChild(t),i.splice(e,0,t),a<0)this._updateChildren(e);else{var o=a=e.length)return null;var i=e[t];if(i){if(!i.__renderer)for(var r=i;r=r.parent;){if(r.renderer){i.__renderer=r.renderer;break}if(r.__renderer){i.__renderer=r.__renderer;break}}i.__renderer&&i.__renderer.remove(i),i.parent=null,i.depth=-1}return e.splice(t,1),this._updateChildren(t),i},removeChild:function(t){return this.removeChildAt(this.getChildIndex(t))},removeChildById:function(t){for(var e,i=this.children,r=0,n=i.length;r=e.length?null:e[t]},getChildById:function(t){for(var e,i=this.children,r=0,n=i.length;r=0&&r!=e){var n=i.length;e=e<0?0:e>=n?n-1:e,i.splice(r,1),i.splice(e,0,t),this._updateChildren()}return this},swapChildren:function(t,e){var i=this.children,r=this.getChildIndex(t),n=this.getChildIndex(e);t.depth=n,i[n]=t,e.depth=r,i[r]=e},swapChildrenAt:function(t,e){var i=this.children,r=this.getChildAt(t),n=this.getChildAt(e);r.depth=e,i[e]=r,n.depth=t,i[t]=n},sortChildren:function(t){var e=t,i=this.children;if("string"==typeof e){var r=e;e=function(t,e){return e[r]-t[r]}}i.sort(e),this._updateChildren()},_updateChildren:function(t,e){var i,r=this.children;t=t||0,e=e||r.length;for(var n=t;n=0;l--)if(a=h[l],!(!a||!a.visible||a.alpha<=0||n&&!a.pointerEnabled))if(a.children&&a.children.length&&(!n||a.pointerChildren)&&(o=a.getViewAtPoint(t,e,i,r,n)),o){if(!r)return o;o.length&&(s=s.concat(o))}else if(a.hitTestPoint(t,e,i)){if(!r)return a;s.push(a)}return r&&s.length?s:null},render:function(t,e){r.superclass.render.call(this,t,e);var i,n,a,o=this.children.slice(0);for(i=0,n=o.length;ir?r:e,i[e]=t,t.name&&(this._frameNames[t.name]=t),(0!=e||this.width)&&this.height||(this.width=t.rect[2],this.height=t.rect[3]),this},getFrame:function(t){if("number"==typeof t){var e=this._frames;return t<0||t>=e.length?null:e[t]}return this._frameNames[t]},getFrameIndex:function(t){var e=this._frames,i=e.length,r=-1;if("number"==typeof t)r=t;else{var n="string"==typeof t?this._frameNames[t]:t;if(n)for(var a=0;a=i?i-1:r,this.paused=e,this._firstRender=!0,this},_render:function(t,e){var i,r=this.currentFrame;if(this._firstRender?(i=r,this._firstRender=!1):i=this._nextFrame(e),i!=r){this.currentFrame=i;var a=this._frames[i].callback;a&&a.call(this)}this.onEnterFrame&&this.onEnterFrame(i),this.drawable.init(this._frames[i]),n.superclass._render.call(this,t,e)},_nextFrame:function(t){var e=this._frames,i=e.length,r=this.currentFrame,n=e[r],a=n.duration||this.interval,o=this._frameElapsed,s=0!=r||this.drawable?o+(this.timeBased?t:1):0;return o=this._frameElapsed=s=i-1)&&this.stop(),this.paused||0!=o||(null!=n.next?r=this.getFrameIndex(n.next):r>=i-1?r=0:this.drawable&&r++),r},setFrameCallback:function(t,e){return t=this.getFrame(t),t&&(t.callback=e),this},onEnterFrame:null});return n}),define("hilo/view/DOMElement",["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/Drawable"],function(t,e,i,r){var n=e.create({Extends:i,constructor:function(e){e=e||{},this.id=this.id||e.id||t.getUid("DOMElement"),n.superclass.constructor.call(this,e),this.drawable=new r;var i=this.drawable.domElement=e.element||t.createElement("div");i.id=this.id,this.pointerEnabled&&!i.style.pointerEvents&&(i.style.pointerEvents="visible")},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||(t.transform(this),this.visible&&this.alpha>0&&this.render(t,e))},render:function(e,i){if("dom"!==e.renderType){var r=e.canvas,n=this.parent,a=e._domElementContainer;e._domElementContainer||(a=e._domElementContainer=t.createElement("div",{style:{position:"absolute",transform:"scale3d("+n.scaleX+","+n.scaleY+", 1)",transformOrigin:"0 0"}}),r.parentNode.insertBefore(e._domElementContainer,r.nextSibling));var o,s=this.drawable.domElement,h=this.depth,l=a.childNodes[0];if(s.parentNode)return;for(;l&&3!=l.nodeType&&(o=parseInt(l.style.zIndex)||0,!(o<=0||o>h));)l=l.nextSibling;a.insertBefore(this.drawable.domElement,l)}else e.draw(this)}});return n}),define("hilo/view/Graphics",["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/CacheMixin"],function(t,e,i,r){var n=function(){var a=document.createElement("canvas"),o=a.getContext&&a.getContext("2d");return e.create({Extends:i,Mixes:r,constructor:function(e){e=e||{},this.id=this.id||e.id||t.getUid("Graphics"),n.superclass.constructor.call(this,e),this._actions=[]},lineWidth:1,lineAlpha:1,lineCap:null,lineJoin:null,miterLimit:10,hasStroke:!1,strokeStyle:"0",hasFill:!1,fillStyle:"0",fillAlpha:0,lineStyle:function(t,e,i,r,n,a){var o=this,s=o._addAction;return s.call(o,["lineWidth",o.lineWidth=t||1]),s.call(o,["strokeStyle",o.strokeStyle=e||"0"]),s.call(o,["lineAlpha",o.lineAlpha=i||1]),void 0!=r&&s.call(o,["lineCap",o.lineCap=r]),void 0!=n&&s.call(o,["lineJoin",o.lineJoin=n]),void 0!=a&&s.call(o,["miterLimit",o.miterLimit=a]),o.hasStroke=!0,o},beginFill:function(t,e){var i=this,r=i._addAction;return r.call(i,["fillStyle",i.fillStyle=t]),r.call(i,["fillAlpha",i.fillAlpha=e||1]),i.hasFill=!0,i},endFill:function(){var t=this,e=t._addAction;return t.hasStroke&&e.call(t,["stroke"]),t.hasFill&&e.call(t,["fill"]),t.setCacheDirty(!0),t},beginLinearGradientFill:function(t,e,i,r,n,a){for(var s=this,h=o.createLinearGradient(t,e,i,r),l=0,c=n.length;l1?a.slice(1):null;"function"==typeof t[o]?t[o].apply(t,s):t[o]=a[1]}},render:function(t,e){var i=this;"canvas"===t.renderType?i._draw(t.context):(i.cache(),t.draw(i))},clear:function(){var t=this;return t._actions.length=0,t.lineWidth=1,t.lineAlpha=1,t.lineCap=null,t.lineJoin=null,t.miterLimit=10,t.hasStroke=!1,t.strokeStyle="0",t.hasFill=!1,t.fillStyle="0",t.fillAlpha=1,t.setCacheDirty(!0),t},_addAction:function(t){var e=this;return e._actions.push(t),e}})}();return n}),define("hilo/view/Text",["hilo/core/Class","hilo/core/Hilo","hilo/view/View","hilo/view/CacheMixin"],function(t,e,i,r){var n=t.create({Extends:i,Mixes:r,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("Text"),n.superclass.constructor.call(this,t),t.font||(this.font="12px arial"),this._fontHeight=n.measureFontHeight(this.font)},text:null,color:"#000",textAlign:null,textVAlign:null,outline:!1,lineSpacing:0,maxWidth:200,font:null,textWidth:0,textHeight:0,setFont:function(t){var e=this;return e.font!==t&&(e.font=t,e._fontHeight=n.measureFontHeight(t)),e},render:function(t,e){var i=this;if("canvas"===t.renderType)this.drawable?t.draw(i):i._draw(t.context);else if("dom"===t.renderType){var r=i.drawable,n=r.domElement,a=n.style;a.font=i.font,a.textAlign=i.textAlign,a.color=i.color,a.width=i.width+"px",a.height=i.height+"px",a.lineHeight=i._fontHeight+i.lineSpacing+"px",n.innerHTML=i.text,t.draw(this)}else i.cache(),t.draw(i)},_draw:function(t){var e=this,i=e.text.toString();if(i){t.font=e.font,t.textAlign=e.textAlign,t.textBaseline="top";var r,n,a,o,s,h=i.split(/\r\n|\r|\n|/),l=0,c=0,u=e._fontHeight+e.lineSpacing,d=[];for(r=0,o=h.length;re.maxWidth?(d.push({text:m,y:c}),l>1;break;case"bottom":_=e.height-e.textHeight}var x=e.background;for(x&&(t.fillStyle=x,t.fillRect(0,0,e.width,e.height)),e.outline?t.strokeStyle=e.color:t.fillStyle=e.color,r=0;r>1;break;case"right":case"end":n=a}r.outline?t.strokeText(e,n,i):t.fillText(e,n,i)},Statics:{measureFontHeight:function(t){var i,r=document.documentElement,n=e.createElement("div",{style:{font:t,position:"absolute"},innerHTML:"M"});return r.appendChild(n),i=n.offsetHeight,r.removeChild(n),i}}});return n}),define("hilo/view/BitmapText",["hilo/core/Class","hilo/core/Hilo","hilo/view/Container","hilo/view/Bitmap"],function(t,e,i,r){var n=t.create({Extends:i,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("BitmapText"),n.superclass.constructor.call(this,t);var i=t.text+"";i&&(this.text="",this.setText(i)),this.pointerChildren=!1},glyphs:null,letterSpacing:0,text:"",textAlign:"left",setText:function(t){var e=this,i=t.toString(),r=i.length;if(e.text!=i){e.text=i;var n,a,o,s,h=0,l=0,c=0;for(n=0;n0?e.letterSpacing:0),e.children[n]?(s=e.children[n],s.setImage(o.image,o.rect)):(s=e._createBitmap(o),e.addChild(s)),s.x=c,h=c+o.rect[2],l=Math.max(l,o.rect[3]));for(n=e.children.length-1;n>=r;n--)e._releaseBitmap(e.children[n]),e.children[n].removeFromParent();return e.width=h,e.height=l,this.setTextAlign(),e}},_createBitmap:function(t){var e;return n._pool.length?(e=n._pool.pop(),e.setImage(t.image,t.rect)):e=new r({image:t.image,rect:t.rect}),e},_releaseBitmap:function(t){n._pool.push(t)},setTextAlign:function(t){switch(this.textAlign=t||this.textAlign,this.textAlign){case"center":this.pivotX=.5*this.width;break;case"right":this.pivotX=this.width;break;case"left":default:this.pivotX=0}return this},hasGlyphs:function(t){var e=this.glyphs;if(!e)return!1;t=t.toString();var i,r=t.length;for(i=0;i=this._targetFPS?(this._measuredFPS=1e3/(this._tickTime/this._tickCount)+.5>>0,this._tickCount=0,this._tickTime=0):this._tickTime+=t-this._lastTime,this._lastTime=t;for(var r=i.slice(0),n=0,a=r.length;n=0&&e.splice(i,1)},nextTick:function(t){var e=this,i={tick:function(r){e.removeTick(i),t()}};return e.addTick(i),i},timeout:function(t,e){var i=this,r=(new Date).getTime()+e,n={tick:function(){var e=(new Date).getTime(),a=e-r;a>=0&&(i.removeTick(n),t())}};return i.addTick(n),n},interval:function(t,e){var i=this,r=(new Date).getTime()+e,n={tick:function(){var i=(new Date).getTime(),n=i-r;n>=0&&(n=r)return-1;for(e<0&&(e=r+e),i=e;i=1?1:s;var l=n.ease?n.ease(s):s;n.reverse&&(n._reverseFlag<0&&(s=1-s,l=1-l),s<1e-7&&(n.repeat>0&&n._repeatCount++>=n.repeat||0==n.repeat&&!n.loop?h=!0:(n._startTime=i(),n._pausedTime=0,n._reverseFlag*=-1))),n.isStart||(n.setProps(n._fromProps,n._toProps),n.isStart=!0,n.onStart&&n.onStart.call(n,n)),n.time=a,n._render(l),(o=n.onUpdate)&&o.call(n,s,n),s>=1&&(n.reverse?(n._startTime=i(),n._pausedTime=0,n._reverseFlag*=-1):n.loop||n.repeat>0&&n._repeatCount++0&&u<=t?(c._render(s),c.time=a,e.add(c)):h&&(u<0||u>t)&&c.start()}return h?((o=n.onComplete)&&o.call(n,n),!0):void 0}}},Statics:{_tweens:[],tick:function(){var t,r,n=e._tweens,a=n.length;for(r=0;r-1&&n.splice(i,1);else for(i=0;i=i)return void t.fire("complete");if(t._currentIndexe.z})},tick:function(){this.sortZ()}});return o}();return i}),define("hilo/game/ParticleSystem",["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/Container","hilo/view/Drawable","hilo/util/util"],function(t,e,i,r,n,a){var o=function(){function o(t,e){return e?t+2*(Math.random()-.5)*e:t}for(var s=["x","y","vx","vy","ax","ay","rotation","rotationV","scale","scaleV","alpha","alphaV","life"],h=[],l=0,c=s.length;l=this._emitTime&&(this._currentRunTime=0,this._emitTime=o(this.emitTime,this.emitTimeVar),this._emit()),this._totalRunTime>=this.totalTime&&this.stop())},_emit:function(){for(var t=o(this.emitNum,this.emitNumVar)>>0,e=0;e=0;e--)this.children[e].destroy()}}),v=e.create({Extends:i,constructor:function(e){this.id=this.id||e.id||t.getUid("Particle"),v.superclass.constructor.call(this,e),this.init(e)},onUpdate:function(t){if(t*=.001,this._died)return!1;var e=this.ax+this.system.gx,i=this.ay+this.system.gy;return this.vx+=e*t,this.vy+=i*t,this.x+=this.vx*t,this.y+=this.vy*t,this.rotation+=this.rotationV,this._time>.1&&(this.alpha+=this.alphaV),this.scale+=this.scaleV,this.scaleX=this.scaleY=this.scale,this._time+=t,this._time>=this.life||this.alpha<=0?(this.destroy(),!1):void 0},setImage:function(t,e){this.drawable=this.drawable||new n,e=e||[0,0,t.width,t.height],this.width=e[2],this.height=e[3],this.drawable.rect=e,this.drawable.image=t},destroy:function(){this._died=!0,this.alpha=0,this.removeFromParent(),f.push(this)},init:function(t){this.system=t.system,this._died=!1,this._time=0,this.alpha=1;for(var e=0,i=h.length;e>0]),this.setImage(t.image,a),void 0!==t.pivotX&&(this.pivotX=t.pivotX*a[2]),void 0!==t.pivotY&&(this.pivotY=t.pivotY*a[3])}},Statics:{create:function(t){if(f.length>0){var e=f.pop();return e.init(t),e}return new v(t)}}});return p}();return o}); \ No newline at end of file +define("hilo/util/browser",function(){var t=function(){var t=navigator.userAgent,e=document,i=window,r=e.documentElement,n={iphone:/iphone/i.test(t),ipad:/ipad/i.test(t),ipod:/ipod/i.test(t),ios:/iphone|ipad|ipod/i.test(t),android:/android/i.test(t),webkit:/webkit/i.test(t),chrome:/chrome/i.test(t),safari:/safari/i.test(t),firefox:/firefox/i.test(t),ie:/msie/i.test(t),opera:/opera/i.test(t),supportTouch:"ontouchstart"in i,supportCanvas:null!=e.createElement("canvas").getContext,supportStorage:!1,supportOrientation:"orientation"in i||"orientation"in i.screen,supportDeviceMotion:"ondevicemotion"in i};try{var a="hilo";localStorage.setItem(a,a),localStorage.removeItem(a),n.supportStorage=!0}catch(o){}var s=n.jsVendor=n.webkit?"webkit":n.firefox?"webkit":n.opera?"o":n.ie?"ms":"",h=n.cssVendor="-"+s+"-",l=e.createElement("div"),c=l.style,u=void 0!=c[s+"Transform"],d=void 0!=c[s+"Perspective"];d&&(l.id="test3d",c=e.createElement("style"),c.textContent="@media ("+h+"transform-3d){#test3d{height:3px}}",e.head.appendChild(c),r.appendChild(l),d=3==l.offsetHeight,e.head.removeChild(c),r.removeChild(l)),n.supportTransform=u,n.supportTransform3D=d;var f=n.supportTouch,p=f?"touchstart":"mousedown",v=f?"touchmove":"mousemove",m=f?"touchend":"mouseup";return n.POINTER_START=p,n.POINTER_MOVE=v,n.POINTER_END=m,n}();return t}),define("hilo/util/util",function(){var t={copy:function(t,e,i){for(var r in e)i&&!t.hasOwnProperty(r)&&void 0===t[r]||(t[r]=e[r]);return t}};return t}),define("hilo/core/Hilo",["hilo/util/browser","hilo/util/util"],function(t,e){var i=window,r=document,n=r.documentElement,a=0,o={},s={version:"1.2.0",getUid:function(t){var e=++a;if(t){var i=t.charCodeAt(t.length-1);return i>=48&&i<=57&&(t+="_"),t+e}return e},viewToString:function(t){for(var e,i=t;i;)e=e?i.id+"."+e:i.id,i=i.parent;return e},copy:function(t,i,r){return e.copy(t,i,r),o.copy||(o.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),t},browser:t,event:{POINTER_START:t.POINTER_START,POINTER_MOVE:t.POINTER_MOVE,POINTER_END:t.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(t){var e;try{e=t.getBoundingClientRect()}catch(r){e={top:t.offsetTop,left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,bottom:t.offsetTop+t.offsetHeight}}var a=(i.pageXOffset||n.scrollLeft)-(n.clientLeft||0)||0,o=(i.pageYOffset||n.scrollTop)-(n.clientTop||0)||0,s=i.getComputedStyle?getComputedStyle(t):t.currentStyle,h=parseInt,l=h(s.paddingLeft)+h(s.borderLeftWidth)||0,c=h(s.paddingTop)+h(s.borderTopWidth)||0,u=h(s.paddingRight)+h(s.borderRightWidth)||0,d=h(s.paddingBottom)+h(s.borderBottomWidth)||0,f=e.top||0,p=e.left||0,v=e.right||0,m=e.bottom||0;return{left:p+a+l,top:f+o+c,width:v-u-p-l,height:m-d-f-c}},createElement:function(t,e){var i,n,a,o=r.createElement(t);for(i in e)if(n=e[i],"style"===i)for(a in n)o.style[a]=n[a];else o[i]=n;return o},getElement:function(t){return r.getElementById(t)},setElementStyleByView:function(t){var e=t.drawable,i=e.domElement.style,r=t._stateCache||(t._stateCache={}),n=s.browser.jsVendor,a="px",o=!1;if(this.cacheStateIfChanged(t,["visible"],r)&&(i.display=t.visible?"":"none"),this.cacheStateIfChanged(t,["alpha"],r)&&(i.opacity=t.alpha),t.visible&&!(t.alpha<=0)){if(this.cacheStateIfChanged(t,["width"],r)&&(i.width=t.width+a),this.cacheStateIfChanged(t,["height"],r)&&(i.height=t.height+a),this.cacheStateIfChanged(t,["depth"],r)&&(i.zIndex=t.depth+1),t.transform){var h=t.transform;(o=this.cacheStateIfChanged(t,["pivotX","pivotY"],r))&&(i[n+"TransformOrigin"]="0 0"),i[n+"Transform"]="matrix3d("+h.a+", "+h.b+", 0, 0, "+h.c+", "+h.d+", 0, 0, 0, 0, 1, 0, "+h.tx+", "+h.ty+", 0, 1)"}else(o=this.cacheStateIfChanged(t,["pivotX","pivotY"],r))&&(i[n+"TransformOrigin"]=t.pivotX+a+" "+t.pivotY+a),(this.cacheStateIfChanged(t,["x","y","rotation","scaleX","scaleY"],r)||o)&&(i[n+"Transform"]=this.getTransformCSS(t));this.cacheStateIfChanged(t,["background"],r)&&(i.backgroundColor=t.background),i.pointerEvents||(i.pointerEvents="none");var l=e.image;if(l){var c=l.src;c!==r.image&&(r.image=c,i.backgroundImage="url("+c+")");var u=e.rect;if(u){var d=u[0],f=u[1];d!==r.sx&&(r.sx=d,i.backgroundPositionX=-d+a),f!==r.sy&&(r.sy=f,i.backgroundPositionY=-f+a)}}var p=t.mask;if(p){var v=p.drawable.domElement.style.backgroundImage;v!==r.maskImage&&(r.maskImage=v,i[n+"MaskImage"]=v,i[n+"MaskRepeat"]="no-repeat");var m=p.x,g=p.y;m===r.maskX&&g===r.maskY||(r.maskX=m,r.maskY=g,i[n+"MaskPosition"]=m+a+" "+g+a)}}},cacheStateIfChanged:function(t,e,i){var r,n,a,o,s=!1;for(r=0,n=e.length;r=6?(e=s[0],i=s[1],r=s[2],n=s[3],a=s[4],o=s[5]):(e=t.a,i=t.b,r=t.c,n=t.d,a=t.tx,o=t.ty),this.a=h*e+l*r,this.b=h*i+l*n,this.c=c*e+u*r,this.d=c*i+u*n,this.tx=d*e+f*r+a,this.ty=d*i+f*n+o,this},rotate:function(t){var e=Math.sin(t),i=Math.cos(t),r=this.a,n=this.b,a=this.c,o=this.d,s=this.tx,h=this.ty;return this.a=r*i-n*e,this.b=r*e+n*i,this.c=a*i-o*e,this.d=a*e+o*i,this.tx=s*i-h*e,this.ty=s*e+h*i,this},scale:function(t,e){return this.a*=t,this.d*=e,this.c*=t,this.b*=e,this.tx*=t,this.ty*=e,this},translate:function(t,e){return this.tx+=t,this.ty+=e,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,e=this.b,i=this.c,r=this.d,n=this.tx,a=t*r-e*i;return this.a=r/a,this.b=-e/a,this.c=-i/a,this.d=t/a,this.tx=(i*this.ty-r*n)/a,this.ty=-(t*this.ty-e*n)/a,this},transformPoint:function(t,e,i){var r=t.x*this.a+t.y*this.c+this.tx,n=t.x*this.b+t.y*this.d+this.ty;return e&&(r=r+.5>>0,n=n+.5>>0),i?{x:r,y:n}:(t.x=r,t.y=n,t)}});return e}),define("hilo/event/EventMixin",["hilo/core/Class"],function(t){var e={_listeners:null,on:function(t,e,i){for(var r=this._listeners=this._listeners||{},n=r[t]=r[t]||[],a=0,o=n.length;a-1&&o.splice(c,1)}}return 0==o.length&&delete a[n],!0}return!1}},i=t.create({constructor:function(t,e,i){this.type=t,this.target=e,this.detail=i,this.timeStamp=+new Date},type:null,target:null,detail:null,timeStamp:0,stopImmediatePropagation:function(){this._stopped=!0}}),r=window.Event;if(r){var n=r.prototype,a=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){a&&a.call(this),this._stopped=!0}}return e}),define("hilo/view/Drawable",["hilo/core/Class","hilo/util/util"],function(t,e){var i=t.create({constructor:function(t){this.init(t)},image:null,rect:null,init:function(t){var r=this,n=r.image;i.isDrawable(t)?r.image=t:e.copy(r,t,!0);var a=r.image;if("string"==typeof a){if(!n||a!==n.getAttribute("src")){r.image=null;var o=new Image;return t.crossOrigin&&(o.crossOrigin=t.crossOrigin),o.onload=function(){o.onload=null,r.init(o)},void(o.src=a)}a=r.image=n}a&&!r.rect&&(r.rect=[0,0,a.width,a.height])},Statics:{isDrawable:function(t){if(!t||!t.tagName)return!1;var e=t.tagName.toLowerCase();return"img"===e||"canvas"===e||"video"===e}}});return i}),define("hilo/renderer/Renderer",["hilo/core/Class","hilo/util/util"],function(t,e){var i=t.create({constructor:function(t){t=t||{},e.copy(this,t,!0)},renderType:null,canvas:null,stage:null,blendMode:"source-over",startDraw:function(t){},draw:function(t){},endDraw:function(t){},transform:function(){},hide:function(){},remove:function(t){},clear:function(t,e,i,r){},resize:function(t,e){}});return i}),define("hilo/renderer/CanvasRenderer",["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer"],function(t,e,i){var r=t.create({Extends:i,constructor:function(t){r.superclass.constructor.call(this,t),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(t){return!!(t.visible&&t.alpha>0)&&(t===this.stage&&this.context.clearRect(0,0,t.width,t.height),t.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=t.blendMode),this.context.save(),!0)},draw:function(t){var e=this.context,i=t.width,r=t.height,n=t.background;n&&(e.fillStyle=n,e.fillRect(0,0,i,r));var a=t.drawable,o=a&&a.image;if(o){var s=a.rect,h=s[2],l=s[3],c=s[4],u=s[5];if(!h||!l)return;i||r||(i=t.width=h,r=t.height=l),(c||u)&&e.translate(c-.5*h,u-.5*l),e.drawImage(o,s[0],s[1],h,l,0,0,i,r)}},endDraw:function(t){this.context.restore()},transform:function(t){var i=t.drawable;if(i&&i.domElement)return void e.setElementStyleByView(t);var r=this.context,n=t.scaleX,a=t.scaleY;if(t===this.stage){var o=this.canvas.style,s=t._scaleX,h=t._scaleY,l=!1;(!s&&1!=n||s&&s!=n)&&(t._scaleX=n,o.width=n*t.width+"px",l=!0),(!h&&1!=a||h&&h!=a)&&(t._scaleY=a,o.height=a*t.height+"px",l=!0),l&&t.updateViewport()}else{var c=t.x,u=t.y,d=t.pivotX,f=t.pivotY,p=t.rotation%360,v=t.transform,m=t.mask;m&&(m._render(this),r.clip());var g=t.align;if(g){var _=t.getAlignPosition();c=_.x,u=_.y}v?r.transform(v.a,v.b,v.c,v.d,v.tx,v.ty):(0==c&&0==u||r.translate(c,u),0!=p&&r.rotate(p*Math.PI/180),1==n&&1==a||r.scale(n,a),0==d&&0==f||r.translate(-d,-f))}t.alpha>0&&(r.globalAlpha*=t.alpha)},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},clear:function(t,e,i,r){this.context.clearRect(t,e,i,r)},resize:function(t,e){var i=this.canvas,r=this.stage,n=i.style;i.width=t,i.height=e,n.width=r.width*r.scaleX+"px",n.height=r.height*r.scaleY+"px"}});return r}),define("hilo/renderer/DOMRenderer",["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer","hilo/view/Drawable"],function(t,e,i,r){var n=function(){function a(t,i){var r=t.tagName||"div",n=i.image,a=t.width||n&&n.width,o=t.height||n&&n.height,s=e.createElement(r),h=s.style;if(t.id&&(s.id=t.id),h.position="absolute",h.left=(t.left||0)+"px",h.top=(t.top||0)+"px",h.width=a+"px",h.height=o+"px","canvas"==r){if(s.width=a,s.height=o,n){var l=s.getContext("2d"),c=i.rect||[0,0,a,o];l.drawImage(n,c[0],c[1],c[2],c[3],t.x||0,t.y||0,t.width||c[2],t.height||c[3])}}else if(h.opacity=void 0!=t.alpha?t.alpha:1,(t===this.stage||t.clipChildren)&&(h.overflow="hidden"),n&&n.src){h.backgroundImage="url("+n.src+")";var u=t.rectX||0,d=t.rectY||0;h.backgroundPosition=-u+"px "+-d+"px"}return s}return t.create({Extends:i,constructor:function(t){n.superclass.constructor.call(this,t)},renderType:"dom",startDraw:function(t){var e=t.drawable=t.drawable||new r;return e.domElement=e.domElement||a(t,e),!0},draw:function(t){var e=t.parent,i=t.drawable.domElement,r=i.parentNode;if(e){var n=e.drawable.domElement;if(n!=r&&n.appendChild(i),!t.width&&!t.height){var a=t.drawable.rect;a&&(a[2]||a[3])&&(t.width=a[2],t.height=a[3])}}else t!==this.stage||r||(i.style.overflow="hidden",this.canvas.appendChild(i))},transform:function(t){if(e.setElementStyleByView(t),t===this.stage){var i=this.canvas.style,r=t._scaleX,n=t._scaleY,a=t.scaleX,o=t.scaleY;(!r&&1!=a||r&&r!=a)&&(t._scaleX=a,i.width=a*t.width+"px"),(!n&&1!=o||n&&n!=o)&&(t._scaleY=o,i.height=o*t.height+"px")}},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},hide:function(t){var e=t.drawable&&t.drawable.domElement;e&&(e.style.display="none")},resize:function(t,e){var i=this.canvas.style;i.width=t+"px",i.height=e+"px","absolute"!=i.position&&(i.position="relative")}})}();return n}),define("hilo/renderer/WebGLRenderer",["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer","hilo/geom/Matrix"],function(t,e,i,r){var n=Math.PI/180,a=t.create({Extends:i,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var t=document.createElement("canvas");t.getContext&&(t.getContext("webgl")||t.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(t){a.superclass.constructor.call(this,t);var e=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=a.MAX_BATCH_NUM,this.positionStride=4*a.ATTRIBUTE_NUM;var i=this.maxBatchNum*a.ATTRIBUTE_NUM*4,r=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*i),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(r);for(var n=0,o=0;n0)&&(t===this.stage&&this.clear(),!0)},draw:function(t){var e=t.width,i=t.height,r=(t.background,t.drawable),n=r&&r.image;if(n){var a=r.rect,o=a[2],s=a[3];e||i||(e=t.width=o,i=t.height=s),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var h=this._createVertexs(n,a[0],a[1],o,s,0,0,e,i),l=this.batchIndex*this.positionStride,c=this.float32Array,u=this.uint32Array,d=(t.tint>>16)+(65280&t.tint)+((255&t.tint)<<16)+(255*t.__webglRenderAlpha<<24);c[l+0]=h[0],c[l+1]=h[1],c[l+2]=h[2],c[l+3]=h[3],u[l+4]=d,c[l+5]=h[4],c[l+6]=h[5],c[l+7]=h[6],c[l+8]=h[7],u[l+9]=d,c[l+10]=h[8],c[l+11]=h[9],c[l+12]=h[10],c[l+13]=h[11],u[l+14]=d,c[l+15]=h[12],c[l+16]=h[13],c[l+17]=h[14],c[l+18]=h[15],u[l+19]=d;for(var f=t.__webglWorldMatrix,p=0;p<4;p++){var v=c[l+5*p],m=c[l+5*p+1];c[l+5*p]=f.a*v+f.c*m+f.tx,c[l+5*p+1]=f.b*v+f.d*m+f.ty}t.__textureImage=n,this.sprites[this.batchIndex++]=t}},endDraw:function(t){t===this.stage&&this._renderBatches()},transform:function(t){var i=t.drawable;if(i&&i.domElement)return void e.setElementStyleByView(t);var n=t.scaleX,a=t.scaleY;if(t===this.stage){var o=this.canvas.style,s=t._scaleX,h=t._scaleY,l=!1;(!s&&1!=n||s&&s!=n)&&(t._scaleX=n,o.width=n*t.width+"px",l=!0),(!h&&1!=a||h&&h!=a)&&(t._scaleY=a,o.height=a*t.height+"px",l=!0),l&&t.updateViewport(),t.__webglWorldMatrix=t.__webglWorldMatrix||new r(1,0,0,1,0,0)}else t.parent&&(t.__webglWorldMatrix=t.__webglWorldMatrix||new r(1,0,0,1,0,0),this._setConcatenatedMatrix(t,t.parent));t.alpha>0&&(t.parent&&t.parent.__webglRenderAlpha?t.__webglRenderAlpha=t.alpha*t.parent.__webglRenderAlpha:t.__webglRenderAlpha=t.alpha)},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},clear:function(t,e,i,r){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(t,e){if(this.width!==t||this.height!==e){var i=this.canvas,r=this.stage,n=i.style;this.width=i.width=t,this.height=i.height=e,n.width=r.width*r.scaleX+"px",n.height=r.height*r.scaleY+"px",this.gl.viewport(0,0,t,e),this.canvasHalfWidth=.5*t,this.canvasHalfHeight=.5*e,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var t=this.gl;t.bufferSubData(t.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var e=0,i=0,r=null,n=0;n0&&(i.bindTexture(i.TEXTURE_2D,this._getTexture(this.sprites[t])),i.drawElements(i.TRIANGLES,6*r,i.UNSIGNED_SHORT,6*t*2))},_uploadProjectionTransform:function(t){this._projectionTransformElements&&!t||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var t=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",e="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new o(this,{v:t,f:e},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(t,e,i,r,n,a,o,s,h){var l=this.__tempVertexs||[],c=t.width,u=t.height;r/=c,n/=u,e/=c,i/=u,s=s,h=h,a=a,o=o,r+e>1&&(r=1-e),n+i>1&&(n=1-i);var d=0;return l[d++]=a,l[d++]=o,l[d++]=e,l[d++]=i,l[d++]=a+s,l[d++]=o,l[d++]=e+r,l[d++]=i,l[d++]=a,l[d++]=o+h,l[d++]=e,l[d++]=i+n,l[d++]=a+s,l[d++]=o+h,l[d++]=e+r,l[d++]=i+n,l},_setConcatenatedMatrix:function(t,e){var i=t.__webglWorldMatrix,r=1,a=0,o=t.rotation%360,s=t.pivotX,h=t.pivotY,l=t.scaleX,c=t.scaleY,u=t.transform;if(u)i.copy(u);else{if(o){var d=o*n;r=Math.cos(d),a=Math.sin(d)}var f=t.getAlignPosition();i.a=r*l,i.b=a*l,i.c=-a*c,i.d=r*c,i.tx=f.x-i.a*s-i.c*h,i.ty=f.y-i.b*s-i.d*h}i.concat(e.__webglWorldMatrix)},_getTexture:function(t){var e=t.__textureImage,i=this._cacheTexture[e.src];return i||(i=this.activeShader.uploadTexture(e)),i}}),o=function(t,e,i){this.renderer=t,this.gl=t.gl,this.program=this._createProgram(this.gl,e.v,e.f),i=i||{},this.attributes=i.attributes||[],this.uniforms=i.uniforms||[]};return o.prototype={active:function(){var t=this,e=t.renderer,i=t.gl,r=t.program;r&&i&&(e.activeShader=t,i.useProgram(r),t.attributes.forEach(function(t){e[t]=i.getAttribLocation(r,t),i.enableVertexAttribArray(e[t])}),t.uniforms.forEach(function(t){e[t]=i.getUniformLocation(r,t)}),t.width===e.width&&t.height===e.height||(t.width=e.width,t.height=e.height,e._uploadProjectionTransform()))},uploadTexture:function(t){var e=this.gl,i=this.renderer,r=e.createTexture(),n=i.u_Sampler;return e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,r),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.uniform1i(n,0),e.bindTexture(e.TEXTURE_2D,null),this.renderer._cacheTexture[t.src]=r,r},_createProgram:function(t,e,i){var r=this._createShader(t,t.VERTEX_SHADER,e),n=this._createShader(t,t.FRAGMENT_SHADER,i);if(!r||!n)return null;var a=t.createProgram();if(a){t.attachShader(a,r),t.attachShader(a,n),t.linkProgram(a),t.deleteShader(n),t.deleteShader(r);var o=t.getProgramParameter(a,t.LINK_STATUS);if(!o){var s=t.getProgramInfoLog(a);return console.log("Failed to link program: "+s),t.deleteProgram(a),null}}return a},_createShader:function(t,e,i){var r=t.createShader(e);if(r){t.shaderSource(r,i),t.compileShader(r);var n=t.getShaderParameter(r,t.COMPILE_STATUS);if(!n){var a=t.getShaderInfoLog(r);return console.log("Failed to compile shader: "+a),t.deleteShader(r),null}}return r}},a}),define("hilo/view/View",["hilo/core/Hilo","hilo/core/Class","hilo/event/EventMixin","hilo/geom/Matrix","hilo/util/util"],function(t,e,i,r,n){var a=function(){function a(t,e,i){for(var r,n,a,o,s=0,h=!1,l=0,c=i.length;ld.x?(r=d.x,n=u.x):(r=u.x,n=d.x),t>=r&&t<=n))h=!0;else if(u.y>d.y?(a=d.y,o=u.y):(a=u.y,o=d.y),!(eo)){var f=(e-u.y)*(d.x-u.x)/(d.y-u.y)+u.x;if(f>t?s++:f==t&&(h=!0),u.x>t&&u.y==e){var p=i[(c+l-1)%c];(p.ye||p.y>e&&d.ys?s=c:cl?l=c:c=0)return!1;u>i.overlap&&(i.overlap=u,i.normal.x=p.x,i.normal.y=p.y)}return i}return e.create({Mixes:i,constructor:function(e){e=e||{},this.id=this.id||e.id||t.getUid("View"),n.copy(this,e,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,transform:null,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,r,n,a,o,s=this.width,h=this.height,l=this.getConcatenatedMatrix(),c=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:h},{x:0,y:h}],u=[],d=0,f=c.length;de?r=e:ni?a=i:o>1,r=0;break;case"TR":i=o-n,r=0;break;case"L":i=0,r=s-a>>1;break;case"C":i=o-n>>1,r=s-a>>1;break;case"R":i=o-n,r=s-a>>1;break;case"BL":i=0,r=s-a;break;case"B":i=o-n>>1,r=s-a;break;case"BR":i=o-n,r=s-a}}return{x:i,y:r}},hitTestPoint:function(t,e,i){var r=this.getBounds(),n=t>=r.x&&t<=r.x+r.width&&e>=r.y&&e<=r.y+r.height;return n&&i&&(n=a(t,e,r)),n},hitTestObject:function(t,e){var i=this.getBounds(),r=t.getBounds(),n=i.x<=r.x+r.width&&r.x<=i.x+i.width&&i.y<=r.y+r.height&&r.y<=i.y+i.height;return n&&e&&(n=o(i,r)),!!n},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=n.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return t.viewToString(this)}})}();return a}),define("hilo/view/CacheMixin",["hilo/view/Drawable","hilo/util/browser"],function(t,e){var i,r,n={_cacheDirty:!0,cache:function(t){(t||this._cacheDirty||!this.drawable)&&this.updateCache()},updateCache:function(){e.supportCanvas&&(i||(i=document.createElement("canvas"),r=i.getContext("2d")),i.width=this.width,i.height=this.height,this._draw(r),this.drawable=this.drawable||new t,this.drawable.init({image:i.toDataURL()}),this._cacheDirty=!1)},setCacheDirty:function(t){this._cacheDirty=t}};return n}),define("hilo/view/Container",["hilo/core/Hilo","hilo/core/Class","hilo/view/View"],function(t,e,i){var r=e.create({Extends:i,constructor:function(e){e=e||{},this.id=this.id||e.id||t.getUid("Container"),r.superclass.constructor.call(this,e),this.children?this._updateChildren():this.children=[]},children:null,pointerChildren:!0,clipChildren:!1,getNumChildren:function(){return this.children.length},addChildAt:function(t,e){var i=this.children,r=i.length,n=t.parent;e=e<0?0:e>r?r:e;var a=this.getChildIndex(t);if(a==e)return this;if(a>=0?(i.splice(a,1),e=e==r?r-1:e):n&&n.removeChild(t),i.splice(e,0,t),a<0)this._updateChildren(e);else{var o=a=e.length)return null;var i=e[t];if(i){if(!i.__renderer)for(var r=i;r=r.parent;){if(r.renderer){i.__renderer=r.renderer;break}if(r.__renderer){i.__renderer=r.__renderer;break}}i.__renderer&&i.__renderer.remove(i),i.parent=null,i.depth=-1}return e.splice(t,1),this._updateChildren(t),i},removeChild:function(t){return this.removeChildAt(this.getChildIndex(t))},removeChildById:function(t){for(var e,i=this.children,r=0,n=i.length;r=e.length?null:e[t]},getChildById:function(t){for(var e,i=this.children,r=0,n=i.length;r=0&&r!=e){var n=i.length;e=e<0?0:e>=n?n-1:e,i.splice(r,1),i.splice(e,0,t),this._updateChildren()}return this},swapChildren:function(t,e){var i=this.children,r=this.getChildIndex(t),n=this.getChildIndex(e);t.depth=n,i[n]=t,e.depth=r,i[r]=e},swapChildrenAt:function(t,e){var i=this.children,r=this.getChildAt(t),n=this.getChildAt(e);r.depth=e,i[e]=r,n.depth=t,i[t]=n},sortChildren:function(t){var e=t,i=this.children;if("string"==typeof e){var r=e;e=function(t,e){return e[r]-t[r]}}i.sort(e),this._updateChildren()},_updateChildren:function(t,e){var i,r=this.children;t=t||0,e=e||r.length;for(var n=t;n=0;l--)if(a=h[l],!(!a||!a.visible||a.alpha<=0||n&&!a.pointerEnabled))if(a.children&&a.children.length&&(!n||a.pointerChildren)&&(o=a.getViewAtPoint(t,e,i,r,n)),o){if(!r)return o;o.length&&(s=s.concat(o))}else if(a.hitTestPoint(t,e,i)){if(!r)return a;s.push(a)}return r&&s.length?s:null},render:function(t,e){r.superclass.render.call(this,t,e);var i,n,a,o=this.children.slice(0);for(i=0,n=o.length;ir?r:e,i[e]=t,t.name&&(this._frameNames[t.name]=t),(0!=e||this.width)&&this.height||(this.width=t.rect[2],this.height=t.rect[3]),this},getFrame:function(t){if("number"==typeof t){var e=this._frames;return t<0||t>=e.length?null:e[t]}return this._frameNames[t]},getFrameIndex:function(t){var e=this._frames,i=e.length,r=-1;if("number"==typeof t)r=t;else{var n="string"==typeof t?this._frameNames[t]:t;if(n)for(var a=0;a=i?i-1:r,this.paused=e,this._firstRender=!0,this},_render:function(t,e){var i,r=this.currentFrame;if(this._firstRender?(i=r,this._firstRender=!1):i=this._nextFrame(e),i!=r){this.currentFrame=i;var a=this._frames[i].callback;a&&a.call(this)}this.onEnterFrame&&this.onEnterFrame(i),this.drawable.init(this._frames[i]),n.superclass._render.call(this,t,e)},_nextFrame:function(t){var e=this._frames,i=e.length,r=this.currentFrame,n=e[r],a=n.duration||this.interval,o=this._frameElapsed,s=0!=r||this.drawable?o+(this.timeBased?t:1):0;return o=this._frameElapsed=s=i-1)&&this.stop(),this.paused||0!=o||(null!=n.next?r=this.getFrameIndex(n.next):r>=i-1?r=0:this.drawable&&r++),r},setFrameCallback:function(t,e){return t=this.getFrame(t),t&&(t.callback=e),this},onEnterFrame:null});return n}),define("hilo/view/DOMElement",["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/Drawable"],function(t,e,i,r){var n=e.create({Extends:i,constructor:function(e){e=e||{},this.id=this.id||e.id||t.getUid("DOMElement"),n.superclass.constructor.call(this,e),this.drawable=new r;var i=this.drawable.domElement=e.element||t.createElement("div");i.id=this.id,this.pointerEnabled&&!i.style.pointerEvents&&(i.style.pointerEvents="visible")},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||(t.transform(this),this.visible&&this.alpha>0&&this.render(t,e))},render:function(e,i){if("dom"!==e.renderType){var r=e.canvas,n=this.parent,a=e._domElementContainer;e._domElementContainer||(a=e._domElementContainer=t.createElement("div",{style:{position:"absolute",transform:"scale3d("+n.scaleX+","+n.scaleY+", 1)",transformOrigin:"0 0",zIndex:"1"}}),r.parentNode.insertBefore(e._domElementContainer,r.nextSibling));var o,s=this.drawable.domElement,h=this.depth,l=a.childNodes[0];if(s.parentNode)return;for(;l&&3!=l.nodeType&&(o=parseInt(l.style.zIndex)||0,!(o<=0||o>h));)l=l.nextSibling;a.insertBefore(this.drawable.domElement,l)}else e.draw(this)}});return n}),define("hilo/view/Graphics",["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/CacheMixin"],function(t,e,i,r){var n=function(){var a=document.createElement("canvas"),o=a.getContext&&a.getContext("2d");return e.create({Extends:i,Mixes:r,constructor:function(e){e=e||{},this.id=this.id||e.id||t.getUid("Graphics"),n.superclass.constructor.call(this,e),this._actions=[]},lineWidth:1,lineAlpha:1,lineCap:null,lineJoin:null,miterLimit:10,hasStroke:!1,strokeStyle:"0",hasFill:!1,fillStyle:"0",fillAlpha:0,lineStyle:function(t,e,i,r,n,a){var o=this,s=o._addAction;return s.call(o,["lineWidth",o.lineWidth=t||1]),s.call(o,["strokeStyle",o.strokeStyle=e||"0"]),s.call(o,["lineAlpha",o.lineAlpha=i||1]),void 0!=r&&s.call(o,["lineCap",o.lineCap=r]),void 0!=n&&s.call(o,["lineJoin",o.lineJoin=n]),void 0!=a&&s.call(o,["miterLimit",o.miterLimit=a]),o.hasStroke=!0,o},beginFill:function(t,e){var i=this,r=i._addAction;return r.call(i,["fillStyle",i.fillStyle=t]),r.call(i,["fillAlpha",i.fillAlpha=e||1]),i.hasFill=!0,i},endFill:function(){var t=this,e=t._addAction;return t.hasStroke&&e.call(t,["stroke"]),t.hasFill&&e.call(t,["fill"]),t.setCacheDirty(!0),t},beginLinearGradientFill:function(t,e,i,r,n,a){for(var s=this,h=o.createLinearGradient(t,e,i,r),l=0,c=n.length;l1?a.slice(1):null;"function"==typeof t[o]?t[o].apply(t,s):t[o]=a[1]}},render:function(t,e){var i=this;"canvas"===t.renderType?i._draw(t.context):(i.cache(),t.draw(i))},clear:function(){var t=this;return t._actions.length=0,t.lineWidth=1,t.lineAlpha=1,t.lineCap=null,t.lineJoin=null,t.miterLimit=10,t.hasStroke=!1,t.strokeStyle="0",t.hasFill=!1,t.fillStyle="0",t.fillAlpha=1,t.setCacheDirty(!0),t},_addAction:function(t){var e=this;return e._actions.push(t),e}})}();return n}),define("hilo/view/Text",["hilo/core/Class","hilo/core/Hilo","hilo/view/View","hilo/view/CacheMixin"],function(t,e,i,r){var n=t.create({Extends:i,Mixes:r,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("Text"),n.superclass.constructor.call(this,t),t.font||(this.font="12px arial"),this._fontHeight=n.measureFontHeight(this.font)},text:null,color:"#000",textAlign:null,textVAlign:null,outline:!1,lineSpacing:0,maxWidth:200,font:null,textWidth:0,textHeight:0,setFont:function(t){var e=this;return e.font!==t&&(e.font=t,e._fontHeight=n.measureFontHeight(t)),e},render:function(t,e){var i=this;if("canvas"===t.renderType)this.drawable?t.draw(i):i._draw(t.context);else if("dom"===t.renderType){var r=i.drawable,n=r.domElement,a=n.style;a.font=i.font,a.textAlign=i.textAlign,a.color=i.color,a.width=i.width+"px",a.height=i.height+"px",a.lineHeight=i._fontHeight+i.lineSpacing+"px",n.innerHTML=i.text,t.draw(this)}else i.cache(),t.draw(i)},_draw:function(t){var e=this,i=e.text.toString();if(i){t.font=e.font,t.textAlign=e.textAlign,t.textBaseline="top";var r,n,a,o,s,h=i.split(/\r\n|\r|\n|/),l=0,c=0,u=e._fontHeight+e.lineSpacing,d=[];for(r=0,o=h.length;re.maxWidth?(d.push({text:m,y:c}),l>1;break;case"bottom":_=e.height-e.textHeight}var x=e.background;for(x&&(t.fillStyle=x,t.fillRect(0,0,e.width,e.height)),e.outline?t.strokeStyle=e.color:t.fillStyle=e.color,r=0;r>1;break;case"right":case"end":n=a}r.outline?t.strokeText(e,n,i):t.fillText(e,n,i)},Statics:{measureFontHeight:function(t){var i,r=document.documentElement,n=e.createElement("div",{style:{font:t,position:"absolute"},innerHTML:"M"});return r.appendChild(n),i=n.offsetHeight,r.removeChild(n),i}}});return n}),define("hilo/view/BitmapText",["hilo/core/Class","hilo/core/Hilo","hilo/view/Container","hilo/view/Bitmap"],function(t,e,i,r){var n=t.create({Extends:i,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("BitmapText"),n.superclass.constructor.call(this,t);var i=t.text+"";i&&(this.text="",this.setText(i)),this.pointerChildren=!1},glyphs:null,letterSpacing:0,text:"",textAlign:"left",setText:function(t){var e=this,i=t.toString(),r=i.length;if(e.text!=i){e.text=i;var n,a,o,s,h=0,l=0,c=0;for(n=0;n0?e.letterSpacing:0),e.children[n]?(s=e.children[n],s.setImage(o.image,o.rect)):(s=e._createBitmap(o),e.addChild(s)),s.x=c,h=c+o.rect[2],l=Math.max(l,o.rect[3]));for(n=e.children.length-1;n>=r;n--)e._releaseBitmap(e.children[n]),e.children[n].removeFromParent();return e.width=h,e.height=l,this.setTextAlign(),e}},_createBitmap:function(t){var e;return n._pool.length?(e=n._pool.pop(),e.setImage(t.image,t.rect)):e=new r({image:t.image,rect:t.rect}),e},_releaseBitmap:function(t){n._pool.push(t)},setTextAlign:function(t){switch(this.textAlign=t||this.textAlign,this.textAlign){case"center":this.pivotX=.5*this.width;break;case"right":this.pivotX=this.width;break;case"left":default:this.pivotX=0}return this},hasGlyphs:function(t){var e=this.glyphs;if(!e)return!1;t=t.toString();var i,r=t.length;for(i=0;i=this._targetFPS?(this._measuredFPS=1e3/(this._tickTime/this._tickCount)+.5>>0,this._tickCount=0,this._tickTime=0):this._tickTime+=t-this._lastTime,this._lastTime=t;for(var r=i.slice(0),n=0,a=r.length;n=0&&e.splice(i,1)},nextTick:function(t){var e=this,i={tick:function(r){e.removeTick(i),t()}};return e.addTick(i),i},timeout:function(t,e){var i=this,r=(new Date).getTime()+e,n={tick:function(){var e=(new Date).getTime(),a=e-r;a>=0&&(i.removeTick(n),t())}};return i.addTick(n),n},interval:function(t,e){var i=this,r=(new Date).getTime()+e,n={tick:function(){var i=(new Date).getTime(),n=i-r;n>=0&&(n=r)return-1;for(e<0&&(e=r+e),i=e;i=1?1:s;var l=n.ease?n.ease(s):s;n.reverse&&(n._reverseFlag<0&&(s=1-s,l=1-l),s<1e-7&&(n.repeat>0&&n._repeatCount++>=n.repeat||0==n.repeat&&!n.loop?h=!0:(n._startTime=i(),n._pausedTime=0,n._reverseFlag*=-1))),n.isStart||(n.setProps(n._fromProps,n._toProps),n.isStart=!0,n.onStart&&n.onStart.call(n,n)),n.time=a,n._render(l),(o=n.onUpdate)&&o.call(n,s,n),s>=1&&(n.reverse?(n._startTime=i(),n._pausedTime=0,n._reverseFlag*=-1):n.loop||n.repeat>0&&n._repeatCount++0&&u<=t?(c._render(s),c.time=a,e.add(c)):h&&(u<0||u>t)&&c.start()}return h?((o=n.onComplete)&&o.call(n,n),!0):void 0}}},Statics:{_tweens:[],tick:function(){var t,r,n=e._tweens,a=n.length;for(r=0;r-1&&n.splice(i,1);else for(i=0;i=i)return void t.fire("complete");if(t._currentIndexe.z})},tick:function(){this.sortZ()}});return o}();return i}),define("hilo/game/ParticleSystem",["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/Container","hilo/view/Drawable","hilo/util/util"],function(t,e,i,r,n,a){var o=function(){function o(t,e){return e?t+2*(Math.random()-.5)*e:t}for(var s=["x","y","vx","vy","ax","ay","rotation","rotationV","scale","scaleV","alpha","alphaV","life"],h=[],l=0,c=s.length;l=this._emitTime&&(this._currentRunTime=0,this._emitTime=o(this.emitTime,this.emitTimeVar),this._emit()),this._totalRunTime>=this.totalTime&&this.stop())},_emit:function(){for(var t=o(this.emitNum,this.emitNumVar)>>0,e=0;e=0;e--)this.children[e].destroy()}}),v=e.create({Extends:i,constructor:function(e){this.id=this.id||e.id||t.getUid("Particle"),v.superclass.constructor.call(this,e),this.init(e)},onUpdate:function(t){if(t*=.001,this._died)return!1;var e=this.ax+this.system.gx,i=this.ay+this.system.gy;return this.vx+=e*t,this.vy+=i*t,this.x+=this.vx*t,this.y+=this.vy*t,this.rotation+=this.rotationV,this._time>.1&&(this.alpha+=this.alphaV),this.scale+=this.scaleV,this.scaleX=this.scaleY=this.scale,this._time+=t,this._time>=this.life||this.alpha<=0?(this.destroy(),!1):void 0},setImage:function(t,e){this.drawable=this.drawable||new n,e=e||[0,0,t.width,t.height],this.width=e[2],this.height=e[3],this.drawable.rect=e,this.drawable.image=t},destroy:function(){this._died=!0,this.alpha=0,this.removeFromParent(),f.push(this)},init:function(t){this.system=t.system,this._died=!1,this._time=0,this.alpha=1;for(var e=0,i=h.length;e>0]),this.setImage(t.image,a),void 0!==t.pivotX&&(this.pivotX=t.pivotX*a[2]),void 0!==t.pivotY&&(this.pivotY=t.pivotY*a[3])}},Statics:{create:function(t){if(f.length>0){var e=f.pop();return e.init(t),e}return new v(t)}}});return p}();return o}); \ No newline at end of file diff --git a/build/amd/hilo-amd.zip b/build/amd/hilo-amd.zip index 260737e6925d6b8da31f36ba67f1513d28d20a9d..d268a6b09849392f85dd59e521d223b9db24a0dc 100644 GIT binary patch delta 177881 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%0DVSKruI}_5loi}w{W)|^dDneQq^PRgJE}@ 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νv3vffGn$|wp> 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 z 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

    wCXS(5HJKu3)x4fZleUzV~nZXXT~p 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

    y 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 z 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

    {rnKud|MPpNb2~)a^wBU}- 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�mc;30+pOyjw1mv0)#Q;nS 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 z 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 z%0D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 z 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 diff --git a/build/amd/hilo/core/Class.js b/build/amd/hilo/core/Class.js index 0a9338ac..813b97bd 100644 --- a/build/amd/hilo/core/Class.js +++ b/build/amd/hilo/core/Class.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/core/Class.min.js b/build/amd/hilo/core/Class.min.js index 2d838441..c19d23d8 100644 --- a/build/amd/hilo/core/Class.min.js +++ b/build/amd/hilo/core/Class.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/core/Hilo.js b/build/amd/hilo/core/Hilo.js index 0684d9e8..fb693436 100644 --- a/build/amd/hilo/core/Hilo.js +++ b/build/amd/hilo/core/Hilo.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -27,7 +27,7 @@ var Hilo = { * Hilo version * @type String */ - version: '1.1.11', + version: '1.2.0', /** * @language=en * Gets a globally unique id. Such as Stage1, Bitmap2 etc. @@ -231,12 +231,23 @@ var Hilo = { if (this.cacheStateIfChanged(obj, ['depth'], stateCache)) { style.zIndex = obj.depth + 1; } - if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { - style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + if (obj.transform){ + var transform = obj.transform; + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = '0 0'; + } + style[prefix + 'Transform'] = 'matrix3d(' + transform.a + ', '+ transform.b + ', 0, 0, '+ transform.c + ', '+ transform.d + ', 0, 0, 0, 0, 1, 0, '+ transform.tx + ', '+ transform.ty + ', 0, 1)'; } - if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { - style[prefix + 'Transform'] = this.getTransformCSS(obj); + else{ + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + } + + if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { + style[prefix + 'Transform'] = this.getTransformCSS(obj); + } } + if (this.cacheStateIfChanged(obj, ['background'], stateCache)) { style.backgroundColor = obj.background; } diff --git a/build/amd/hilo/core/Hilo.min.js b/build/amd/hilo/core/Hilo.min.js index a9a4151e..fa5e55cc 100644 --- a/build/amd/hilo/core/Hilo.min.js +++ b/build/amd/hilo/core/Hilo.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ -define("hilo/core/Hilo",["hilo/util/browser","hilo/util/util"],function(e,t){var a=window,o=document,r=o.documentElement,n=0,i={},s={version:"1.1.11",getUid:function(e){var t=++n;if(e){var a=e.charCodeAt(e.length-1);return a>=48&&a<=57&&(e+="_"),e+t}return t},viewToString:function(e){for(var t,a=e;a;)t=t?a.id+"."+t:a.id,a=a.parent;return t},copy:function(e,a,o){return t.copy(e,a,o),i.copy||(i.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),e},browser:e,event:{POINTER_START:e.POINTER_START,POINTER_MOVE:e.POINTER_MOVE,POINTER_END:e.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(e){var t;try{t=e.getBoundingClientRect()}catch(o){t={top:e.offsetTop,left:e.offsetLeft,right:e.offsetLeft+e.offsetWidth,bottom:e.offsetTop+e.offsetHeight}}var n=(a.pageXOffset||r.scrollLeft)-(r.clientLeft||0)||0,i=(a.pageYOffset||r.scrollTop)-(r.clientTop||0)||0,s=a.getComputedStyle?getComputedStyle(e):e.currentStyle,c=parseInt,h=c(s.paddingLeft)+c(s.borderLeftWidth)||0,d=c(s.paddingTop)+c(s.borderTopWidth)||0,f=c(s.paddingRight)+c(s.borderRightWidth)||0,l=c(s.paddingBottom)+c(s.borderBottomWidth)||0,g=t.top||0,p=t.left||0,T=t.right||0,m=t.bottom||0;return{left:p+n+h,top:g+i+d,width:T-f-p-h,height:m-l-g-d}},createElement:function(e,t){var a,r,n,i=o.createElement(e);for(a in t)if(r=t[a],"style"===a)for(n in r)i.style[n]=r[n];else i[a]=r;return i},getElement:function(e){return o.getElementById(e)},setElementStyleByView:function(e){var t=e.drawable,a=t.domElement.style,o=e._stateCache||(e._stateCache={}),r=s.browser.jsVendor,n="px",i=!1;if(this.cacheStateIfChanged(e,["visible"],o)&&(a.display=e.visible?"":"none"),this.cacheStateIfChanged(e,["alpha"],o)&&(a.opacity=e.alpha),e.visible&&!(e.alpha<=0)){this.cacheStateIfChanged(e,["width"],o)&&(a.width=e.width+n),this.cacheStateIfChanged(e,["height"],o)&&(a.height=e.height+n),this.cacheStateIfChanged(e,["depth"],o)&&(a.zIndex=e.depth+1),(i=this.cacheStateIfChanged(e,["pivotX","pivotY"],o))&&(a[r+"TransformOrigin"]=e.pivotX+n+" "+e.pivotY+n),(this.cacheStateIfChanged(e,["x","y","rotation","scaleX","scaleY"],o)||i)&&(a[r+"Transform"]=this.getTransformCSS(e)),this.cacheStateIfChanged(e,["background"],o)&&(a.backgroundColor=e.background),a.pointerEvents||(a.pointerEvents="none");var c=t.image;if(c){var h=c.src;h!==o.image&&(o.image=h,a.backgroundImage="url("+h+")");var d=t.rect;if(d){var f=d[0],l=d[1];f!==o.sx&&(o.sx=f,a.backgroundPositionX=-f+n),l!==o.sy&&(o.sy=l,a.backgroundPositionY=-l+n)}}var g=e.mask;if(g){var p=g.drawable.domElement.style.backgroundImage;p!==o.maskImage&&(o.maskImage=p,a[r+"MaskImage"]=p,a[r+"MaskRepeat"]="no-repeat");var T=g.x,m=g.y;T===o.maskX&&m===o.maskY||(o.maskX=T,o.maskY=m,a[r+"MaskPosition"]=T+n+" "+m+n)}}},cacheStateIfChanged:function(e,t,a){var o,r,n,i,s=!1;for(o=0,r=t.length;o=48&&a<=57&&(t+="_"),t+e}return e},viewToString:function(t){for(var e,a=t;a;)e=e?a.id+"."+e:a.id,a=a.parent;return e},copy:function(t,a,o){return e.copy(t,a,o),i.copy||(i.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),t},browser:t,event:{POINTER_START:t.POINTER_START,POINTER_MOVE:t.POINTER_MOVE,POINTER_END:t.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(t){var e;try{e=t.getBoundingClientRect()}catch(o){e={top:t.offsetTop,left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,bottom:t.offsetTop+t.offsetHeight}}var n=(a.pageXOffset||r.scrollLeft)-(r.clientLeft||0)||0,i=(a.pageYOffset||r.scrollTop)-(r.clientTop||0)||0,s=a.getComputedStyle?getComputedStyle(t):t.currentStyle,c=parseInt,h=c(s.paddingLeft)+c(s.borderLeftWidth)||0,f=c(s.paddingTop)+c(s.borderTopWidth)||0,d=c(s.paddingRight)+c(s.borderRightWidth)||0,l=c(s.paddingBottom)+c(s.borderBottomWidth)||0,g=e.top||0,p=e.left||0,m=e.right||0,T=e.bottom||0;return{left:p+n+h,top:g+i+f,width:m-d-p-h,height:T-l-g-f}},createElement:function(t,e){var a,r,n,i=o.createElement(t);for(a in e)if(r=e[a],"style"===a)for(n in r)i.style[n]=r[n];else i[a]=r;return i},getElement:function(t){return o.getElementById(t)},setElementStyleByView:function(t){var e=t.drawable,a=e.domElement.style,o=t._stateCache||(t._stateCache={}),r=s.browser.jsVendor,n="px",i=!1;if(this.cacheStateIfChanged(t,["visible"],o)&&(a.display=t.visible?"":"none"),this.cacheStateIfChanged(t,["alpha"],o)&&(a.opacity=t.alpha),t.visible&&!(t.alpha<=0)){if(this.cacheStateIfChanged(t,["width"],o)&&(a.width=t.width+n),this.cacheStateIfChanged(t,["height"],o)&&(a.height=t.height+n),this.cacheStateIfChanged(t,["depth"],o)&&(a.zIndex=t.depth+1),t.transform){var c=t.transform;(i=this.cacheStateIfChanged(t,["pivotX","pivotY"],o))&&(a[r+"TransformOrigin"]="0 0"),a[r+"Transform"]="matrix3d("+c.a+", "+c.b+", 0, 0, "+c.c+", "+c.d+", 0, 0, 0, 0, 1, 0, "+c.tx+", "+c.ty+", 0, 1)"}else(i=this.cacheStateIfChanged(t,["pivotX","pivotY"],o))&&(a[r+"TransformOrigin"]=t.pivotX+n+" "+t.pivotY+n),(this.cacheStateIfChanged(t,["x","y","rotation","scaleX","scaleY"],o)||i)&&(a[r+"Transform"]=this.getTransformCSS(t));this.cacheStateIfChanged(t,["background"],o)&&(a.backgroundColor=t.background),a.pointerEvents||(a.pointerEvents="none");var h=e.image;if(h){var f=h.src;f!==o.image&&(o.image=f,a.backgroundImage="url("+f+")");var d=e.rect;if(d){var l=d[0],g=d[1];l!==o.sx&&(o.sx=l,a.backgroundPositionX=-l+n),g!==o.sy&&(o.sy=g,a.backgroundPositionY=-g+n)}}var p=t.mask;if(p){var m=p.drawable.domElement.style.backgroundImage;m!==o.maskImage&&(o.maskImage=m,a[r+"MaskImage"]=m,a[r+"MaskRepeat"]="no-repeat");var T=p.x,u=p.y;T===o.maskX&&u===o.maskY||(o.maskX=T,o.maskY=u,a[r+"MaskPosition"]=T+n+" "+u+n)}}},cacheStateIfChanged:function(t,e,a){var o,r,n,i,s=!1;for(o=0,r=e.length;o=6?(i=a[0],s=a[1],h=a[2],n=a[3],r=a[4],c=a[5]):(i=t.a,s=t.b,h=t.c,n=t.d,r=t.tx,c=t.ty),this.a=e*i+o*h,this.b=e*s+o*n,this.c=u*i+y*h,this.d=u*s+y*n,this.tx=x*i+d*h+r,this.ty=x*s+d*n+c,this},rotate:function(t){var i=Math.sin(t),s=Math.cos(t),h=this.a,n=this.b,r=this.c,c=this.d,a=this.tx,e=this.ty;return this.a=h*s-n*i,this.b=h*i+n*s,this.c=r*s-c*i,this.d=r*i+c*s,this.tx=a*s-e*i,this.ty=a*i+e*s,this},scale:function(t,i){return this.a*=t,this.d*=i,this.c*=t,this.b*=i,this.tx*=t,this.ty*=i,this},translate:function(t,i){return this.tx+=t,this.ty+=i,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,i=this.b,s=this.c,h=this.d,n=this.tx,r=t*h-i*s;return this.a=h/r,this.b=-i/r,this.c=-s/r,this.d=t/r,this.tx=(s*this.ty-h*n)/r,this.ty=-(t*this.ty-i*n)/r,this},transformPoint:function(t,i,s){var h=t.x*this.a+t.y*this.c+this.tx,n=t.x*this.b+t.y*this.d+this.ty;return i&&(h=h+.5>>0,n=n+.5>>0),s?{x:h,y:n}:(t.x=h,t.y=n,t)}});return i}); \ No newline at end of file +define("hilo/geom/Matrix",["hilo/core/Class"],function(t){var i=t.create({constructor:function(t,i,s,h,n,c){this.a=t,this.b=i,this.c=s,this.d=h,this.tx=n,this.ty=c},set:function(t,i,s,h,n,c){return this.a=t,this.b=i,this.c=s,this.d=h,this.tx=n,this.ty=c,this},copy:function(t){return this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.tx=t.tx,this.ty=t.ty,this},clone:function(){return(new i).copy(this)},concat:function(t){var i,s,h,n,c,r,a=arguments,e=this.a,o=this.b,u=this.c,y=this.d,x=this.tx,d=this.ty;return a.length>=6?(i=a[0],s=a[1],h=a[2],n=a[3],c=a[4],r=a[5]):(i=t.a,s=t.b,h=t.c,n=t.d,c=t.tx,r=t.ty),this.a=e*i+o*h,this.b=e*s+o*n,this.c=u*i+y*h,this.d=u*s+y*n,this.tx=x*i+d*h+c,this.ty=x*s+d*n+r,this},rotate:function(t){var i=Math.sin(t),s=Math.cos(t),h=this.a,n=this.b,c=this.c,r=this.d,a=this.tx,e=this.ty;return this.a=h*s-n*i,this.b=h*i+n*s,this.c=c*s-r*i,this.d=c*i+r*s,this.tx=a*s-e*i,this.ty=a*i+e*s,this},scale:function(t,i){return this.a*=t,this.d*=i,this.c*=t,this.b*=i,this.tx*=t,this.ty*=i,this},translate:function(t,i){return this.tx+=t,this.ty+=i,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,i=this.b,s=this.c,h=this.d,n=this.tx,c=t*h-i*s;return this.a=h/c,this.b=-i/c,this.c=-s/c,this.d=t/c,this.tx=(s*this.ty-h*n)/c,this.ty=-(t*this.ty-i*n)/c,this},transformPoint:function(t,i,s){var h=t.x*this.a+t.y*this.c+this.tx,n=t.x*this.b+t.y*this.d+this.ty;return i&&(h=h+.5>>0,n=n+.5>>0),s?{x:h,y:n}:(t.x=h,t.y=n,t)}});return i}); \ No newline at end of file diff --git a/build/amd/hilo/loader/ImageLoader.js b/build/amd/hilo/loader/ImageLoader.js index 618968c3..7e8c8b06 100644 --- a/build/amd/hilo/loader/ImageLoader.js +++ b/build/amd/hilo/loader/ImageLoader.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/loader/ImageLoader.min.js b/build/amd/hilo/loader/ImageLoader.min.js index c1160446..bc3620c8 100644 --- a/build/amd/hilo/loader/ImageLoader.min.js +++ b/build/amd/hilo/loader/ImageLoader.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/loader/LoadQueue.js b/build/amd/hilo/loader/LoadQueue.js index 8782dbb4..18d5f383 100644 --- a/build/amd/hilo/loader/LoadQueue.js +++ b/build/amd/hilo/loader/LoadQueue.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -49,6 +49,7 @@ var LoadQueue = Class.create(/** @lends LoadQueue.prototype */{ *

  • loader - specified resource loader. If you specify this,we abandon choosing loader inside
  • *
  • noCache - a tag that set on or off to prevent cache,implemented by adding timestamp inside
  • *
  • size - predicted resource size, help calculating loading progress
  • + *
  • crossOrigin - Whether cross-domain is needed. eg:crossOrigin='anonymous'
  • * * @returns {LoadQueue} 下载队列实例本身。 */ diff --git a/build/amd/hilo/loader/LoadQueue.min.js b/build/amd/hilo/loader/LoadQueue.min.js index 56e82b45..6194be72 100644 --- a/build/amd/hilo/loader/LoadQueue.min.js +++ b/build/amd/hilo/loader/LoadQueue.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/loader/ScriptLoader.js b/build/amd/hilo/loader/ScriptLoader.js index fd805861..0a97b93f 100644 --- a/build/amd/hilo/loader/ScriptLoader.js +++ b/build/amd/hilo/loader/ScriptLoader.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/loader/ScriptLoader.min.js b/build/amd/hilo/loader/ScriptLoader.min.js index d48c1ffc..24de99e8 100644 --- a/build/amd/hilo/loader/ScriptLoader.min.js +++ b/build/amd/hilo/loader/ScriptLoader.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/media/HTMLAudio.js b/build/amd/hilo/media/HTMLAudio.js index 1af4a206..239ae4c6 100644 --- a/build/amd/hilo/media/HTMLAudio.js +++ b/build/amd/hilo/media/HTMLAudio.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/media/HTMLAudio.min.js b/build/amd/hilo/media/HTMLAudio.min.js index f7467059..f7e3bddf 100644 --- a/build/amd/hilo/media/HTMLAudio.min.js +++ b/build/amd/hilo/media/HTMLAudio.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/media/WebAudio.js b/build/amd/hilo/media/WebAudio.js index a487b22c..83d02433 100644 --- a/build/amd/hilo/media/WebAudio.js +++ b/build/amd/hilo/media/WebAudio.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/media/WebAudio.min.js b/build/amd/hilo/media/WebAudio.min.js index 4486c8e2..2649465c 100644 --- a/build/amd/hilo/media/WebAudio.min.js +++ b/build/amd/hilo/media/WebAudio.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/media/WebSound.js b/build/amd/hilo/media/WebSound.js index ed3fc9b0..9f9c8d73 100644 --- a/build/amd/hilo/media/WebSound.js +++ b/build/amd/hilo/media/WebSound.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/media/WebSound.min.js b/build/amd/hilo/media/WebSound.min.js index cbc61696..2a4bf190 100644 --- a/build/amd/hilo/media/WebSound.min.js +++ b/build/amd/hilo/media/WebSound.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/renderer/CanvasRenderer.js b/build/amd/hilo/renderer/CanvasRenderer.js index 6cf1ebac..937212e4 100644 --- a/build/amd/hilo/renderer/CanvasRenderer.js +++ b/build/amd/hilo/renderer/CanvasRenderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -18,26 +18,26 @@ define('hilo/renderer/CanvasRenderer', ['hilo/core/Class', 'hilo/core/Hilo', 'hi * @requires hilo/renderer/Renderer * @property {CanvasRenderingContext2D} context The context of the canvas element, readonly. */ -var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ +var CanvasRenderer = Class.create( /** @lends CanvasRenderer.prototype */ { Extends: Renderer, - constructor: function(properties){ + constructor: function(properties) { CanvasRenderer.superclass.constructor.call(this, properties); this.context = this.canvas.getContext("2d"); }, - renderType:'canvas', + renderType: 'canvas', context: null, /** * @private * @see Renderer#startDraw */ - startDraw: function(target){ - if(target.visible && target.alpha > 0){ - if(target === this.stage){ + startDraw: function(target) { + if (target.visible && target.alpha > 0) { + if (target === this.stage) { this.context.clearRect(0, 0, target.width, target.height); } - if(target.blendMode !== this.blendMode){ + if (target.blendMode !== this.blendMode) { this.context.globalCompositeOperation = this.blendMode = target.blendMode; } this.context.save(); @@ -50,31 +50,38 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#draw */ - draw: function(target){ - var ctx = this.context, w = target.width, h = target.height; + draw: function(target) { + var ctx = this.context, + w = target.width, + h = target.height; //draw background var bg = target.background; - if(bg){ + if (bg) { ctx.fillStyle = bg; ctx.fillRect(0, 0, w, h); } //draw image - var drawable = target.drawable, image = drawable && drawable.image; - if(image){ - var rect = drawable.rect, sw = rect[2], sh = rect[3], offsetX = rect[4], offsetY = rect[5]; + var drawable = target.drawable, + image = drawable && drawable.image; + if (image) { + var rect = drawable.rect, + sw = rect[2], + sh = rect[3], + offsetX = rect[4], + offsetY = rect[5]; //ie9+浏览器宽高为0时会报错 fixed ie9 bug. - if(!sw || !sh){ + if (!sw || !sh) { return; } - if(!w && !h){ + if (!w && !h) { //fix width/height TODO: how to get rid of this? w = target.width = sw; h = target.height = sh; } //the pivot is the center of frame if has offset, otherwise is (0, 0) - if(offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); + if (offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); ctx.drawImage(image, rect[0], rect[1], sw, sh, 0, 0, w, h); } }, @@ -83,7 +90,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#endDraw */ - endDraw: function(target){ + endDraw: function(target) { this.context.restore(); }, @@ -91,9 +98,9 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#transform */ - transform: function(target){ + transform: function(target) { var drawable = target.drawable; - if(drawable && drawable.domElement){ + if (drawable && drawable.domElement) { Hilo.setElementStyleByView(target); return; } @@ -102,66 +109,72 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ scaleX = target.scaleX, scaleY = target.scaleY; - if(target === this.stage){ + if (target === this.stage) { var style = this.canvas.style, oldScaleX = target._scaleX, oldScaleY = target._scaleY, isStyleChange = false; - if((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)){ + if ((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)) { target._scaleX = scaleX; style.width = scaleX * target.width + "px"; isStyleChange = true; } - if((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)){ + if ((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)) { target._scaleY = scaleY; style.height = scaleY * target.height + "px"; isStyleChange = true; } - if(isStyleChange){ + if (isStyleChange) { target.updateViewport(); } - }else{ + } else { var x = target.x, y = target.y, pivotX = target.pivotX, pivotY = target.pivotY, rotation = target.rotation % 360, + transform = target.transform, mask = target.mask; - if(mask){ + if (mask) { mask._render(this); ctx.clip(); } //alignment var align = target.align; - if(align){ + if (align) { var pos = target.getAlignPosition(); x = pos.x; y = pos.y; } + + if (transform) { + ctx.transform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); + } else { + if (x != 0 || y != 0) ctx.translate(x, y); + if (rotation != 0) ctx.rotate(rotation * Math.PI / 180); + if (scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); + if (pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); + } - if(x != 0 || y != 0) ctx.translate(x, y); - if(rotation != 0) ctx.rotate(rotation * Math.PI / 180); - if(scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); - if(pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); } - if(target.alpha > 0) ctx.globalAlpha *= target.alpha; + if (target.alpha > 0) ctx.globalAlpha *= target.alpha; }, /** * @private * @see Renderer#remove */ - remove: function(target){ + remove: function(target) { var drawable = target.drawable; var elem = drawable && drawable.domElement; - if(elem){ + if (elem) { var parentElem = elem.parentNode; - if(parentElem){ + if (parentElem) { parentElem.removeChild(elem); } } @@ -171,7 +184,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#clear */ - clear: function(x, y, width, height){ + clear: function(x, y, width, height) { this.context.clearRect(x, y, width, height); }, @@ -179,7 +192,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#resize */ - resize: function(width, height){ + resize: function(width, height) { var canvas = this.canvas; var stage = this.stage; var style = canvas.style; diff --git a/build/amd/hilo/renderer/CanvasRenderer.min.js b/build/amd/hilo/renderer/CanvasRenderer.min.js index b9efd2d9..1687f21b 100644 --- a/build/amd/hilo/renderer/CanvasRenderer.min.js +++ b/build/amd/hilo/renderer/CanvasRenderer.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ -define("hilo/renderer/CanvasRenderer",["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer"],function(e,t,a){var i=e.create({Extends:a,constructor:function(e){i.superclass.constructor.call(this,e),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(e){return!!(e.visible&&e.alpha>0)&&(e===this.stage&&this.context.clearRect(0,0,e.width,e.height),e.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=e.blendMode),this.context.save(),!0)},draw:function(e){var t=this.context,a=e.width,i=e.height,r=e.background;r&&(t.fillStyle=r,t.fillRect(0,0,a,i));var n=e.drawable,s=n&&n.image;if(s){var l=n.rect,o=l[2],h=l[3],c=l[4],d=l[5];if(!o||!h)return;a||i||(a=e.width=o,i=e.height=h),(c||d)&&t.translate(c-.5*o,d-.5*h),t.drawImage(s,l[0],l[1],o,h,0,0,a,i)}},endDraw:function(e){this.context.restore()},transform:function(e){var a=e.drawable;if(a&&a.domElement)return void t.setElementStyleByView(e);var i=this.context,r=e.scaleX,n=e.scaleY;if(e===this.stage){var s=this.canvas.style,l=e._scaleX,o=e._scaleY,h=!1;(!l&&1!=r||l&&l!=r)&&(e._scaleX=r,s.width=r*e.width+"px",h=!0),(!o&&1!=n||o&&o!=n)&&(e._scaleY=n,s.height=n*e.height+"px",h=!0),h&&e.updateViewport()}else{var c=e.x,d=e.y,v=e.pivotX,g=e.pivotY,f=e.rotation%360,u=e.mask;u&&(u._render(this),i.clip());var p=e.align;if(p){var w=e.getAlignPosition();c=w.x,d=w.y}0==c&&0==d||i.translate(c,d),0!=f&&i.rotate(f*Math.PI/180),1==r&&1==n||i.scale(r,n),0==v&&0==g||i.translate(-v,-g)}e.alpha>0&&(i.globalAlpha*=e.alpha)},remove:function(e){var t=e.drawable,a=t&&t.domElement;if(a){var i=a.parentNode;i&&i.removeChild(a)}},clear:function(e,t,a,i){this.context.clearRect(e,t,a,i)},resize:function(e,t){var a=this.canvas,i=this.stage,r=a.style;a.width=e,a.height=t,r.width=i.width*i.scaleX+"px",r.height=i.height*i.scaleY+"px"}});return i}); \ No newline at end of file +define("hilo/renderer/CanvasRenderer",["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer"],function(t,e,a){var i=t.create({Extends:a,constructor:function(t){i.superclass.constructor.call(this,t),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(t){return!!(t.visible&&t.alpha>0)&&(t===this.stage&&this.context.clearRect(0,0,t.width,t.height),t.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=t.blendMode),this.context.save(),!0)},draw:function(t){var e=this.context,a=t.width,i=t.height,r=t.background;r&&(e.fillStyle=r,e.fillRect(0,0,a,i));var n=t.drawable,s=n&&n.image;if(s){var l=n.rect,o=l[2],h=l[3],c=l[4],d=l[5];if(!o||!h)return;a||i||(a=t.width=o,i=t.height=h),(c||d)&&e.translate(c-.5*o,d-.5*h),e.drawImage(s,l[0],l[1],o,h,0,0,a,i)}},endDraw:function(t){this.context.restore()},transform:function(t){var a=t.drawable;if(a&&a.domElement)return void e.setElementStyleByView(t);var i=this.context,r=t.scaleX,n=t.scaleY;if(t===this.stage){var s=this.canvas.style,l=t._scaleX,o=t._scaleY,h=!1;(!l&&1!=r||l&&l!=r)&&(t._scaleX=r,s.width=r*t.width+"px",h=!0),(!o&&1!=n||o&&o!=n)&&(t._scaleY=n,s.height=n*t.height+"px",h=!0),h&&t.updateViewport()}else{var c=t.x,d=t.y,v=t.pivotX,f=t.pivotY,g=t.rotation%360,u=t.transform,p=t.mask;p&&(p._render(this),i.clip());var x=t.align;if(x){var w=t.getAlignPosition();c=w.x,d=w.y}u?i.transform(u.a,u.b,u.c,u.d,u.tx,u.ty):(0==c&&0==d||i.translate(c,d),0!=g&&i.rotate(g*Math.PI/180),1==r&&1==n||i.scale(r,n),0==v&&0==f||i.translate(-v,-f))}t.alpha>0&&(i.globalAlpha*=t.alpha)},remove:function(t){var e=t.drawable,a=e&&e.domElement;if(a){var i=a.parentNode;i&&i.removeChild(a)}},clear:function(t,e,a,i){this.context.clearRect(t,e,a,i)},resize:function(t,e){var a=this.canvas,i=this.stage,r=a.style;a.width=t,a.height=e,r.width=i.width*i.scaleX+"px",r.height=i.height*i.scaleY+"px"}});return i}); \ No newline at end of file diff --git a/build/amd/hilo/renderer/DOMRenderer.js b/build/amd/hilo/renderer/DOMRenderer.js index b607064f..fb7a174f 100644 --- a/build/amd/hilo/renderer/DOMRenderer.js +++ b/build/amd/hilo/renderer/DOMRenderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/renderer/DOMRenderer.min.js b/build/amd/hilo/renderer/DOMRenderer.min.js index 3ec167ea..4722e251 100644 --- a/build/amd/hilo/renderer/DOMRenderer.min.js +++ b/build/amd/hilo/renderer/DOMRenderer.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/renderer/Renderer.js b/build/amd/hilo/renderer/Renderer.js index 28b9d725..906c755c 100644 --- a/build/amd/hilo/renderer/Renderer.js +++ b/build/amd/hilo/renderer/Renderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/renderer/Renderer.min.js b/build/amd/hilo/renderer/Renderer.min.js index 8bff58d1..96d8c264 100644 --- a/build/amd/hilo/renderer/Renderer.min.js +++ b/build/amd/hilo/renderer/Renderer.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/renderer/WebGLRenderer.js b/build/amd/hilo/renderer/WebGLRenderer.js index e7cab927..cc37734f 100644 --- a/build/amd/hilo/renderer/WebGLRenderer.js +++ b/build/amd/hilo/renderer/WebGLRenderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -423,21 +423,28 @@ var WebGLRenderer = Class.create(/** @lends WebGLRenderer.prototype */{ var cos = 1, sin = 0, rotation = view.rotation % 360, pivotX = view.pivotX, pivotY = view.pivotY, - scaleX = view.scaleX, scaleY = view.scaleY; + scaleX = view.scaleX, scaleY = view.scaleY, + transform = view.transform; - if(rotation){ - var r = rotation * DEG2RAD; - cos = Math.cos(r); - sin = Math.sin(r); + if (transform) { + mtx.copy(transform); } + else { + if(rotation){ + var r = rotation * DEG2RAD; + cos = Math.cos(r); + sin = Math.sin(r); + } + + var pos = view.getAlignPosition(); - var pos = view.getAlignPosition(); - mtx.a = cos*scaleX; - mtx.b = sin*scaleX; - mtx.c = -sin*scaleY; - mtx.d = cos*scaleY; - mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; - mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + mtx.a = cos*scaleX; + mtx.b = sin*scaleX; + mtx.c = -sin*scaleY; + mtx.d = cos*scaleY; + mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; + mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + } mtx.concat(ancestor.__webglWorldMatrix); }, diff --git a/build/amd/hilo/renderer/WebGLRenderer.min.js b/build/amd/hilo/renderer/WebGLRenderer.min.js index c3c6a395..9e4a1be0 100644 --- a/build/amd/hilo/renderer/WebGLRenderer.min.js +++ b/build/amd/hilo/renderer/WebGLRenderer.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ -define("hilo/renderer/WebGLRenderer",["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer","hilo/geom/Matrix"],function(t,e,r,i){var a=Math.PI/180,n=t.create({Extends:r,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var t=document.createElement("canvas");t.getContext&&(t.getContext("webgl")||t.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(t){n.superclass.constructor.call(this,t);var e=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=n.MAX_BATCH_NUM,this.positionStride=4*n.ATTRIBUTE_NUM;var r=this.maxBatchNum*n.ATTRIBUTE_NUM*4,i=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*r),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(i);for(var a=0,s=0;a0)&&(t===this.stage&&this.clear(),!0)},draw:function(t){var e=t.width,r=t.height,i=(t.background,t.drawable),a=i&&i.image;if(a){var n=i.rect,s=n[2],o=n[3];e||r||(e=t.width=s,r=t.height=o),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var h=this._createVertexs(a,n[0],n[1],s,o,0,0,e,r),_=this.batchIndex*this.positionStride,c=this.float32Array,l=this.uint32Array,d=(t.tint>>16)+(65280&t.tint)+((255&t.tint)<<16)+(255*t.__webglRenderAlpha<<24);c[_+0]=h[0],c[_+1]=h[1],c[_+2]=h[2],c[_+3]=h[3],l[_+4]=d,c[_+5]=h[4],c[_+6]=h[5],c[_+7]=h[6],c[_+8]=h[7],l[_+9]=d,c[_+10]=h[8],c[_+11]=h[9],c[_+12]=h[10],c[_+13]=h[11],l[_+14]=d,c[_+15]=h[12],c[_+16]=h[13],c[_+17]=h[14],c[_+18]=h[15],l[_+19]=d;for(var u=t.__webglWorldMatrix,f=0;f<4;f++){var g=c[_+5*f],T=c[_+5*f+1];c[_+5*f]=u.a*g+u.c*T+u.tx,c[_+5*f+1]=u.b*g+u.d*T+u.ty}t.__textureImage=a,this.sprites[this.batchIndex++]=t}},endDraw:function(t){t===this.stage&&this._renderBatches()},transform:function(t){var r=t.drawable;if(r&&r.domElement)return void e.setElementStyleByView(t);var a=t.scaleX,n=t.scaleY;if(t===this.stage){var s=this.canvas.style,o=t._scaleX,h=t._scaleY,_=!1;(!o&&1!=a||o&&o!=a)&&(t._scaleX=a,s.width=a*t.width+"px",_=!0),(!h&&1!=n||h&&h!=n)&&(t._scaleY=n,s.height=n*t.height+"px",_=!0),_&&t.updateViewport(),t.__webglWorldMatrix=t.__webglWorldMatrix||new i(1,0,0,1,0,0)}else t.parent&&(t.__webglWorldMatrix=t.__webglWorldMatrix||new i(1,0,0,1,0,0),this._setConcatenatedMatrix(t,t.parent));t.alpha>0&&(t.parent&&t.parent.__webglRenderAlpha?t.__webglRenderAlpha=t.alpha*t.parent.__webglRenderAlpha:t.__webglRenderAlpha=t.alpha)},remove:function(t){var e=t.drawable,r=e&&e.domElement;if(r){var i=r.parentNode;i&&i.removeChild(r)}},clear:function(t,e,r,i){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(t,e){if(this.width!==t||this.height!==e){var r=this.canvas,i=this.stage,a=r.style;this.width=r.width=t,this.height=r.height=e,a.width=i.width*i.scaleX+"px",a.height=i.height*i.scaleY+"px",this.gl.viewport(0,0,t,e),this.canvasHalfWidth=.5*t,this.canvasHalfHeight=.5*e,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var t=this.gl;t.bufferSubData(t.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var e=0,r=0,i=null,a=0;a0&&(r.bindTexture(r.TEXTURE_2D,this._getTexture(this.sprites[t])),r.drawElements(r.TRIANGLES,6*i,r.UNSIGNED_SHORT,6*t*2))},_uploadProjectionTransform:function(t){this._projectionTransformElements&&!t||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var t=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",e="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new s(this,{v:t,f:e},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(t,e,r,i,a,n,s,o,h){var _=this.__tempVertexs||[],c=t.width,l=t.height;i/=c,a/=l,e/=c,r/=l,o=o,h=h,n=n,s=s,i+e>1&&(i=1-e),a+r>1&&(a=1-r);var d=0;return _[d++]=n,_[d++]=s,_[d++]=e,_[d++]=r,_[d++]=n+o,_[d++]=s,_[d++]=e+i,_[d++]=r,_[d++]=n,_[d++]=s+h,_[d++]=e,_[d++]=r+a,_[d++]=n+o,_[d++]=s+h,_[d++]=e+i,_[d++]=r+a,_},_setConcatenatedMatrix:function(t,e){var r=t.__webglWorldMatrix,i=1,n=0,s=t.rotation%360,o=t.pivotX,h=t.pivotY,_=t.scaleX,c=t.scaleY;if(s){var l=s*a;i=Math.cos(l),n=Math.sin(l)}var d=t.getAlignPosition();r.a=i*_,r.b=n*_,r.c=-n*c,r.d=i*c,r.tx=d.x-r.a*o-r.c*h,r.ty=d.y-r.b*o-r.d*h,r.concat(e.__webglWorldMatrix)},_getTexture:function(t){var e=t.__textureImage,r=this._cacheTexture[e.src];return r||(r=this.activeShader.uploadTexture(e)),r}}),s=function(t,e,r){this.renderer=t,this.gl=t.gl,this.program=this._createProgram(this.gl,e.v,e.f),r=r||{},this.attributes=r.attributes||[],this.uniforms=r.uniforms||[]};return s.prototype={active:function(){var t=this,e=t.renderer,r=t.gl,i=t.program;i&&r&&(e.activeShader=t,r.useProgram(i),t.attributes.forEach(function(t){e[t]=r.getAttribLocation(i,t),r.enableVertexAttribArray(e[t])}),t.uniforms.forEach(function(t){e[t]=r.getUniformLocation(i,t)}),t.width===e.width&&t.height===e.height||(t.width=e.width,t.height=e.height,e._uploadProjectionTransform()))},uploadTexture:function(t){var e=this.gl,r=this.renderer,i=e.createTexture(),a=r.u_Sampler;return e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,i),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.uniform1i(a,0),e.bindTexture(e.TEXTURE_2D,null),this.renderer._cacheTexture[t.src]=i,i},_createProgram:function(t,e,r){var i=this._createShader(t,t.VERTEX_SHADER,e),a=this._createShader(t,t.FRAGMENT_SHADER,r);if(!i||!a)return null;var n=t.createProgram();if(n){t.attachShader(n,i),t.attachShader(n,a),t.linkProgram(n),t.deleteShader(a),t.deleteShader(i);var s=t.getProgramParameter(n,t.LINK_STATUS);if(!s){var o=t.getProgramInfoLog(n);return console.log("Failed to link program: "+o),t.deleteProgram(n),null}}return n},_createShader:function(t,e,r){var i=t.createShader(e);if(i){t.shaderSource(i,r),t.compileShader(i);var a=t.getShaderParameter(i,t.COMPILE_STATUS);if(!a){var n=t.getShaderInfoLog(i);return console.log("Failed to compile shader: "+n),t.deleteShader(i),null}}return i}},n}); \ No newline at end of file +define("hilo/renderer/WebGLRenderer",["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer","hilo/geom/Matrix"],function(t,e,r,i){var a=Math.PI/180,n=t.create({Extends:r,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var t=document.createElement("canvas");t.getContext&&(t.getContext("webgl")||t.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(t){n.superclass.constructor.call(this,t);var e=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=n.MAX_BATCH_NUM,this.positionStride=4*n.ATTRIBUTE_NUM;var r=this.maxBatchNum*n.ATTRIBUTE_NUM*4,i=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*r),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(i);for(var a=0,s=0;a0)&&(t===this.stage&&this.clear(),!0)},draw:function(t){var e=t.width,r=t.height,i=(t.background,t.drawable),a=i&&i.image;if(a){var n=i.rect,s=n[2],o=n[3];e||r||(e=t.width=s,r=t.height=o),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var h=this._createVertexs(a,n[0],n[1],s,o,0,0,e,r),c=this.batchIndex*this.positionStride,_=this.float32Array,l=this.uint32Array,d=(t.tint>>16)+(65280&t.tint)+((255&t.tint)<<16)+(255*t.__webglRenderAlpha<<24);_[c+0]=h[0],_[c+1]=h[1],_[c+2]=h[2],_[c+3]=h[3],l[c+4]=d,_[c+5]=h[4],_[c+6]=h[5],_[c+7]=h[6],_[c+8]=h[7],l[c+9]=d,_[c+10]=h[8],_[c+11]=h[9],_[c+12]=h[10],_[c+13]=h[11],l[c+14]=d,_[c+15]=h[12],_[c+16]=h[13],_[c+17]=h[14],_[c+18]=h[15],l[c+19]=d;for(var u=t.__webglWorldMatrix,f=0;f<4;f++){var g=_[c+5*f],T=_[c+5*f+1];_[c+5*f]=u.a*g+u.c*T+u.tx,_[c+5*f+1]=u.b*g+u.d*T+u.ty}t.__textureImage=a,this.sprites[this.batchIndex++]=t}},endDraw:function(t){t===this.stage&&this._renderBatches()},transform:function(t){var r=t.drawable;if(r&&r.domElement)return void e.setElementStyleByView(t);var a=t.scaleX,n=t.scaleY;if(t===this.stage){var s=this.canvas.style,o=t._scaleX,h=t._scaleY,c=!1;(!o&&1!=a||o&&o!=a)&&(t._scaleX=a,s.width=a*t.width+"px",c=!0),(!h&&1!=n||h&&h!=n)&&(t._scaleY=n,s.height=n*t.height+"px",c=!0),c&&t.updateViewport(),t.__webglWorldMatrix=t.__webglWorldMatrix||new i(1,0,0,1,0,0)}else t.parent&&(t.__webglWorldMatrix=t.__webglWorldMatrix||new i(1,0,0,1,0,0),this._setConcatenatedMatrix(t,t.parent));t.alpha>0&&(t.parent&&t.parent.__webglRenderAlpha?t.__webglRenderAlpha=t.alpha*t.parent.__webglRenderAlpha:t.__webglRenderAlpha=t.alpha)},remove:function(t){var e=t.drawable,r=e&&e.domElement;if(r){var i=r.parentNode;i&&i.removeChild(r)}},clear:function(t,e,r,i){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(t,e){if(this.width!==t||this.height!==e){var r=this.canvas,i=this.stage,a=r.style;this.width=r.width=t,this.height=r.height=e,a.width=i.width*i.scaleX+"px",a.height=i.height*i.scaleY+"px",this.gl.viewport(0,0,t,e),this.canvasHalfWidth=.5*t,this.canvasHalfHeight=.5*e,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var t=this.gl;t.bufferSubData(t.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var e=0,r=0,i=null,a=0;a0&&(r.bindTexture(r.TEXTURE_2D,this._getTexture(this.sprites[t])),r.drawElements(r.TRIANGLES,6*i,r.UNSIGNED_SHORT,6*t*2))},_uploadProjectionTransform:function(t){this._projectionTransformElements&&!t||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var t=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",e="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new s(this,{v:t,f:e},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(t,e,r,i,a,n,s,o,h){var c=this.__tempVertexs||[],_=t.width,l=t.height;i/=_,a/=l,e/=_,r/=l,o=o,h=h,n=n,s=s,i+e>1&&(i=1-e),a+r>1&&(a=1-r);var d=0;return c[d++]=n,c[d++]=s,c[d++]=e,c[d++]=r,c[d++]=n+o,c[d++]=s,c[d++]=e+i,c[d++]=r,c[d++]=n,c[d++]=s+h,c[d++]=e,c[d++]=r+a,c[d++]=n+o,c[d++]=s+h,c[d++]=e+i,c[d++]=r+a,c},_setConcatenatedMatrix:function(t,e){var r=t.__webglWorldMatrix,i=1,n=0,s=t.rotation%360,o=t.pivotX,h=t.pivotY,c=t.scaleX,_=t.scaleY,l=t.transform;if(l)r.copy(l);else{if(s){var d=s*a;i=Math.cos(d),n=Math.sin(d)}var u=t.getAlignPosition();r.a=i*c,r.b=n*c,r.c=-n*_,r.d=i*_,r.tx=u.x-r.a*o-r.c*h,r.ty=u.y-r.b*o-r.d*h}r.concat(e.__webglWorldMatrix)},_getTexture:function(t){var e=t.__textureImage,r=this._cacheTexture[e.src];return r||(r=this.activeShader.uploadTexture(e)),r}}),s=function(t,e,r){this.renderer=t,this.gl=t.gl,this.program=this._createProgram(this.gl,e.v,e.f),r=r||{},this.attributes=r.attributes||[],this.uniforms=r.uniforms||[]};return s.prototype={active:function(){var t=this,e=t.renderer,r=t.gl,i=t.program;i&&r&&(e.activeShader=t,r.useProgram(i),t.attributes.forEach(function(t){e[t]=r.getAttribLocation(i,t),r.enableVertexAttribArray(e[t])}),t.uniforms.forEach(function(t){e[t]=r.getUniformLocation(i,t)}),t.width===e.width&&t.height===e.height||(t.width=e.width,t.height=e.height,e._uploadProjectionTransform()))},uploadTexture:function(t){var e=this.gl,r=this.renderer,i=e.createTexture(),a=r.u_Sampler;return e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,i),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.uniform1i(a,0),e.bindTexture(e.TEXTURE_2D,null),this.renderer._cacheTexture[t.src]=i,i},_createProgram:function(t,e,r){var i=this._createShader(t,t.VERTEX_SHADER,e),a=this._createShader(t,t.FRAGMENT_SHADER,r);if(!i||!a)return null;var n=t.createProgram();if(n){t.attachShader(n,i),t.attachShader(n,a),t.linkProgram(n),t.deleteShader(a),t.deleteShader(i);var s=t.getProgramParameter(n,t.LINK_STATUS);if(!s){var o=t.getProgramInfoLog(n);return console.log("Failed to link program: "+o),t.deleteProgram(n),null}}return n},_createShader:function(t,e,r){var i=t.createShader(e);if(i){t.shaderSource(i,r),t.compileShader(i);var a=t.getShaderParameter(i,t.COMPILE_STATUS);if(!a){var n=t.getShaderInfoLog(i);return console.log("Failed to compile shader: "+n),t.deleteShader(i),null}}return i}},n}); \ No newline at end of file diff --git a/build/amd/hilo/tween/Ease.js b/build/amd/hilo/tween/Ease.js index 2c2281a2..bdb29f31 100644 --- a/build/amd/hilo/tween/Ease.js +++ b/build/amd/hilo/tween/Ease.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/tween/Ease.min.js b/build/amd/hilo/tween/Ease.min.js index c4254fab..e1288b62 100644 --- a/build/amd/hilo/tween/Ease.min.js +++ b/build/amd/hilo/tween/Ease.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/tween/Tween.js b/build/amd/hilo/tween/Tween.js index 32d460ef..ab3d5634 100644 --- a/build/amd/hilo/tween/Tween.js +++ b/build/amd/hilo/tween/Tween.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/tween/Tween.min.js b/build/amd/hilo/tween/Tween.min.js index 2f484969..ce10ba38 100644 --- a/build/amd/hilo/tween/Tween.min.js +++ b/build/amd/hilo/tween/Tween.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/util/TextureAtlas.js b/build/amd/hilo/util/TextureAtlas.js index 5fe1b9df..167471da 100644 --- a/build/amd/hilo/util/TextureAtlas.js +++ b/build/amd/hilo/util/TextureAtlas.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/util/TextureAtlas.min.js b/build/amd/hilo/util/TextureAtlas.min.js index e7457796..0bda21fb 100644 --- a/build/amd/hilo/util/TextureAtlas.min.js +++ b/build/amd/hilo/util/TextureAtlas.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/util/Ticker.js b/build/amd/hilo/util/Ticker.js index 48b7221d..5d355092 100644 --- a/build/amd/hilo/util/Ticker.js +++ b/build/amd/hilo/util/Ticker.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/util/Ticker.min.js b/build/amd/hilo/util/Ticker.min.js index 2ffd889d..aeaa21bb 100644 --- a/build/amd/hilo/util/Ticker.min.js +++ b/build/amd/hilo/util/Ticker.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/util/browser.js b/build/amd/hilo/util/browser.js index 31985ad4..77c0ca4b 100644 --- a/build/amd/hilo/util/browser.js +++ b/build/amd/hilo/util/browser.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/util/browser.min.js b/build/amd/hilo/util/browser.min.js index 18828955..2c1a4b5d 100644 --- a/build/amd/hilo/util/browser.min.js +++ b/build/amd/hilo/util/browser.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/util/drag.js b/build/amd/hilo/util/drag.js index fb53cf46..071eb9d9 100644 --- a/build/amd/hilo/util/drag.js +++ b/build/amd/hilo/util/drag.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/util/drag.min.js b/build/amd/hilo/util/drag.min.js index 6b341075..d27542d6 100644 --- a/build/amd/hilo/util/drag.min.js +++ b/build/amd/hilo/util/drag.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/util/polyfill.js b/build/amd/hilo/util/polyfill.js index 07e9453c..32aa01ce 100644 --- a/build/amd/hilo/util/polyfill.js +++ b/build/amd/hilo/util/polyfill.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/util/polyfill.min.js b/build/amd/hilo/util/polyfill.min.js index 5f08df8d..daa42bc3 100644 --- a/build/amd/hilo/util/polyfill.min.js +++ b/build/amd/hilo/util/polyfill.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/util/util.js b/build/amd/hilo/util/util.js index 3b986d07..db2a5457 100644 --- a/build/amd/hilo/util/util.js +++ b/build/amd/hilo/util/util.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/util/util.min.js b/build/amd/hilo/util/util.min.js index 815bae9b..986e6789 100644 --- a/build/amd/hilo/util/util.min.js +++ b/build/amd/hilo/util/util.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/Bitmap.js b/build/amd/hilo/view/Bitmap.js index b2a69c96..a10bf9d8 100644 --- a/build/amd/hilo/view/Bitmap.js +++ b/build/amd/hilo/view/Bitmap.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/Bitmap.min.js b/build/amd/hilo/view/Bitmap.min.js index 1caf0979..beac912b 100644 --- a/build/amd/hilo/view/Bitmap.min.js +++ b/build/amd/hilo/view/Bitmap.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/BitmapText.js b/build/amd/hilo/view/BitmapText.js index 5d4fdbbf..0a0c84af 100644 --- a/build/amd/hilo/view/BitmapText.js +++ b/build/amd/hilo/view/BitmapText.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/BitmapText.min.js b/build/amd/hilo/view/BitmapText.min.js index b3eb57f4..6fd28d2a 100644 --- a/build/amd/hilo/view/BitmapText.min.js +++ b/build/amd/hilo/view/BitmapText.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/Button.js b/build/amd/hilo/view/Button.js index d2b5679b..c96c5b10 100644 --- a/build/amd/hilo/view/Button.js +++ b/build/amd/hilo/view/Button.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/Button.min.js b/build/amd/hilo/view/Button.min.js index eba6245f..d77e50fe 100644 --- a/build/amd/hilo/view/Button.min.js +++ b/build/amd/hilo/view/Button.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/CacheMixin.js b/build/amd/hilo/view/CacheMixin.js index eb046f8b..e22c91b1 100644 --- a/build/amd/hilo/view/CacheMixin.js +++ b/build/amd/hilo/view/CacheMixin.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/CacheMixin.min.js b/build/amd/hilo/view/CacheMixin.min.js index 11b917d0..817fa02f 100644 --- a/build/amd/hilo/view/CacheMixin.min.js +++ b/build/amd/hilo/view/CacheMixin.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/Container.js b/build/amd/hilo/view/Container.js index 822c401d..8d7fc6c4 100644 --- a/build/amd/hilo/view/Container.js +++ b/build/amd/hilo/view/Container.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/Container.min.js b/build/amd/hilo/view/Container.min.js index 75628ec0..fdc378ee 100644 --- a/build/amd/hilo/view/Container.min.js +++ b/build/amd/hilo/view/Container.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/DOMElement.js b/build/amd/hilo/view/DOMElement.js index 8dacf2e0..77ee920c 100644 --- a/build/amd/hilo/view/DOMElement.js +++ b/build/amd/hilo/view/DOMElement.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -84,7 +84,8 @@ var DOMElement = Class.create(/** @lends DOMElement.prototype */{ style:{ 'position':'absolute', 'transform':'scale3d(' + stage.scaleX + ',' + stage.scaleY + ', 1)', - 'transformOrigin':'0 0' + 'transformOrigin':'0 0', + 'zIndex':'1' } }); canvas.parentNode.insertBefore(renderer._domElementContainer, canvas.nextSibling); diff --git a/build/amd/hilo/view/DOMElement.min.js b/build/amd/hilo/view/DOMElement.min.js index e219ce28..d0321263 100644 --- a/build/amd/hilo/view/DOMElement.min.js +++ b/build/amd/hilo/view/DOMElement.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ -define("hilo/view/DOMElement",["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/Drawable"],function(e,t,i,n){var r=t.create({Extends:i,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("DOMElement"),r.superclass.constructor.call(this,t),this.drawable=new n;var i=this.drawable.domElement=t.element||e.createElement("div");i.id=this.id,this.pointerEnabled&&!i.style.pointerEvents&&(i.style.pointerEvents="visible")},_render:function(e,t){this.onUpdate&&this.onUpdate(t)===!1||(e.transform(this),this.visible&&this.alpha>0&&this.render(e,t))},render:function(t,i){if("dom"!==t.renderType){var n=t.canvas,r=this.parent,s=t._domElementContainer;t._domElementContainer||(s=t._domElementContainer=e.createElement("div",{style:{position:"absolute",transform:"scale3d("+r.scaleX+","+r.scaleY+", 1)",transformOrigin:"0 0"}}),n.parentNode.insertBefore(t._domElementContainer,n.nextSibling));var o,a=this.drawable.domElement,l=this.depth,d=s.childNodes[0];if(a.parentNode)return;for(;d&&3!=d.nodeType&&(o=parseInt(d.style.zIndex)||0,!(o<=0||o>l));)d=d.nextSibling;s.insertBefore(this.drawable.domElement,d)}else t.draw(this)}});return r}); \ No newline at end of file +define("hilo/view/DOMElement",["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/Drawable"],function(e,t,n,i){var r=t.create({Extends:n,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("DOMElement"),r.superclass.constructor.call(this,t),this.drawable=new i;var n=this.drawable.domElement=t.element||e.createElement("div");n.id=this.id,this.pointerEnabled&&!n.style.pointerEvents&&(n.style.pointerEvents="visible")},_render:function(e,t){this.onUpdate&&this.onUpdate(t)===!1||(e.transform(this),this.visible&&this.alpha>0&&this.render(e,t))},render:function(t,n){if("dom"!==t.renderType){var i=t.canvas,r=this.parent,s=t._domElementContainer;t._domElementContainer||(s=t._domElementContainer=e.createElement("div",{style:{position:"absolute",transform:"scale3d("+r.scaleX+","+r.scaleY+", 1)",transformOrigin:"0 0",zIndex:"1"}}),i.parentNode.insertBefore(t._domElementContainer,i.nextSibling));var o,a=this.drawable.domElement,l=this.depth,d=s.childNodes[0];if(a.parentNode)return;for(;d&&3!=d.nodeType&&(o=parseInt(d.style.zIndex)||0,!(o<=0||o>l));)d=d.nextSibling;s.insertBefore(this.drawable.domElement,d)}else t.draw(this)}});return r}); \ No newline at end of file diff --git a/build/amd/hilo/view/Drawable.js b/build/amd/hilo/view/Drawable.js index 85da456e..25c414a8 100644 --- a/build/amd/hilo/view/Drawable.js +++ b/build/amd/hilo/view/Drawable.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/Drawable.min.js b/build/amd/hilo/view/Drawable.min.js index 94f56930..4b030f71 100644 --- a/build/amd/hilo/view/Drawable.min.js +++ b/build/amd/hilo/view/Drawable.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/Graphics.js b/build/amd/hilo/view/Graphics.js index a83919af..798c954b 100644 --- a/build/amd/hilo/view/Graphics.js +++ b/build/amd/hilo/view/Graphics.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/Graphics.min.js b/build/amd/hilo/view/Graphics.min.js index ed876a7b..ec055732 100644 --- a/build/amd/hilo/view/Graphics.min.js +++ b/build/amd/hilo/view/Graphics.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/Sprite.js b/build/amd/hilo/view/Sprite.js index 2cf3b6b9..1af3ef32 100644 --- a/build/amd/hilo/view/Sprite.js +++ b/build/amd/hilo/view/Sprite.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/Sprite.min.js b/build/amd/hilo/view/Sprite.min.js index ceec6574..95667b3b 100644 --- a/build/amd/hilo/view/Sprite.min.js +++ b/build/amd/hilo/view/Sprite.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/Stage.js b/build/amd/hilo/view/Stage.js index 0fcd5df5..955f6c9d 100644 --- a/build/amd/hilo/view/Stage.js +++ b/build/amd/hilo/view/Stage.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/Stage.min.js b/build/amd/hilo/view/Stage.min.js index 51d31854..ecdd9b35 100644 --- a/build/amd/hilo/view/Stage.min.js +++ b/build/amd/hilo/view/Stage.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/Text.js b/build/amd/hilo/view/Text.js index 10bf784d..39fd583c 100644 --- a/build/amd/hilo/view/Text.js +++ b/build/amd/hilo/view/Text.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/Text.min.js b/build/amd/hilo/view/Text.min.js index b8009799..1cecf45f 100644 --- a/build/amd/hilo/view/Text.min.js +++ b/build/amd/hilo/view/Text.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/amd/hilo/view/View.js b/build/amd/hilo/view/View.js index 0b6407a3..7098a7e0 100644 --- a/build/amd/hilo/view/View.js +++ b/build/amd/hilo/view/View.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -33,6 +33,7 @@ define('hilo/view/View', ['hilo/core/Hilo', 'hilo/core/Class', 'hilo/event/Event * @property {Number} pivotY Position of the center point on the y axis of the view, default value is 0. * @property {Number} scaleX The x axis scale factor of the view, default value is 1. * @property {Number} scaleY The y axis scale factor of the view, default value is 1. + * @property {Matrix} transform The transform of the view.If set the transform, x, y, scaleX, scaleY, rotation, pivotX, pivotY will be ignored.default is null. * @property {Boolean} pointerEnabled Is the view can receive DOM events, default value is true. * @property {Object} background The background style to fill the view, can be css color, gradient or pattern of canvas * @property {Graphics} mask Sets a mask for the view. A mask is an object that limits the visibility of an object to the shape of the mask applied to it. A regular mask must be a Hilo.Graphics object. This allows for much faster masking in canvas as it utilises shape clipping. To remove a mask, set this property to null. @@ -74,6 +75,7 @@ return Class.create(/** @lends View.prototype */{ boundsArea: null, parent: null, depth: -1, + transform: null, blendMode:'source-over', /** @@ -186,19 +188,26 @@ return Class.create(/** @lends View.prototype */{ var cos = 1, sin = 0, rotation = o.rotation % 360, pivotX = o.pivotX, pivotY = o.pivotY, - scaleX = o.scaleX, scaleY = o.scaleY; + scaleX = o.scaleX, scaleY = o.scaleY, + transform = o.transform; - if(rotation){ - var r = rotation * Math.PI / 180; - cos = Math.cos(r); - sin = Math.sin(r); + if(transform) { + mtx.concat(transform); } + else{ + if(rotation){ + var r = rotation * Math.PI / 180; + cos = Math.cos(r); + sin = Math.sin(r); + } - if(pivotX != 0) mtx.tx -= pivotX; - if(pivotY != 0) mtx.ty -= pivotY; + if(pivotX != 0) mtx.tx -= pivotX; + if(pivotY != 0) mtx.ty -= pivotY; - var pos = o.getAlignPosition(); - mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + var pos = o.getAlignPosition(); + mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + } + } return mtx; }, diff --git a/build/amd/hilo/view/View.min.js b/build/amd/hilo/view/View.min.js index e76ef191..0c199559 100644 --- a/build/amd/hilo/view/View.min.js +++ b/build/amd/hilo/view/View.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for amd + * Hilo 1.2.0 for amd * Copyright 2016 alibaba.com * Licensed under the MIT License */ -define("hilo/view/View",["hilo/core/Hilo","hilo/core/Class","hilo/event/EventMixin","hilo/geom/Matrix","hilo/util/util"],function(t,e,i,n,r){var o=function(){function o(t,e,i){for(var n,r,o,a,s=0,h=!1,u=0,y=i.length;uc.x?(n=c.x,r=l.x):(n=l.x,r=c.x),t>=n&&t<=r))h=!0;else if(l.y>c.y?(o=c.y,a=l.y):(o=l.y,a=c.y),!(ea)){var x=(e-l.y)*(c.x-l.x)/(c.y-l.y)+l.x;if(x>t?s++:x==t&&(h=!0),l.x>t&&l.y==e){var d=i[(y+u-1)%y];(d.ye||d.y>e&&c.ys?s=y:yu?u=y:y=0)return!1;l>i.overlap&&(i.overlap=l,i.normal.x=d.x,i.normal.y=d.y)}return i}return e.create({Mixes:i,constructor:function(e){e=e||{},this.id=this.id||e.id||t.getUid("View"),r.copy(this,e,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,n,r,o,a,s=this.width,h=this.height,u=this.getConcatenatedMatrix(),y=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:h},{x:0,y:h}],l=[],c=0,x=y.length;ce?n=e:ri?o=i:a>1,n=0;break;case"TR":i=a-r,n=0;break;case"L":i=0,n=s-o>>1;break;case"C":i=a-r>>1,n=s-o>>1;break;case"R":i=a-r,n=s-o>>1;break;case"BL":i=0,n=s-o;break;case"B":i=a-r>>1,n=s-o;break;case"BR":i=a-r,n=s-o}}return{x:i,y:n}},hitTestPoint:function(t,e,i){var n=this.getBounds(),r=t>=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height;return r&&i&&(r=o(t,e,n)),r},hitTestObject:function(t,e){var i=this.getBounds(),n=t.getBounds(),r=i.x<=n.x+n.width&&n.x<=i.x+i.width&&i.y<=n.y+n.height&&n.y<=i.y+i.height;return r&&e&&(r=a(i,n)),!!r},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=r.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return t.viewToString(this)}})}();return o}); \ No newline at end of file +define("hilo/view/View",["hilo/core/Hilo","hilo/core/Class","hilo/event/EventMixin","hilo/geom/Matrix","hilo/util/util"],function(t,e,i,n,r){var o=function(){function o(t,e,i){for(var n,r,o,a,s=0,h=!1,u=0,l=i.length;uc.x?(n=c.x,r=y.x):(n=y.x,r=c.x),t>=n&&t<=r))h=!0;else if(y.y>c.y?(o=c.y,a=y.y):(o=y.y,a=c.y),!(ea)){var x=(e-y.y)*(c.x-y.x)/(c.y-y.y)+y.x;if(x>t?s++:x==t&&(h=!0),y.x>t&&y.y==e){var d=i[(l+u-1)%l];(d.ye||d.y>e&&c.ys?s=l:lu?u=l:l=0)return!1;y>i.overlap&&(i.overlap=y,i.normal.x=d.x,i.normal.y=d.y)}return i}return e.create({Mixes:i,constructor:function(e){e=e||{},this.id=this.id||e.id||t.getUid("View"),r.copy(this,e,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,transform:null,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,n,r,o,a,s=this.width,h=this.height,u=this.getConcatenatedMatrix(),l=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:h},{x:0,y:h}],y=[],c=0,x=l.length;ce?n=e:ri?o=i:a>1,n=0;break;case"TR":i=a-r,n=0;break;case"L":i=0,n=s-o>>1;break;case"C":i=a-r>>1,n=s-o>>1;break;case"R":i=a-r,n=s-o>>1;break;case"BL":i=0,n=s-o;break;case"B":i=a-r>>1,n=s-o;break;case"BR":i=a-r,n=s-o}}return{x:i,y:n}},hitTestPoint:function(t,e,i){var n=this.getBounds(),r=t>=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height;return r&&i&&(r=o(t,e,n)),r},hitTestObject:function(t,e){var i=this.getBounds(),n=t.getBounds(),r=i.x<=n.x+n.width&&n.x<=i.x+i.width&&i.y<=n.y+n.height&&n.y<=i.y+i.height;return r&&e&&(r=a(i,n)),!!r},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=r.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return t.viewToString(this)}})}();return o}); \ No newline at end of file diff --git a/build/cmd/hilo-cmd.js b/build/cmd/hilo-cmd.js index 4a63a7b0..49c4eb72 100644 --- a/build/cmd/hilo-cmd.js +++ b/build/cmd/hilo-cmd.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -192,7 +192,7 @@ return browser; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -229,7 +229,7 @@ return util; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -260,7 +260,7 @@ var Hilo = { * Hilo version * @type String */ - version: '1.1.11', + version: '1.2.0', /** * @language=en * Gets a globally unique id. Such as Stage1, Bitmap2 etc. @@ -464,12 +464,23 @@ var Hilo = { if (this.cacheStateIfChanged(obj, ['depth'], stateCache)) { style.zIndex = obj.depth + 1; } - if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { - style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + if (obj.transform){ + var transform = obj.transform; + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = '0 0'; + } + style[prefix + 'Transform'] = 'matrix3d(' + transform.a + ', '+ transform.b + ', 0, 0, '+ transform.c + ', '+ transform.d + ', 0, 0, 0, 0, 1, 0, '+ transform.tx + ', '+ transform.ty + ', 0, 1)'; } - if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { - style[prefix + 'Transform'] = this.getTransformCSS(obj); + else{ + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + } + + if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { + style[prefix + 'Transform'] = this.getTransformCSS(obj); + } } + if (this.cacheStateIfChanged(obj, ['background'], stateCache)) { style.backgroundColor = obj.background; } @@ -557,7 +568,7 @@ return Hilo; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -740,7 +751,7 @@ return Class; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -772,6 +783,50 @@ var Matrix = Class.create(/** @lends Matrix.prototype */{ this.ty = ty; }, + /** + * set + * @param {Number} a + * @param {Number} b + * @param {Number} c + * @param {Number} d + * @param {Number} tx + * @param {Number} ty + */ + set: function(a, b, c, d, tx, ty){ + this.a = a; + this.b = b; + this.c = c; + this.d = d; + this.tx = tx; + this.ty = ty; + + return this; + }, + + /** + * copy + * @param {Matrix} mat + * @return {Matrix} this + */ + copy: function(mat){ + this.a = mat.a; + this.b = mat.b; + this.c = mat.c; + this.d = mat.d; + this.tx = mat.tx; + this.ty = mat.ty; + + return this; + }, + + /** + * clone + * @return {Matrix} + */ + clone: function(){ + return new Matrix().copy(this); + }, + /** * @language=en * Link a Matrix to current Matrix, in order to make geometry effects on these two composed more effective. @@ -922,7 +977,7 @@ return Matrix; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1077,7 +1132,7 @@ return EventMixin; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1161,7 +1216,7 @@ return Drawable; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1258,7 +1313,7 @@ return Renderer; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1281,26 +1336,26 @@ var Renderer = require('hilo/renderer/Renderer'); * @requires hilo/renderer/Renderer * @property {CanvasRenderingContext2D} context The context of the canvas element, readonly. */ -var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ +var CanvasRenderer = Class.create( /** @lends CanvasRenderer.prototype */ { Extends: Renderer, - constructor: function(properties){ + constructor: function(properties) { CanvasRenderer.superclass.constructor.call(this, properties); this.context = this.canvas.getContext("2d"); }, - renderType:'canvas', + renderType: 'canvas', context: null, /** * @private * @see Renderer#startDraw */ - startDraw: function(target){ - if(target.visible && target.alpha > 0){ - if(target === this.stage){ + startDraw: function(target) { + if (target.visible && target.alpha > 0) { + if (target === this.stage) { this.context.clearRect(0, 0, target.width, target.height); } - if(target.blendMode !== this.blendMode){ + if (target.blendMode !== this.blendMode) { this.context.globalCompositeOperation = this.blendMode = target.blendMode; } this.context.save(); @@ -1313,31 +1368,38 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#draw */ - draw: function(target){ - var ctx = this.context, w = target.width, h = target.height; + draw: function(target) { + var ctx = this.context, + w = target.width, + h = target.height; //draw background var bg = target.background; - if(bg){ + if (bg) { ctx.fillStyle = bg; ctx.fillRect(0, 0, w, h); } //draw image - var drawable = target.drawable, image = drawable && drawable.image; - if(image){ - var rect = drawable.rect, sw = rect[2], sh = rect[3], offsetX = rect[4], offsetY = rect[5]; + var drawable = target.drawable, + image = drawable && drawable.image; + if (image) { + var rect = drawable.rect, + sw = rect[2], + sh = rect[3], + offsetX = rect[4], + offsetY = rect[5]; //ie9+浏览器宽高为0时会报错 fixed ie9 bug. - if(!sw || !sh){ + if (!sw || !sh) { return; } - if(!w && !h){ + if (!w && !h) { //fix width/height TODO: how to get rid of this? w = target.width = sw; h = target.height = sh; } //the pivot is the center of frame if has offset, otherwise is (0, 0) - if(offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); + if (offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); ctx.drawImage(image, rect[0], rect[1], sw, sh, 0, 0, w, h); } }, @@ -1346,7 +1408,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#endDraw */ - endDraw: function(target){ + endDraw: function(target) { this.context.restore(); }, @@ -1354,9 +1416,9 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#transform */ - transform: function(target){ + transform: function(target) { var drawable = target.drawable; - if(drawable && drawable.domElement){ + if (drawable && drawable.domElement) { Hilo.setElementStyleByView(target); return; } @@ -1365,66 +1427,72 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ scaleX = target.scaleX, scaleY = target.scaleY; - if(target === this.stage){ + if (target === this.stage) { var style = this.canvas.style, oldScaleX = target._scaleX, oldScaleY = target._scaleY, isStyleChange = false; - if((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)){ + if ((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)) { target._scaleX = scaleX; style.width = scaleX * target.width + "px"; isStyleChange = true; } - if((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)){ + if ((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)) { target._scaleY = scaleY; style.height = scaleY * target.height + "px"; isStyleChange = true; } - if(isStyleChange){ + if (isStyleChange) { target.updateViewport(); } - }else{ + } else { var x = target.x, y = target.y, pivotX = target.pivotX, pivotY = target.pivotY, rotation = target.rotation % 360, + transform = target.transform, mask = target.mask; - if(mask){ + if (mask) { mask._render(this); ctx.clip(); } //alignment var align = target.align; - if(align){ + if (align) { var pos = target.getAlignPosition(); x = pos.x; y = pos.y; } + + if (transform) { + ctx.transform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); + } else { + if (x != 0 || y != 0) ctx.translate(x, y); + if (rotation != 0) ctx.rotate(rotation * Math.PI / 180); + if (scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); + if (pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); + } - if(x != 0 || y != 0) ctx.translate(x, y); - if(rotation != 0) ctx.rotate(rotation * Math.PI / 180); - if(scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); - if(pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); } - if(target.alpha > 0) ctx.globalAlpha *= target.alpha; + if (target.alpha > 0) ctx.globalAlpha *= target.alpha; }, /** * @private * @see Renderer#remove */ - remove: function(target){ + remove: function(target) { var drawable = target.drawable; var elem = drawable && drawable.domElement; - if(elem){ + if (elem) { var parentElem = elem.parentNode; - if(parentElem){ + if (parentElem) { parentElem.removeChild(elem); } } @@ -1434,7 +1502,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#clear */ - clear: function(x, y, width, height){ + clear: function(x, y, width, height) { this.context.clearRect(x, y, width, height); }, @@ -1442,7 +1510,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#resize */ - resize: function(width, height){ + resize: function(width, height) { var canvas = this.canvas; var stage = this.stage; var style = canvas.style; @@ -1460,7 +1528,7 @@ return CanvasRenderer; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1647,7 +1715,7 @@ return DOMRenderer; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -2076,21 +2144,28 @@ var WebGLRenderer = Class.create(/** @lends WebGLRenderer.prototype */{ var cos = 1, sin = 0, rotation = view.rotation % 360, pivotX = view.pivotX, pivotY = view.pivotY, - scaleX = view.scaleX, scaleY = view.scaleY; + scaleX = view.scaleX, scaleY = view.scaleY, + transform = view.transform; - if(rotation){ - var r = rotation * DEG2RAD; - cos = Math.cos(r); - sin = Math.sin(r); + if (transform) { + mtx.copy(transform); } + else { + if(rotation){ + var r = rotation * DEG2RAD; + cos = Math.cos(r); + sin = Math.sin(r); + } + + var pos = view.getAlignPosition(); - var pos = view.getAlignPosition(); - mtx.a = cos*scaleX; - mtx.b = sin*scaleX; - mtx.c = -sin*scaleY; - mtx.d = cos*scaleY; - mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; - mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + mtx.a = cos*scaleX; + mtx.b = sin*scaleX; + mtx.c = -sin*scaleY; + mtx.d = cos*scaleY; + mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; + mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + } mtx.concat(ancestor.__webglWorldMatrix); }, @@ -2222,7 +2297,7 @@ return WebGLRenderer; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -2262,6 +2337,7 @@ var util = require('hilo/util/util'); * @property {Number} pivotY Position of the center point on the y axis of the view, default value is 0. * @property {Number} scaleX The x axis scale factor of the view, default value is 1. * @property {Number} scaleY The y axis scale factor of the view, default value is 1. + * @property {Matrix} transform The transform of the view.If set the transform, x, y, scaleX, scaleY, rotation, pivotX, pivotY will be ignored.default is null. * @property {Boolean} pointerEnabled Is the view can receive DOM events, default value is true. * @property {Object} background The background style to fill the view, can be css color, gradient or pattern of canvas * @property {Graphics} mask Sets a mask for the view. A mask is an object that limits the visibility of an object to the shape of the mask applied to it. A regular mask must be a Hilo.Graphics object. This allows for much faster masking in canvas as it utilises shape clipping. To remove a mask, set this property to null. @@ -2303,6 +2379,7 @@ return Class.create(/** @lends View.prototype */{ boundsArea: null, parent: null, depth: -1, + transform: null, blendMode:'source-over', /** @@ -2415,19 +2492,26 @@ return Class.create(/** @lends View.prototype */{ var cos = 1, sin = 0, rotation = o.rotation % 360, pivotX = o.pivotX, pivotY = o.pivotY, - scaleX = o.scaleX, scaleY = o.scaleY; + scaleX = o.scaleX, scaleY = o.scaleY, + transform = o.transform; - if(rotation){ - var r = rotation * Math.PI / 180; - cos = Math.cos(r); - sin = Math.sin(r); + if(transform) { + mtx.concat(transform); } + else{ + if(rotation){ + var r = rotation * Math.PI / 180; + cos = Math.cos(r); + sin = Math.sin(r); + } - if(pivotX != 0) mtx.tx -= pivotX; - if(pivotY != 0) mtx.ty -= pivotY; + if(pivotX != 0) mtx.tx -= pivotX; + if(pivotY != 0) mtx.ty -= pivotY; - var pos = o.getAlignPosition(); - mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + var pos = o.getAlignPosition(); + mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + } + } return mtx; }, @@ -2716,7 +2800,7 @@ return View; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -2785,7 +2869,7 @@ return CacheMixin; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3163,7 +3247,7 @@ return Container; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3439,7 +3523,7 @@ return Stage; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3522,7 +3606,7 @@ return Bitmap; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3798,7 +3882,7 @@ return Sprite; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3888,7 +3972,8 @@ var DOMElement = Class.create(/** @lends DOMElement.prototype */{ style:{ 'position':'absolute', 'transform':'scale3d(' + stage.scaleX + ',' + stage.scaleY + ', 1)', - 'transformOrigin':'0 0' + 'transformOrigin':'0 0', + 'zIndex':'1' } }); canvas.parentNode.insertBefore(renderer._domElementContainer, canvas.nextSibling); @@ -3917,7 +4002,7 @@ return DOMElement; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -4475,7 +4560,7 @@ return Graphics; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -4733,7 +4818,7 @@ return Text; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -4922,7 +5007,7 @@ return BitmapText; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5107,7 +5192,7 @@ return Button; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5346,7 +5431,7 @@ return TextureAtlas; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5578,7 +5663,7 @@ return Ticker; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5626,7 +5711,7 @@ if (!fnProto.bind) { }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5767,7 +5852,7 @@ return drag; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6219,7 +6304,7 @@ return Tween; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6491,7 +6576,7 @@ return Ease; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6541,7 +6626,7 @@ return ImageLoader; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6610,7 +6695,7 @@ return ScriptLoader; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6665,6 +6750,7 @@ var LoadQueue = Class.create(/** @lends LoadQueue.prototype */{ *
  • loader - specified resource loader. If you specify this,we abandon choosing loader inside
  • *
  • noCache - a tag that set on or off to prevent cache,implemented by adding timestamp inside
  • *
  • size - predicted resource size, help calculating loading progress
  • + *
  • crossOrigin - Whether cross-domain is needed. eg:crossOrigin='anonymous'
  • * * @returns {LoadQueue} 下载队列实例本身。 */ @@ -6864,7 +6950,7 @@ return LoadQueue; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7071,7 +7157,7 @@ return HTMLAudio; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7392,7 +7478,7 @@ return WebAudio; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7499,7 +7585,7 @@ return WebSound; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7595,7 +7681,7 @@ return Camera; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7785,7 +7871,7 @@ return Camera3d; }); /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo-cmd.min.js b/build/cmd/hilo-cmd.min.js index f379406e..9b6f27a1 100644 --- a/build/cmd/hilo-cmd.min.js +++ b/build/cmd/hilo-cmd.min.js @@ -1,8 +1,8 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ -define(function(t,e,i){var r=function(){var t=navigator.userAgent,e=document,i=window,r=e.documentElement,n={iphone:/iphone/i.test(t),ipad:/ipad/i.test(t),ipod:/ipod/i.test(t),ios:/iphone|ipad|ipod/i.test(t),android:/android/i.test(t),webkit:/webkit/i.test(t),chrome:/chrome/i.test(t),safari:/safari/i.test(t),firefox:/firefox/i.test(t),ie:/msie/i.test(t),opera:/opera/i.test(t),supportTouch:"ontouchstart"in i,supportCanvas:null!=e.createElement("canvas").getContext,supportStorage:!1,supportOrientation:"orientation"in i||"orientation"in i.screen,supportDeviceMotion:"ondevicemotion"in i};try{var a="hilo";localStorage.setItem(a,a),localStorage.removeItem(a),n.supportStorage=!0}catch(o){}var s=n.jsVendor=n.webkit?"webkit":n.firefox?"webkit":n.opera?"o":n.ie?"ms":"",h=n.cssVendor="-"+s+"-",l=e.createElement("div"),c=l.style,u=void 0!=c[s+"Transform"],d=void 0!=c[s+"Perspective"];d&&(l.id="test3d",c=e.createElement("style"),c.textContent="@media ("+h+"transform-3d){#test3d{height:3px}}",e.head.appendChild(c),r.appendChild(l),d=3==l.offsetHeight,e.head.removeChild(c),r.removeChild(l)),n.supportTransform=u,n.supportTransform3D=d;var f=n.supportTouch,p=f?"touchstart":"mousedown",v=f?"touchmove":"mousemove",m=f?"touchend":"mouseup";return n.POINTER_START=p,n.POINTER_MOVE=v,n.POINTER_END=m,n}();return r}),define(function(t,e,i){var r={copy:function(t,e,i){for(var r in e)i&&!t.hasOwnProperty(r)&&void 0===t[r]||(t[r]=e[r]);return t}};return r}),define(function(t,e,i){var r=t("hilo/util/browser"),n=t("hilo/util/util"),a=window,o=document,s=o.documentElement,h=0,l={},c={version:"1.1.11",getUid:function(t){var e=++h;if(t){var i=t.charCodeAt(t.length-1);return i>=48&&i<=57&&(t+="_"),t+e}return e},viewToString:function(t){for(var e,i=t;i;)e=e?i.id+"."+e:i.id,i=i.parent;return e},copy:function(t,e,i){return n.copy(t,e,i),l.copy||(l.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),t},browser:r,event:{POINTER_START:r.POINTER_START,POINTER_MOVE:r.POINTER_MOVE,POINTER_END:r.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(t){var e;try{e=t.getBoundingClientRect()}catch(i){e={top:t.offsetTop,left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,bottom:t.offsetTop+t.offsetHeight}}var r=(a.pageXOffset||s.scrollLeft)-(s.clientLeft||0)||0,n=(a.pageYOffset||s.scrollTop)-(s.clientTop||0)||0,o=a.getComputedStyle?getComputedStyle(t):t.currentStyle,h=parseInt,l=h(o.paddingLeft)+h(o.borderLeftWidth)||0,c=h(o.paddingTop)+h(o.borderTopWidth)||0,u=h(o.paddingRight)+h(o.borderRightWidth)||0,d=h(o.paddingBottom)+h(o.borderBottomWidth)||0,f=e.top||0,p=e.left||0,v=e.right||0,m=e.bottom||0;return{left:p+r+l,top:f+n+c,width:v-u-p-l,height:m-d-f-c}},createElement:function(t,e){var i,r,n,a=o.createElement(t);for(i in e)if(r=e[i],"style"===i)for(n in r)a.style[n]=r[n];else a[i]=r;return a},getElement:function(t){return o.getElementById(t)},setElementStyleByView:function(t){var e=t.drawable,i=e.domElement.style,r=t._stateCache||(t._stateCache={}),n=c.browser.jsVendor,a="px",o=!1;if(this.cacheStateIfChanged(t,["visible"],r)&&(i.display=t.visible?"":"none"),this.cacheStateIfChanged(t,["alpha"],r)&&(i.opacity=t.alpha),t.visible&&!(t.alpha<=0)){this.cacheStateIfChanged(t,["width"],r)&&(i.width=t.width+a),this.cacheStateIfChanged(t,["height"],r)&&(i.height=t.height+a),this.cacheStateIfChanged(t,["depth"],r)&&(i.zIndex=t.depth+1),(o=this.cacheStateIfChanged(t,["pivotX","pivotY"],r))&&(i[n+"TransformOrigin"]=t.pivotX+a+" "+t.pivotY+a),(this.cacheStateIfChanged(t,["x","y","rotation","scaleX","scaleY"],r)||o)&&(i[n+"Transform"]=this.getTransformCSS(t)),this.cacheStateIfChanged(t,["background"],r)&&(i.backgroundColor=t.background),i.pointerEvents||(i.pointerEvents="none");var s=e.image;if(s){var h=s.src;h!==r.image&&(r.image=h,i.backgroundImage="url("+h+")");var l=e.rect;if(l){var u=l[0],d=l[1];u!==r.sx&&(r.sx=u,i.backgroundPositionX=-u+a),d!==r.sy&&(r.sy=d,i.backgroundPositionY=-d+a)}}var f=t.mask;if(f){var p=f.drawable.domElement.style.backgroundImage;p!==r.maskImage&&(r.maskImage=p,i[n+"MaskImage"]=p,i[n+"MaskRepeat"]="no-repeat");var v=f.x,m=f.y;v===r.maskX&&m===r.maskY||(r.maskX=v,r.maskY=m,i[n+"MaskPosition"]=v+a+" "+m+a)}}},cacheStateIfChanged:function(t,e,i){var r,n,a,o,s=!1;for(r=0,n=e.length;r=6?(e=s[0],i=s[1],r=s[2],n=s[3],a=s[4],o=s[5]):(e=t.a,i=t.b,r=t.c,n=t.d,a=t.tx,o=t.ty),this.a=h*e+l*r,this.b=h*i+l*n,this.c=c*e+u*r,this.d=c*i+u*n,this.tx=d*e+f*r+a,this.ty=d*i+f*n+o,this},rotate:function(t){var e=Math.sin(t),i=Math.cos(t),r=this.a,n=this.b,a=this.c,o=this.d,s=this.tx,h=this.ty;return this.a=r*i-n*e,this.b=r*e+n*i,this.c=a*i-o*e,this.d=a*e+o*i,this.tx=s*i-h*e,this.ty=s*e+h*i,this},scale:function(t,e){return this.a*=t,this.d*=e,this.c*=t,this.b*=e,this.tx*=t,this.ty*=e,this},translate:function(t,e){return this.tx+=t,this.ty+=e,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,e=this.b,i=this.c,r=this.d,n=this.tx,a=t*r-e*i;return this.a=r/a,this.b=-e/a,this.c=-i/a,this.d=t/a,this.tx=(i*this.ty-r*n)/a,this.ty=-(t*this.ty-e*n)/a,this},transformPoint:function(t,e,i){var r=t.x*this.a+t.y*this.c+this.tx,n=t.x*this.b+t.y*this.d+this.ty;return e&&(r=r+.5>>0,n=n+.5>>0),i?{x:r,y:n}:(t.x=r,t.y=n,t)}});return n}),define(function(t,e,i){var r=t("hilo/core/Class"),n={_listeners:null,on:function(t,e,i){for(var r=this._listeners=this._listeners||{},n=r[t]=r[t]||[],a=0,o=n.length;a-1&&o.splice(c,1)}}return 0==o.length&&delete n[r],!0}return!1}},a=r.create({constructor:function(t,e,i){this.type=t,this.target=e,this.detail=i,this.timeStamp=+new Date},type:null,target:null,detail:null,timeStamp:0,stopImmediatePropagation:function(){this._stopped=!0}}),o=window.Event;if(o){var s=o.prototype,h=s.stopImmediatePropagation;s.stopImmediatePropagation=function(){h&&h.call(this),this._stopped=!0}}return n}),define(function(t,e,i){var r=t("hilo/core/Class"),n=t("hilo/util/util"),a=r.create({constructor:function(t){this.init(t)},image:null,rect:null,init:function(t){var e=this,i=e.image;a.isDrawable(t)?e.image=t:n.copy(e,t,!0);var r=e.image;if("string"==typeof r){if(!i||r!==i.getAttribute("src")){e.image=null;var o=new Image;return t.crossOrigin&&(o.crossOrigin=t.crossOrigin),o.onload=function(){o.onload=null,e.init(o)},void(o.src=r)}r=e.image=i}r&&!e.rect&&(e.rect=[0,0,r.width,r.height])},Statics:{isDrawable:function(t){if(!t||!t.tagName)return!1;var e=t.tagName.toLowerCase();return"img"===e||"canvas"===e||"video"===e}}});return a}),define(function(t,e,i){var r=t("hilo/core/Class"),n=t("hilo/util/util"),a=r.create({constructor:function(t){t=t||{},n.copy(this,t,!0)},renderType:null,canvas:null,stage:null,blendMode:"source-over",startDraw:function(t){},draw:function(t){},endDraw:function(t){},transform:function(){},hide:function(){},remove:function(t){},clear:function(t,e,i,r){},resize:function(t,e){}});return a}),define(function(t,e,i){var r=t("hilo/core/Class"),n=t("hilo/core/Hilo"),a=t("hilo/renderer/Renderer"),o=r.create({Extends:a,constructor:function(t){o.superclass.constructor.call(this,t),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(t){return!!(t.visible&&t.alpha>0)&&(t===this.stage&&this.context.clearRect(0,0,t.width,t.height),t.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=t.blendMode),this.context.save(),!0)},draw:function(t){var e=this.context,i=t.width,r=t.height,n=t.background;n&&(e.fillStyle=n,e.fillRect(0,0,i,r));var a=t.drawable,o=a&&a.image;if(o){var s=a.rect,h=s[2],l=s[3],c=s[4],u=s[5];if(!h||!l)return;i||r||(i=t.width=h,r=t.height=l),(c||u)&&e.translate(c-.5*h,u-.5*l),e.drawImage(o,s[0],s[1],h,l,0,0,i,r)}},endDraw:function(t){this.context.restore()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void n.setElementStyleByView(t);var i=this.context,r=t.scaleX,a=t.scaleY;if(t===this.stage){var o=this.canvas.style,s=t._scaleX,h=t._scaleY,l=!1;(!s&&1!=r||s&&s!=r)&&(t._scaleX=r,o.width=r*t.width+"px",l=!0),(!h&&1!=a||h&&h!=a)&&(t._scaleY=a,o.height=a*t.height+"px",l=!0),l&&t.updateViewport()}else{var c=t.x,u=t.y,d=t.pivotX,f=t.pivotY,p=t.rotation%360,v=t.mask;v&&(v._render(this),i.clip());var m=t.align;if(m){var _=t.getAlignPosition();c=_.x,u=_.y}0==c&&0==u||i.translate(c,u),0!=p&&i.rotate(p*Math.PI/180),1==r&&1==a||i.scale(r,a),0==d&&0==f||i.translate(-d,-f)}t.alpha>0&&(i.globalAlpha*=t.alpha)},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},clear:function(t,e,i,r){this.context.clearRect(t,e,i,r)},resize:function(t,e){var i=this.canvas,r=this.stage,n=i.style;i.width=t,i.height=e,n.width=r.width*r.scaleX+"px",n.height=r.height*r.scaleY+"px"}});return o}),define(function(t,e,i){var r=t("hilo/core/Class"),n=t("hilo/core/Hilo"),a=t("hilo/renderer/Renderer"),o=t("hilo/view/Drawable"),s=function(){function t(t,e){var i=t.tagName||"div",r=e.image,a=t.width||r&&r.width,o=t.height||r&&r.height,s=n.createElement(i),h=s.style;if(t.id&&(s.id=t.id),h.position="absolute",h.left=(t.left||0)+"px",h.top=(t.top||0)+"px",h.width=a+"px",h.height=o+"px","canvas"==i){if(s.width=a,s.height=o,r){var l=s.getContext("2d"),c=e.rect||[0,0,a,o];l.drawImage(r,c[0],c[1],c[2],c[3],t.x||0,t.y||0,t.width||c[2],t.height||c[3])}}else if(h.opacity=void 0!=t.alpha?t.alpha:1,(t===this.stage||t.clipChildren)&&(h.overflow="hidden"),r&&r.src){h.backgroundImage="url("+r.src+")";var u=t.rectX||0,d=t.rectY||0;h.backgroundPosition=-u+"px "+-d+"px"}return s}return r.create({Extends:a,constructor:function(t){s.superclass.constructor.call(this,t)},renderType:"dom",startDraw:function(e){var i=e.drawable=e.drawable||new o;return i.domElement=i.domElement||t(e,i),!0},draw:function(t){var e=t.parent,i=t.drawable.domElement,r=i.parentNode;if(e){var n=e.drawable.domElement;if(n!=r&&n.appendChild(i),!t.width&&!t.height){var a=t.drawable.rect;a&&(a[2]||a[3])&&(t.width=a[2],t.height=a[3])}}else t!==this.stage||r||(i.style.overflow="hidden",this.canvas.appendChild(i))},transform:function(t){if(n.setElementStyleByView(t),t===this.stage){var e=this.canvas.style,i=t._scaleX,r=t._scaleY,a=t.scaleX,o=t.scaleY;(!i&&1!=a||i&&i!=a)&&(t._scaleX=a,e.width=a*t.width+"px"),(!r&&1!=o||r&&r!=o)&&(t._scaleY=o,e.height=o*t.height+"px")}},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},hide:function(t){var e=t.drawable&&t.drawable.domElement;e&&(e.style.display="none")},resize:function(t,e){var i=this.canvas.style;i.width=t+"px",i.height=e+"px","absolute"!=i.position&&(i.position="relative")}})}();return s}),define(function(t,e,i){var r=t("hilo/core/Class"),n=t("hilo/core/Hilo"),a=t("hilo/renderer/Renderer"),o=t("hilo/geom/Matrix"),s=Math.PI/180,h=r.create({Extends:a,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var t=document.createElement("canvas");t.getContext&&(t.getContext("webgl")||t.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(t){h.superclass.constructor.call(this,t);var e=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=h.MAX_BATCH_NUM,this.positionStride=4*h.ATTRIBUTE_NUM;var i=this.maxBatchNum*h.ATTRIBUTE_NUM*4,r=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*i),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(r);for(var n=0,a=0;n0)&&(t===this.stage&&this.clear(),!0)},draw:function(t){var e=t.width,i=t.height,r=(t.background,t.drawable),n=r&&r.image;if(n){var a=r.rect,o=a[2],s=a[3];e||i||(e=t.width=o,i=t.height=s),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var h=this._createVertexs(n,a[0],a[1],o,s,0,0,e,i),l=this.batchIndex*this.positionStride,c=this.float32Array,u=this.uint32Array,d=(t.tint>>16)+(65280&t.tint)+((255&t.tint)<<16)+(255*t.__webglRenderAlpha<<24);c[l+0]=h[0],c[l+1]=h[1],c[l+2]=h[2],c[l+3]=h[3],u[l+4]=d,c[l+5]=h[4],c[l+6]=h[5],c[l+7]=h[6],c[l+8]=h[7],u[l+9]=d,c[l+10]=h[8],c[l+11]=h[9],c[l+12]=h[10],c[l+13]=h[11],u[l+14]=d,c[l+15]=h[12],c[l+16]=h[13],c[l+17]=h[14],c[l+18]=h[15],u[l+19]=d;for(var f=t.__webglWorldMatrix,p=0;p<4;p++){var v=c[l+5*p],m=c[l+5*p+1];c[l+5*p]=f.a*v+f.c*m+f.tx,c[l+5*p+1]=f.b*v+f.d*m+f.ty}t.__textureImage=n,this.sprites[this.batchIndex++]=t}},endDraw:function(t){t===this.stage&&this._renderBatches()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void n.setElementStyleByView(t);var i=t.scaleX,r=t.scaleY;if(t===this.stage){var a=this.canvas.style,s=t._scaleX,h=t._scaleY,l=!1;(!s&&1!=i||s&&s!=i)&&(t._scaleX=i,a.width=i*t.width+"px",l=!0),(!h&&1!=r||h&&h!=r)&&(t._scaleY=r,a.height=r*t.height+"px",l=!0),l&&t.updateViewport(),t.__webglWorldMatrix=t.__webglWorldMatrix||new o(1,0,0,1,0,0)}else t.parent&&(t.__webglWorldMatrix=t.__webglWorldMatrix||new o(1,0,0,1,0,0),this._setConcatenatedMatrix(t,t.parent));t.alpha>0&&(t.parent&&t.parent.__webglRenderAlpha?t.__webglRenderAlpha=t.alpha*t.parent.__webglRenderAlpha:t.__webglRenderAlpha=t.alpha)},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},clear:function(t,e,i,r){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(t,e){if(this.width!==t||this.height!==e){var i=this.canvas,r=this.stage,n=i.style;this.width=i.width=t,this.height=i.height=e,n.width=r.width*r.scaleX+"px",n.height=r.height*r.scaleY+"px",this.gl.viewport(0,0,t,e),this.canvasHalfWidth=.5*t,this.canvasHalfHeight=.5*e,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var t=this.gl;t.bufferSubData(t.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var e=0,i=0,r=null,n=0;n0&&(i.bindTexture(i.TEXTURE_2D,this._getTexture(this.sprites[t])),i.drawElements(i.TRIANGLES,6*r,i.UNSIGNED_SHORT,6*t*2))},_uploadProjectionTransform:function(t){this._projectionTransformElements&&!t||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var t=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",e="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new l(this,{v:t,f:e},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(t,e,i,r,n,a,o,s,h){var l=this.__tempVertexs||[],c=t.width,u=t.height;r/=c,n/=u,e/=c,i/=u,s=s,h=h,a=a,o=o,r+e>1&&(r=1-e),n+i>1&&(n=1-i);var d=0;return l[d++]=a,l[d++]=o,l[d++]=e,l[d++]=i,l[d++]=a+s,l[d++]=o,l[d++]=e+r,l[d++]=i,l[d++]=a,l[d++]=o+h,l[d++]=e,l[d++]=i+n,l[d++]=a+s,l[d++]=o+h,l[d++]=e+r,l[d++]=i+n,l},_setConcatenatedMatrix:function(t,e){var i=t.__webglWorldMatrix,r=1,n=0,a=t.rotation%360,o=t.pivotX,h=t.pivotY,l=t.scaleX,c=t.scaleY;if(a){var u=a*s;r=Math.cos(u),n=Math.sin(u)}var d=t.getAlignPosition();i.a=r*l,i.b=n*l,i.c=-n*c,i.d=r*c,i.tx=d.x-i.a*o-i.c*h,i.ty=d.y-i.b*o-i.d*h,i.concat(e.__webglWorldMatrix)},_getTexture:function(t){var e=t.__textureImage,i=this._cacheTexture[e.src];return i||(i=this.activeShader.uploadTexture(e)),i}}),l=function(t,e,i){this.renderer=t,this.gl=t.gl,this.program=this._createProgram(this.gl,e.v,e.f),i=i||{},this.attributes=i.attributes||[],this.uniforms=i.uniforms||[]};return l.prototype={active:function(){var t=this,e=t.renderer,i=t.gl,r=t.program;r&&i&&(e.activeShader=t,i.useProgram(r),t.attributes.forEach(function(t){e[t]=i.getAttribLocation(r,t),i.enableVertexAttribArray(e[t])}),t.uniforms.forEach(function(t){e[t]=i.getUniformLocation(r,t)}),t.width===e.width&&t.height===e.height||(t.width=e.width,t.height=e.height,e._uploadProjectionTransform()))},uploadTexture:function(t){var e=this.gl,i=this.renderer,r=e.createTexture(),n=i.u_Sampler;return e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,r),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.uniform1i(n,0),e.bindTexture(e.TEXTURE_2D,null),this.renderer._cacheTexture[t.src]=r,r},_createProgram:function(t,e,i){var r=this._createShader(t,t.VERTEX_SHADER,e),n=this._createShader(t,t.FRAGMENT_SHADER,i);if(!r||!n)return null;var a=t.createProgram();if(a){t.attachShader(a,r),t.attachShader(a,n),t.linkProgram(a),t.deleteShader(n),t.deleteShader(r);var o=t.getProgramParameter(a,t.LINK_STATUS);if(!o){var s=t.getProgramInfoLog(a);return console.log("Failed to link program: "+s),t.deleteProgram(a),null}}return a},_createShader:function(t,e,i){var r=t.createShader(e);if(r){t.shaderSource(r,i),t.compileShader(r);var n=t.getShaderParameter(r,t.COMPILE_STATUS);if(!n){var a=t.getShaderInfoLog(r);return console.log("Failed to compile shader: "+a),t.deleteShader(r),null}}return r}},h}),define(function(t,e,i){var r=t("hilo/core/Hilo"),n=t("hilo/core/Class"),a=t("hilo/event/EventMixin"),o=t("hilo/geom/Matrix"),s=t("hilo/util/util"),h=function(){function t(t,e,i){for(var r,n,a,o,s=0,h=!1,l=0,c=i.length;ld.x?(r=d.x,n=u.x):(r=u.x,n=d.x),t>=r&&t<=n))h=!0;else if(u.y>d.y?(a=d.y,o=u.y):(a=u.y,o=d.y),!(eo)){var f=(e-u.y)*(d.x-u.x)/(d.y-u.y)+u.x;if(f>t?s++:f==t&&(h=!0),u.x>t&&u.y==e){var p=i[(c+l-1)%c];(p.ye||p.y>e&&d.ys?s=c:cl?l=c:c=0)return!1;u>i.overlap&&(i.overlap=u,i.normal.x=p.x,i.normal.y=p.y)}return i}return n.create({Mixes:a,constructor:function(t){t=t||{},this.id=this.id||t.id||r.getUid("View"),s.copy(this,t,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,r,n,a,o,s=this.width,h=this.height,l=this.getConcatenatedMatrix(),c=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:h},{x:0,y:h}],u=[],d=0,f=c.length;de?r=e:ni?a=i:o>1,r=0;break;case"TR":i=o-n,r=0;break;case"L":i=0,r=s-a>>1;break;case"C":i=o-n>>1,r=s-a>>1;break;case"R":i=o-n,r=s-a>>1;break;case"BL":i=0,r=s-a;break;case"B":i=o-n>>1,r=s-a;break;case"BR":i=o-n,r=s-a}}return{x:i,y:r}},hitTestPoint:function(e,i,r){var n=this.getBounds(),a=e>=n.x&&e<=n.x+n.width&&i>=n.y&&i<=n.y+n.height;return a&&r&&(a=t(e,i,n)),a},hitTestObject:function(t,i){var r=this.getBounds(),n=t.getBounds(),a=r.x<=n.x+n.width&&n.x<=r.x+r.width&&r.y<=n.y+n.height&&n.y<=r.y+r.height;return a&&i&&(a=e(r,n)),!!a},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=s.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return r.viewToString(this)}})}();return h}),define(function(t,e,i){var r,n,a=t("hilo/view/Drawable"),o=t("hilo/util/browser"),s={_cacheDirty:!0,cache:function(t){(t||this._cacheDirty||!this.drawable)&&this.updateCache()},updateCache:function(){o.supportCanvas&&(r||(r=document.createElement("canvas"),n=r.getContext("2d")),r.width=this.width,r.height=this.height,this._draw(n),this.drawable=this.drawable||new a,this.drawable.init({image:r.toDataURL()}),this._cacheDirty=!1)},setCacheDirty:function(t){this._cacheDirty=t}};return s}),define(function(t,e,i){var r=t("hilo/core/Hilo"),n=t("hilo/core/Class"),a=t("hilo/view/View"),o=n.create({Extends:a,constructor:function(t){t=t||{},this.id=this.id||t.id||r.getUid("Container"),o.superclass.constructor.call(this,t),this.children?this._updateChildren():this.children=[]},children:null,pointerChildren:!0,clipChildren:!1,getNumChildren:function(){return this.children.length},addChildAt:function(t,e){var i=this.children,r=i.length,n=t.parent;e=e<0?0:e>r?r:e;var a=this.getChildIndex(t);if(a==e)return this;if(a>=0?(i.splice(a,1),e=e==r?r-1:e):n&&n.removeChild(t),i.splice(e,0,t),a<0)this._updateChildren(e);else{var o=a=e.length)return null;var i=e[t];if(i){if(!i.__renderer)for(var r=i;r=r.parent;){if(r.renderer){i.__renderer=r.renderer;break}if(r.__renderer){i.__renderer=r.__renderer;break}}i.__renderer&&i.__renderer.remove(i),i.parent=null,i.depth=-1}return e.splice(t,1),this._updateChildren(t),i},removeChild:function(t){return this.removeChildAt(this.getChildIndex(t))},removeChildById:function(t){for(var e,i=this.children,r=0,n=i.length;r=e.length?null:e[t]},getChildById:function(t){for(var e,i=this.children,r=0,n=i.length;r=0&&r!=e){var n=i.length;e=e<0?0:e>=n?n-1:e,i.splice(r,1),i.splice(e,0,t),this._updateChildren()}return this},swapChildren:function(t,e){var i=this.children,r=this.getChildIndex(t),n=this.getChildIndex(e);t.depth=n,i[n]=t,e.depth=r,i[r]=e},swapChildrenAt:function(t,e){var i=this.children,r=this.getChildAt(t),n=this.getChildAt(e);r.depth=e,i[e]=r,n.depth=t,i[t]=n},sortChildren:function(t){var e=t,i=this.children;if("string"==typeof e){var r=e;e=function(t,e){return e[r]-t[r]}}i.sort(e),this._updateChildren()},_updateChildren:function(t,e){var i,r=this.children;t=t||0,e=e||r.length;for(var n=t;n=0;l--)if(a=h[l],!(!a||!a.visible||a.alpha<=0||n&&!a.pointerEnabled))if(a.children&&a.children.length&&(!n||a.pointerChildren)&&(o=a.getViewAtPoint(t,e,i,r,n)),o){if(!r)return o;o.length&&(s=s.concat(o))}else if(a.hitTestPoint(t,e,i)){if(!r)return a;s.push(a)}return r&&s.length?s:null},render:function(t,e){o.superclass.render.call(this,t,e);var i,r,n,a=this.children.slice(0);for(i=0,r=a.length;ir?r:e,i[e]=t,t.name&&(this._frameNames[t.name]=t),(0!=e||this.width)&&this.height||(this.width=t.rect[2],this.height=t.rect[3]),this},getFrame:function(t){if("number"==typeof t){var e=this._frames;return t<0||t>=e.length?null:e[t]}return this._frameNames[t]},getFrameIndex:function(t){var e=this._frames,i=e.length,r=-1;if("number"==typeof t)r=t;else{var n="string"==typeof t?this._frameNames[t]:t;if(n)for(var a=0;a=i?i-1:r,this.paused=e,this._firstRender=!0,this},_render:function(t,e){var i,r=this.currentFrame;if(this._firstRender?(i=r,this._firstRender=!1):i=this._nextFrame(e),i!=r){this.currentFrame=i;var n=this._frames[i].callback;n&&n.call(this)}this.onEnterFrame&&this.onEnterFrame(i),this.drawable.init(this._frames[i]),s.superclass._render.call(this,t,e)},_nextFrame:function(t){var e=this._frames,i=e.length,r=this.currentFrame,n=e[r],a=n.duration||this.interval,o=this._frameElapsed,s=0!=r||this.drawable?o+(this.timeBased?t:1):0;return o=this._frameElapsed=s=i-1)&&this.stop(),this.paused||0!=o||(null!=n.next?r=this.getFrameIndex(n.next):r>=i-1?r=0:this.drawable&&r++),r},setFrameCallback:function(t,e){return t=this.getFrame(t),t&&(t.callback=e),this},onEnterFrame:null});return s}),define(function(t,e,i){var r=t("hilo/core/Hilo"),n=t("hilo/core/Class"),a=t("hilo/view/View"),o=t("hilo/view/Drawable"),s=n.create({Extends:a,constructor:function(t){t=t||{},this.id=this.id||t.id||r.getUid("DOMElement"),s.superclass.constructor.call(this,t),this.drawable=new o;var e=this.drawable.domElement=t.element||r.createElement("div");e.id=this.id,this.pointerEnabled&&!e.style.pointerEvents&&(e.style.pointerEvents="visible")},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||(t.transform(this),this.visible&&this.alpha>0&&this.render(t,e))},render:function(t,e){if("dom"!==t.renderType){var i=t.canvas,n=this.parent,a=t._domElementContainer;t._domElementContainer||(a=t._domElementContainer=r.createElement("div",{style:{position:"absolute",transform:"scale3d("+n.scaleX+","+n.scaleY+", 1)",transformOrigin:"0 0"}}),i.parentNode.insertBefore(t._domElementContainer,i.nextSibling));var o,s=this.drawable.domElement,h=this.depth,l=a.childNodes[0];if(s.parentNode)return;for(;l&&3!=l.nodeType&&(o=parseInt(l.style.zIndex)||0,!(o<=0||o>h));)l=l.nextSibling;a.insertBefore(this.drawable.domElement,l)}else t.draw(this)}});return s}),define(function(t,e,i){var r=t("hilo/core/Hilo"),n=t("hilo/core/Class"),a=t("hilo/view/View"),o=t("hilo/view/CacheMixin"),s=function(){var t=document.createElement("canvas"),e=t.getContext&&t.getContext("2d");return n.create({Extends:a,Mixes:o,constructor:function(t){t=t||{},this.id=this.id||t.id||r.getUid("Graphics"),s.superclass.constructor.call(this,t),this._actions=[]},lineWidth:1,lineAlpha:1,lineCap:null,lineJoin:null,miterLimit:10,hasStroke:!1,strokeStyle:"0",hasFill:!1,fillStyle:"0",fillAlpha:0,lineStyle:function(t,e,i,r,n,a){var o=this,s=o._addAction;return s.call(o,["lineWidth",o.lineWidth=t||1]),s.call(o,["strokeStyle",o.strokeStyle=e||"0"]),s.call(o,["lineAlpha",o.lineAlpha=i||1]),void 0!=r&&s.call(o,["lineCap",o.lineCap=r]),void 0!=n&&s.call(o,["lineJoin",o.lineJoin=n]),void 0!=a&&s.call(o,["miterLimit",o.miterLimit=a]),o.hasStroke=!0,o},beginFill:function(t,e){var i=this,r=i._addAction;return r.call(i,["fillStyle",i.fillStyle=t]),r.call(i,["fillAlpha",i.fillAlpha=e||1]),i.hasFill=!0,i},endFill:function(){var t=this,e=t._addAction;return t.hasStroke&&e.call(t,["stroke"]),t.hasFill&&e.call(t,["fill"]),t.setCacheDirty(!0),t},beginLinearGradientFill:function(t,i,r,n,a,o){for(var s=this,h=e.createLinearGradient(t,i,r,n),l=0,c=a.length;l1?a.slice(1):null;"function"==typeof t[o]?t[o].apply(t,s):t[o]=a[1]}},render:function(t,e){var i=this;"canvas"===t.renderType?i._draw(t.context):(i.cache(),t.draw(i))},clear:function(){var t=this;return t._actions.length=0,t.lineWidth=1,t.lineAlpha=1,t.lineCap=null,t.lineJoin=null,t.miterLimit=10,t.hasStroke=!1,t.strokeStyle="0",t.hasFill=!1,t.fillStyle="0",t.fillAlpha=1,t.setCacheDirty(!0),t},_addAction:function(t){var e=this;return e._actions.push(t),e}})}();return s}),define(function(t,e,i){var r=t("hilo/core/Class"),n=t("hilo/core/Hilo"),a=t("hilo/view/View"),o=t("hilo/view/CacheMixin"),s=r.create({Extends:a,Mixes:o,constructor:function(t){t=t||{},this.id=this.id||t.id||n.getUid("Text"),s.superclass.constructor.call(this,t),t.font||(this.font="12px arial"),this._fontHeight=s.measureFontHeight(this.font)},text:null,color:"#000",textAlign:null,textVAlign:null,outline:!1,lineSpacing:0,maxWidth:200,font:null,textWidth:0,textHeight:0,setFont:function(t){var e=this;return e.font!==t&&(e.font=t,e._fontHeight=s.measureFontHeight(t)),e},render:function(t,e){var i=this;if("canvas"===t.renderType)this.drawable?t.draw(i):i._draw(t.context);else if("dom"===t.renderType){var r=i.drawable,n=r.domElement,a=n.style;a.font=i.font,a.textAlign=i.textAlign,a.color=i.color,a.width=i.width+"px",a.height=i.height+"px",a.lineHeight=i._fontHeight+i.lineSpacing+"px",n.innerHTML=i.text,t.draw(this)}else i.cache(),t.draw(i)},_draw:function(t){var e=this,i=e.text.toString();if(i){t.font=e.font,t.textAlign=e.textAlign,t.textBaseline="top";var r,n,a,o,s,h=i.split(/\r\n|\r|\n|/),l=0,c=0,u=e._fontHeight+e.lineSpacing,d=[];for(r=0,o=h.length;re.maxWidth?(d.push({text:m,y:c}),l<_&&(l=_),c+=u,m=v):(_=f,m+=v),p==s-1&&(d.push({text:m,y:c}),m!==v&&l>1;break;case"bottom":g=e.height-e.textHeight}var x=e.background;for(x&&(t.fillStyle=x,t.fillRect(0,0,e.width,e.height)),e.outline?t.strokeStyle=e.color:t.fillStyle=e.color,r=0;r>1;break;case"right":case"end":n=a}r.outline?t.strokeText(e,n,i):t.fillText(e,n,i)},Statics:{measureFontHeight:function(t){var e,i=document.documentElement,r=n.createElement("div",{style:{font:t,position:"absolute"},innerHTML:"M"});return i.appendChild(r),e=r.offsetHeight,i.removeChild(r),e}}});return s}),define(function(t,e,i){var r=t("hilo/core/Class"),n=t("hilo/core/Hilo"),a=t("hilo/view/Container"),o=t("hilo/view/Bitmap"),s=r.create({Extends:a,constructor:function(t){t=t||{},this.id=this.id||t.id||n.getUid("BitmapText"),s.superclass.constructor.call(this,t);var e=t.text+"";e&&(this.text="",this.setText(e)),this.pointerChildren=!1},glyphs:null,letterSpacing:0,text:"",textAlign:"left",setText:function(t){var e=this,i=t.toString(),r=i.length;if(e.text!=i){e.text=i;var n,a,o,s,h=0,l=0,c=0;for(n=0;n0?e.letterSpacing:0),e.children[n]?(s=e.children[n],s.setImage(o.image,o.rect)):(s=e._createBitmap(o),e.addChild(s)),s.x=c,h=c+o.rect[2],l=Math.max(l,o.rect[3]));for(n=e.children.length-1;n>=r;n--)e._releaseBitmap(e.children[n]),e.children[n].removeFromParent();return e.width=h,e.height=l,this.setTextAlign(),e}},_createBitmap:function(t){var e;return s._pool.length?(e=s._pool.pop(),e.setImage(t.image,t.rect)):e=new o({image:t.image,rect:t.rect}),e},_releaseBitmap:function(t){s._pool.push(t)},setTextAlign:function(t){switch(this.textAlign=t||this.textAlign,this.textAlign){case"center":this.pivotX=.5*this.width;break;case"right":this.pivotX=this.width;break;case"left":default:this.pivotX=0}return this},hasGlyphs:function(t){var e=this.glyphs;if(!e)return!1;t=t.toString();var i,r=t.length;for(i=0;i=this._targetFPS?(this._measuredFPS=1e3/(this._tickTime/this._tickCount)+.5>>0,this._tickCount=0,this._tickTime=0):this._tickTime+=t-this._lastTime,this._lastTime=t;for(var r=i.slice(0),n=0,a=r.length;n=0&&e.splice(i,1)},nextTick:function(t){var e=this,i={tick:function(r){e.removeTick(i),t()}};return e.addTick(i),i},timeout:function(t,e){var i=this,r=(new Date).getTime()+e,n={tick:function(){var e=(new Date).getTime(),a=e-r;a>=0&&(i.removeTick(n),t())}};return i.addTick(n),n},interval:function(t,e){var i=this,r=(new Date).getTime()+e,n={tick:function(){var i=(new Date).getTime(),n=i-r;n>=0&&(n=r)return-1;for(e<0&&(e=r+e),i=e;i=1?1:s;var l=r.ease?r.ease(s):s;r.reverse&&(r._reverseFlag<0&&(s=1-s,l=1-l),s<1e-7&&(r.repeat>0&&r._repeatCount++>=r.repeat||0==r.repeat&&!r.loop?h=!0:(r._startTime=t(),r._pausedTime=0,r._reverseFlag*=-1))),r.isStart||(r.setProps(r._fromProps,r._toProps),r.isStart=!0,r.onStart&&r.onStart.call(r,r)),r.time=a,r._render(l),(o=r.onUpdate)&&o.call(r,s,r),s>=1&&(r.reverse?(r._startTime=t(),r._pausedTime=0,r._reverseFlag*=-1):r.loop||r.repeat>0&&r._repeatCount++0&&u<=e?(c._render(s),c.time=a,n.add(c)):h&&(u<0||u>e)&&c.start()}return h?((o=r.onComplete)&&o.call(r,r),!0):void 0}}},Statics:{_tweens:[],tick:function(){var e,i,r=n._tweens,a=r.length;for(i=0;i-1&&r.splice(e,1);else for(e=0;e=i)return void t.fire("complete");if(t._currentIndexe.z})},tick:function(){this.sortZ()}});return o}();return a}),define(function(t,e,i){var r=t("hilo/core/Hilo"),n=t("hilo/core/Class"),a=t("hilo/view/View"),o=t("hilo/view/Container"),s=t("hilo/view/Drawable"),h=t("hilo/util/util"),l=function(){function t(t,e){return e?t+2*(Math.random()-.5)*e:t}for(var e=["x","y","vx","vy","ax","ay","rotation","rotationV","scale","scaleV","alpha","alphaV","life"],i=[],l=0,c=e.length;l=this._emitTime&&(this._currentRunTime=0,this._emitTime=t(this.emitTime,this.emitTimeVar),this._emit()),this._totalRunTime>=this.totalTime&&this.stop())},_emit:function(){for(var e=t(this.emitNum,this.emitNumVar)>>0,i=0;i=0;e--)this.children[e].destroy()}}),v=n.create({Extends:a,constructor:function(t){this.id=this.id||t.id||r.getUid("Particle"),v.superclass.constructor.call(this,t),this.init(t)},onUpdate:function(t){if(t*=.001,this._died)return!1;var e=this.ax+this.system.gx,i=this.ay+this.system.gy;return this.vx+=e*t,this.vy+=i*t,this.x+=this.vx*t,this.y+=this.vy*t,this.rotation+=this.rotationV,this._time>.1&&(this.alpha+=this.alphaV),this.scale+=this.scaleV,this.scaleX=this.scaleY=this.scale,this._time+=t,this._time>=this.life||this.alpha<=0?(this.destroy(),!1):void 0},setImage:function(t,e){this.drawable=this.drawable||new s,e=e||[0,0,t.width,t.height],this.width=e[2],this.height=e[3],this.drawable.rect=e,this.drawable.image=t},destroy:function(){this._died=!0,this.alpha=0,this.removeFromParent(),f.push(this)},init:function(e){this.system=e.system,this._died=!1,this._time=0,this.alpha=1;for(var r=0,n=i.length;r>0]),this.setImage(e.image,s),void 0!==e.pivotX&&(this.pivotX=e.pivotX*s[2]),void 0!==e.pivotY&&(this.pivotY=e.pivotY*s[3])}},Statics:{create:function(t){if(f.length>0){var e=f.pop();return e.init(t),e}return new v(t)}}});return p}();return l}); \ No newline at end of file +define(function(t,e,i){var r=function(){var t=navigator.userAgent,e=document,i=window,r=e.documentElement,n={iphone:/iphone/i.test(t),ipad:/ipad/i.test(t),ipod:/ipod/i.test(t),ios:/iphone|ipad|ipod/i.test(t),android:/android/i.test(t),webkit:/webkit/i.test(t),chrome:/chrome/i.test(t),safari:/safari/i.test(t),firefox:/firefox/i.test(t),ie:/msie/i.test(t),opera:/opera/i.test(t),supportTouch:"ontouchstart"in i,supportCanvas:null!=e.createElement("canvas").getContext,supportStorage:!1,supportOrientation:"orientation"in i||"orientation"in i.screen,supportDeviceMotion:"ondevicemotion"in i};try{var a="hilo";localStorage.setItem(a,a),localStorage.removeItem(a),n.supportStorage=!0}catch(o){}var s=n.jsVendor=n.webkit?"webkit":n.firefox?"webkit":n.opera?"o":n.ie?"ms":"",h=n.cssVendor="-"+s+"-",l=e.createElement("div"),c=l.style,u=void 0!=c[s+"Transform"],d=void 0!=c[s+"Perspective"];d&&(l.id="test3d",c=e.createElement("style"),c.textContent="@media ("+h+"transform-3d){#test3d{height:3px}}",e.head.appendChild(c),r.appendChild(l),d=3==l.offsetHeight,e.head.removeChild(c),r.removeChild(l)),n.supportTransform=u,n.supportTransform3D=d;var f=n.supportTouch,p=f?"touchstart":"mousedown",v=f?"touchmove":"mousemove",m=f?"touchend":"mouseup";return n.POINTER_START=p,n.POINTER_MOVE=v,n.POINTER_END=m,n}();return r}),define(function(t,e,i){var r={copy:function(t,e,i){for(var r in e)i&&!t.hasOwnProperty(r)&&void 0===t[r]||(t[r]=e[r]);return t}};return r}),define(function(t,e,i){var r=t("hilo/util/browser"),n=t("hilo/util/util"),a=window,o=document,s=o.documentElement,h=0,l={},c={version:"1.2.0",getUid:function(t){var e=++h;if(t){var i=t.charCodeAt(t.length-1);return i>=48&&i<=57&&(t+="_"),t+e}return e},viewToString:function(t){for(var e,i=t;i;)e=e?i.id+"."+e:i.id,i=i.parent;return e},copy:function(t,e,i){return n.copy(t,e,i),l.copy||(l.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),t},browser:r,event:{POINTER_START:r.POINTER_START,POINTER_MOVE:r.POINTER_MOVE,POINTER_END:r.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(t){var e;try{e=t.getBoundingClientRect()}catch(i){e={top:t.offsetTop,left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,bottom:t.offsetTop+t.offsetHeight}}var r=(a.pageXOffset||s.scrollLeft)-(s.clientLeft||0)||0,n=(a.pageYOffset||s.scrollTop)-(s.clientTop||0)||0,o=a.getComputedStyle?getComputedStyle(t):t.currentStyle,h=parseInt,l=h(o.paddingLeft)+h(o.borderLeftWidth)||0,c=h(o.paddingTop)+h(o.borderTopWidth)||0,u=h(o.paddingRight)+h(o.borderRightWidth)||0,d=h(o.paddingBottom)+h(o.borderBottomWidth)||0,f=e.top||0,p=e.left||0,v=e.right||0,m=e.bottom||0;return{left:p+r+l,top:f+n+c,width:v-u-p-l,height:m-d-f-c}},createElement:function(t,e){var i,r,n,a=o.createElement(t);for(i in e)if(r=e[i],"style"===i)for(n in r)a.style[n]=r[n];else a[i]=r;return a},getElement:function(t){return o.getElementById(t)},setElementStyleByView:function(t){var e=t.drawable,i=e.domElement.style,r=t._stateCache||(t._stateCache={}),n=c.browser.jsVendor,a="px",o=!1;if(this.cacheStateIfChanged(t,["visible"],r)&&(i.display=t.visible?"":"none"),this.cacheStateIfChanged(t,["alpha"],r)&&(i.opacity=t.alpha),t.visible&&!(t.alpha<=0)){if(this.cacheStateIfChanged(t,["width"],r)&&(i.width=t.width+a),this.cacheStateIfChanged(t,["height"],r)&&(i.height=t.height+a),this.cacheStateIfChanged(t,["depth"],r)&&(i.zIndex=t.depth+1),t.transform){var s=t.transform;(o=this.cacheStateIfChanged(t,["pivotX","pivotY"],r))&&(i[n+"TransformOrigin"]="0 0"),i[n+"Transform"]="matrix3d("+s.a+", "+s.b+", 0, 0, "+s.c+", "+s.d+", 0, 0, 0, 0, 1, 0, "+s.tx+", "+s.ty+", 0, 1)"}else(o=this.cacheStateIfChanged(t,["pivotX","pivotY"],r))&&(i[n+"TransformOrigin"]=t.pivotX+a+" "+t.pivotY+a),(this.cacheStateIfChanged(t,["x","y","rotation","scaleX","scaleY"],r)||o)&&(i[n+"Transform"]=this.getTransformCSS(t));this.cacheStateIfChanged(t,["background"],r)&&(i.backgroundColor=t.background),i.pointerEvents||(i.pointerEvents="none");var h=e.image;if(h){var l=h.src;l!==r.image&&(r.image=l,i.backgroundImage="url("+l+")");var u=e.rect;if(u){var d=u[0],f=u[1];d!==r.sx&&(r.sx=d,i.backgroundPositionX=-d+a),f!==r.sy&&(r.sy=f,i.backgroundPositionY=-f+a)}}var p=t.mask;if(p){var v=p.drawable.domElement.style.backgroundImage;v!==r.maskImage&&(r.maskImage=v,i[n+"MaskImage"]=v,i[n+"MaskRepeat"]="no-repeat");var m=p.x,g=p.y;m===r.maskX&&g===r.maskY||(r.maskX=m,r.maskY=g,i[n+"MaskPosition"]=m+a+" "+g+a)}}},cacheStateIfChanged:function(t,e,i){var r,n,a,o,s=!1;for(r=0,n=e.length;r=6?(e=s[0],i=s[1],r=s[2],n=s[3],a=s[4],o=s[5]):(e=t.a,i=t.b,r=t.c,n=t.d,a=t.tx,o=t.ty),this.a=h*e+l*r,this.b=h*i+l*n,this.c=c*e+u*r,this.d=c*i+u*n,this.tx=d*e+f*r+a,this.ty=d*i+f*n+o,this},rotate:function(t){var e=Math.sin(t),i=Math.cos(t),r=this.a,n=this.b,a=this.c,o=this.d,s=this.tx,h=this.ty;return this.a=r*i-n*e,this.b=r*e+n*i,this.c=a*i-o*e,this.d=a*e+o*i,this.tx=s*i-h*e,this.ty=s*e+h*i,this},scale:function(t,e){return this.a*=t,this.d*=e,this.c*=t,this.b*=e,this.tx*=t,this.ty*=e,this},translate:function(t,e){return this.tx+=t,this.ty+=e,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,e=this.b,i=this.c,r=this.d,n=this.tx,a=t*r-e*i;return this.a=r/a,this.b=-e/a,this.c=-i/a,this.d=t/a,this.tx=(i*this.ty-r*n)/a,this.ty=-(t*this.ty-e*n)/a,this},transformPoint:function(t,e,i){var r=t.x*this.a+t.y*this.c+this.tx,n=t.x*this.b+t.y*this.d+this.ty;return e&&(r=r+.5>>0,n=n+.5>>0),i?{x:r,y:n}:(t.x=r,t.y=n,t)}});return n}),define(function(t,e,i){var r=t("hilo/core/Class"),n={_listeners:null,on:function(t,e,i){for(var r=this._listeners=this._listeners||{},n=r[t]=r[t]||[],a=0,o=n.length;a-1&&o.splice(c,1)}}return 0==o.length&&delete n[r],!0}return!1}},a=r.create({constructor:function(t,e,i){this.type=t,this.target=e,this.detail=i,this.timeStamp=+new Date},type:null,target:null,detail:null,timeStamp:0,stopImmediatePropagation:function(){this._stopped=!0}}),o=window.Event;if(o){var s=o.prototype,h=s.stopImmediatePropagation;s.stopImmediatePropagation=function(){h&&h.call(this),this._stopped=!0}}return n}),define(function(t,e,i){var r=t("hilo/core/Class"),n=t("hilo/util/util"),a=r.create({constructor:function(t){this.init(t)},image:null,rect:null,init:function(t){var e=this,i=e.image;a.isDrawable(t)?e.image=t:n.copy(e,t,!0);var r=e.image;if("string"==typeof r){if(!i||r!==i.getAttribute("src")){e.image=null;var o=new Image;return t.crossOrigin&&(o.crossOrigin=t.crossOrigin),o.onload=function(){o.onload=null,e.init(o)},void(o.src=r)}r=e.image=i}r&&!e.rect&&(e.rect=[0,0,r.width,r.height])},Statics:{isDrawable:function(t){if(!t||!t.tagName)return!1;var e=t.tagName.toLowerCase();return"img"===e||"canvas"===e||"video"===e}}});return a}),define(function(t,e,i){var r=t("hilo/core/Class"),n=t("hilo/util/util"),a=r.create({constructor:function(t){t=t||{},n.copy(this,t,!0)},renderType:null,canvas:null,stage:null,blendMode:"source-over",startDraw:function(t){},draw:function(t){},endDraw:function(t){},transform:function(){},hide:function(){},remove:function(t){},clear:function(t,e,i,r){},resize:function(t,e){}});return a}),define(function(t,e,i){var r=t("hilo/core/Class"),n=t("hilo/core/Hilo"),a=t("hilo/renderer/Renderer"),o=r.create({Extends:a,constructor:function(t){o.superclass.constructor.call(this,t),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(t){return!!(t.visible&&t.alpha>0)&&(t===this.stage&&this.context.clearRect(0,0,t.width,t.height),t.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=t.blendMode),this.context.save(),!0)},draw:function(t){var e=this.context,i=t.width,r=t.height,n=t.background;n&&(e.fillStyle=n,e.fillRect(0,0,i,r));var a=t.drawable,o=a&&a.image;if(o){var s=a.rect,h=s[2],l=s[3],c=s[4],u=s[5];if(!h||!l)return;i||r||(i=t.width=h,r=t.height=l),(c||u)&&e.translate(c-.5*h,u-.5*l),e.drawImage(o,s[0],s[1],h,l,0,0,i,r)}},endDraw:function(t){this.context.restore()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void n.setElementStyleByView(t);var i=this.context,r=t.scaleX,a=t.scaleY;if(t===this.stage){var o=this.canvas.style,s=t._scaleX,h=t._scaleY,l=!1;(!s&&1!=r||s&&s!=r)&&(t._scaleX=r,o.width=r*t.width+"px",l=!0),(!h&&1!=a||h&&h!=a)&&(t._scaleY=a,o.height=a*t.height+"px",l=!0),l&&t.updateViewport()}else{var c=t.x,u=t.y,d=t.pivotX,f=t.pivotY,p=t.rotation%360,v=t.transform,m=t.mask;m&&(m._render(this),i.clip());var g=t.align;if(g){var _=t.getAlignPosition();c=_.x,u=_.y}v?i.transform(v.a,v.b,v.c,v.d,v.tx,v.ty):(0==c&&0==u||i.translate(c,u),0!=p&&i.rotate(p*Math.PI/180),1==r&&1==a||i.scale(r,a),0==d&&0==f||i.translate(-d,-f))}t.alpha>0&&(i.globalAlpha*=t.alpha)},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},clear:function(t,e,i,r){this.context.clearRect(t,e,i,r)},resize:function(t,e){var i=this.canvas,r=this.stage,n=i.style;i.width=t,i.height=e,n.width=r.width*r.scaleX+"px",n.height=r.height*r.scaleY+"px"}});return o}),define(function(t,e,i){var r=t("hilo/core/Class"),n=t("hilo/core/Hilo"),a=t("hilo/renderer/Renderer"),o=t("hilo/view/Drawable"),s=function(){function t(t,e){var i=t.tagName||"div",r=e.image,a=t.width||r&&r.width,o=t.height||r&&r.height,s=n.createElement(i),h=s.style;if(t.id&&(s.id=t.id),h.position="absolute",h.left=(t.left||0)+"px",h.top=(t.top||0)+"px",h.width=a+"px",h.height=o+"px","canvas"==i){if(s.width=a,s.height=o,r){var l=s.getContext("2d"),c=e.rect||[0,0,a,o];l.drawImage(r,c[0],c[1],c[2],c[3],t.x||0,t.y||0,t.width||c[2],t.height||c[3])}}else if(h.opacity=void 0!=t.alpha?t.alpha:1,(t===this.stage||t.clipChildren)&&(h.overflow="hidden"),r&&r.src){h.backgroundImage="url("+r.src+")";var u=t.rectX||0,d=t.rectY||0;h.backgroundPosition=-u+"px "+-d+"px"}return s}return r.create({Extends:a,constructor:function(t){s.superclass.constructor.call(this,t)},renderType:"dom",startDraw:function(e){var i=e.drawable=e.drawable||new o;return i.domElement=i.domElement||t(e,i),!0},draw:function(t){var e=t.parent,i=t.drawable.domElement,r=i.parentNode;if(e){var n=e.drawable.domElement;if(n!=r&&n.appendChild(i),!t.width&&!t.height){var a=t.drawable.rect;a&&(a[2]||a[3])&&(t.width=a[2],t.height=a[3])}}else t!==this.stage||r||(i.style.overflow="hidden",this.canvas.appendChild(i))},transform:function(t){if(n.setElementStyleByView(t),t===this.stage){var e=this.canvas.style,i=t._scaleX,r=t._scaleY,a=t.scaleX,o=t.scaleY;(!i&&1!=a||i&&i!=a)&&(t._scaleX=a,e.width=a*t.width+"px"),(!r&&1!=o||r&&r!=o)&&(t._scaleY=o,e.height=o*t.height+"px")}},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},hide:function(t){var e=t.drawable&&t.drawable.domElement;e&&(e.style.display="none")},resize:function(t,e){var i=this.canvas.style;i.width=t+"px",i.height=e+"px","absolute"!=i.position&&(i.position="relative")}})}();return s}),define(function(t,e,i){var r=t("hilo/core/Class"),n=t("hilo/core/Hilo"),a=t("hilo/renderer/Renderer"),o=t("hilo/geom/Matrix"),s=Math.PI/180,h=r.create({Extends:a,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var t=document.createElement("canvas");t.getContext&&(t.getContext("webgl")||t.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(t){h.superclass.constructor.call(this,t);var e=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=h.MAX_BATCH_NUM,this.positionStride=4*h.ATTRIBUTE_NUM;var i=this.maxBatchNum*h.ATTRIBUTE_NUM*4,r=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*i),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(r);for(var n=0,a=0;n0)&&(t===this.stage&&this.clear(),!0)},draw:function(t){var e=t.width,i=t.height,r=(t.background,t.drawable),n=r&&r.image;if(n){var a=r.rect,o=a[2],s=a[3];e||i||(e=t.width=o,i=t.height=s),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var h=this._createVertexs(n,a[0],a[1],o,s,0,0,e,i),l=this.batchIndex*this.positionStride,c=this.float32Array,u=this.uint32Array,d=(t.tint>>16)+(65280&t.tint)+((255&t.tint)<<16)+(255*t.__webglRenderAlpha<<24);c[l+0]=h[0],c[l+1]=h[1],c[l+2]=h[2],c[l+3]=h[3],u[l+4]=d,c[l+5]=h[4],c[l+6]=h[5],c[l+7]=h[6],c[l+8]=h[7],u[l+9]=d,c[l+10]=h[8],c[l+11]=h[9],c[l+12]=h[10],c[l+13]=h[11],u[l+14]=d,c[l+15]=h[12],c[l+16]=h[13],c[l+17]=h[14],c[l+18]=h[15],u[l+19]=d;for(var f=t.__webglWorldMatrix,p=0;p<4;p++){var v=c[l+5*p],m=c[l+5*p+1];c[l+5*p]=f.a*v+f.c*m+f.tx,c[l+5*p+1]=f.b*v+f.d*m+f.ty}t.__textureImage=n,this.sprites[this.batchIndex++]=t}},endDraw:function(t){t===this.stage&&this._renderBatches()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void n.setElementStyleByView(t);var i=t.scaleX,r=t.scaleY;if(t===this.stage){var a=this.canvas.style,s=t._scaleX,h=t._scaleY,l=!1;(!s&&1!=i||s&&s!=i)&&(t._scaleX=i,a.width=i*t.width+"px",l=!0),(!h&&1!=r||h&&h!=r)&&(t._scaleY=r,a.height=r*t.height+"px",l=!0),l&&t.updateViewport(),t.__webglWorldMatrix=t.__webglWorldMatrix||new o(1,0,0,1,0,0)}else t.parent&&(t.__webglWorldMatrix=t.__webglWorldMatrix||new o(1,0,0,1,0,0),this._setConcatenatedMatrix(t,t.parent));t.alpha>0&&(t.parent&&t.parent.__webglRenderAlpha?t.__webglRenderAlpha=t.alpha*t.parent.__webglRenderAlpha:t.__webglRenderAlpha=t.alpha)},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},clear:function(t,e,i,r){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(t,e){if(this.width!==t||this.height!==e){var i=this.canvas,r=this.stage,n=i.style;this.width=i.width=t,this.height=i.height=e,n.width=r.width*r.scaleX+"px",n.height=r.height*r.scaleY+"px",this.gl.viewport(0,0,t,e),this.canvasHalfWidth=.5*t,this.canvasHalfHeight=.5*e,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var t=this.gl;t.bufferSubData(t.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var e=0,i=0,r=null,n=0;n0&&(i.bindTexture(i.TEXTURE_2D,this._getTexture(this.sprites[t])),i.drawElements(i.TRIANGLES,6*r,i.UNSIGNED_SHORT,6*t*2))},_uploadProjectionTransform:function(t){this._projectionTransformElements&&!t||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var t=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",e="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new l(this,{v:t,f:e},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(t,e,i,r,n,a,o,s,h){var l=this.__tempVertexs||[],c=t.width,u=t.height;r/=c,n/=u,e/=c,i/=u,s=s,h=h,a=a,o=o,r+e>1&&(r=1-e),n+i>1&&(n=1-i);var d=0;return l[d++]=a,l[d++]=o,l[d++]=e,l[d++]=i,l[d++]=a+s,l[d++]=o,l[d++]=e+r,l[d++]=i,l[d++]=a,l[d++]=o+h,l[d++]=e,l[d++]=i+n,l[d++]=a+s,l[d++]=o+h,l[d++]=e+r,l[d++]=i+n,l},_setConcatenatedMatrix:function(t,e){var i=t.__webglWorldMatrix,r=1,n=0,a=t.rotation%360,o=t.pivotX,h=t.pivotY,l=t.scaleX,c=t.scaleY,u=t.transform;if(u)i.copy(u);else{if(a){var d=a*s;r=Math.cos(d),n=Math.sin(d)}var f=t.getAlignPosition();i.a=r*l,i.b=n*l,i.c=-n*c,i.d=r*c,i.tx=f.x-i.a*o-i.c*h,i.ty=f.y-i.b*o-i.d*h}i.concat(e.__webglWorldMatrix)},_getTexture:function(t){var e=t.__textureImage,i=this._cacheTexture[e.src];return i||(i=this.activeShader.uploadTexture(e)),i}}),l=function(t,e,i){this.renderer=t,this.gl=t.gl,this.program=this._createProgram(this.gl,e.v,e.f),i=i||{},this.attributes=i.attributes||[],this.uniforms=i.uniforms||[]};return l.prototype={active:function(){var t=this,e=t.renderer,i=t.gl,r=t.program;r&&i&&(e.activeShader=t,i.useProgram(r),t.attributes.forEach(function(t){e[t]=i.getAttribLocation(r,t),i.enableVertexAttribArray(e[t])}),t.uniforms.forEach(function(t){e[t]=i.getUniformLocation(r,t)}),t.width===e.width&&t.height===e.height||(t.width=e.width,t.height=e.height,e._uploadProjectionTransform()))},uploadTexture:function(t){var e=this.gl,i=this.renderer,r=e.createTexture(),n=i.u_Sampler;return e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,r),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.uniform1i(n,0),e.bindTexture(e.TEXTURE_2D,null),this.renderer._cacheTexture[t.src]=r,r},_createProgram:function(t,e,i){var r=this._createShader(t,t.VERTEX_SHADER,e),n=this._createShader(t,t.FRAGMENT_SHADER,i);if(!r||!n)return null;var a=t.createProgram();if(a){t.attachShader(a,r),t.attachShader(a,n),t.linkProgram(a),t.deleteShader(n),t.deleteShader(r);var o=t.getProgramParameter(a,t.LINK_STATUS);if(!o){var s=t.getProgramInfoLog(a);return console.log("Failed to link program: "+s),t.deleteProgram(a),null}}return a},_createShader:function(t,e,i){var r=t.createShader(e);if(r){t.shaderSource(r,i),t.compileShader(r);var n=t.getShaderParameter(r,t.COMPILE_STATUS);if(!n){var a=t.getShaderInfoLog(r);return console.log("Failed to compile shader: "+a),t.deleteShader(r),null}}return r}},h}),define(function(t,e,i){var r=t("hilo/core/Hilo"),n=t("hilo/core/Class"),a=t("hilo/event/EventMixin"),o=t("hilo/geom/Matrix"),s=t("hilo/util/util"),h=function(){function t(t,e,i){for(var r,n,a,o,s=0,h=!1,l=0,c=i.length;ld.x?(r=d.x,n=u.x):(r=u.x,n=d.x),t>=r&&t<=n))h=!0;else if(u.y>d.y?(a=d.y,o=u.y):(a=u.y,o=d.y),!(eo)){var f=(e-u.y)*(d.x-u.x)/(d.y-u.y)+u.x;if(f>t?s++:f==t&&(h=!0),u.x>t&&u.y==e){var p=i[(c+l-1)%c];(p.ye||p.y>e&&d.ys?s=c:cl?l=c:c=0)return!1;u>i.overlap&&(i.overlap=u,i.normal.x=p.x,i.normal.y=p.y)}return i}return n.create({Mixes:a,constructor:function(t){t=t||{},this.id=this.id||t.id||r.getUid("View"),s.copy(this,t,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,transform:null,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,r,n,a,o,s=this.width,h=this.height,l=this.getConcatenatedMatrix(),c=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:h},{x:0,y:h}],u=[],d=0,f=c.length;de?r=e:ni?a=i:o>1,r=0;break;case"TR":i=o-n,r=0;break;case"L":i=0,r=s-a>>1;break;case"C":i=o-n>>1,r=s-a>>1;break;case"R":i=o-n,r=s-a>>1;break;case"BL":i=0,r=s-a;break;case"B":i=o-n>>1,r=s-a;break;case"BR":i=o-n,r=s-a}}return{x:i,y:r}},hitTestPoint:function(e,i,r){var n=this.getBounds(),a=e>=n.x&&e<=n.x+n.width&&i>=n.y&&i<=n.y+n.height;return a&&r&&(a=t(e,i,n)),a},hitTestObject:function(t,i){var r=this.getBounds(),n=t.getBounds(),a=r.x<=n.x+n.width&&n.x<=r.x+r.width&&r.y<=n.y+n.height&&n.y<=r.y+r.height;return a&&i&&(a=e(r,n)),!!a},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=s.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return r.viewToString(this)}})}();return h}),define(function(t,e,i){var r,n,a=t("hilo/view/Drawable"),o=t("hilo/util/browser"),s={_cacheDirty:!0,cache:function(t){(t||this._cacheDirty||!this.drawable)&&this.updateCache()},updateCache:function(){o.supportCanvas&&(r||(r=document.createElement("canvas"),n=r.getContext("2d")),r.width=this.width,r.height=this.height,this._draw(n),this.drawable=this.drawable||new a,this.drawable.init({image:r.toDataURL()}),this._cacheDirty=!1)},setCacheDirty:function(t){this._cacheDirty=t}};return s}),define(function(t,e,i){var r=t("hilo/core/Hilo"),n=t("hilo/core/Class"),a=t("hilo/view/View"),o=n.create({Extends:a,constructor:function(t){t=t||{},this.id=this.id||t.id||r.getUid("Container"),o.superclass.constructor.call(this,t),this.children?this._updateChildren():this.children=[]},children:null,pointerChildren:!0,clipChildren:!1,getNumChildren:function(){return this.children.length},addChildAt:function(t,e){var i=this.children,r=i.length,n=t.parent;e=e<0?0:e>r?r:e;var a=this.getChildIndex(t);if(a==e)return this;if(a>=0?(i.splice(a,1),e=e==r?r-1:e):n&&n.removeChild(t),i.splice(e,0,t),a<0)this._updateChildren(e);else{var o=a=e.length)return null;var i=e[t];if(i){if(!i.__renderer)for(var r=i;r=r.parent;){if(r.renderer){i.__renderer=r.renderer;break}if(r.__renderer){i.__renderer=r.__renderer;break}}i.__renderer&&i.__renderer.remove(i),i.parent=null,i.depth=-1}return e.splice(t,1),this._updateChildren(t),i},removeChild:function(t){return this.removeChildAt(this.getChildIndex(t))},removeChildById:function(t){for(var e,i=this.children,r=0,n=i.length;r=e.length?null:e[t]},getChildById:function(t){for(var e,i=this.children,r=0,n=i.length;r=0&&r!=e){var n=i.length;e=e<0?0:e>=n?n-1:e,i.splice(r,1),i.splice(e,0,t),this._updateChildren()}return this},swapChildren:function(t,e){var i=this.children,r=this.getChildIndex(t),n=this.getChildIndex(e);t.depth=n,i[n]=t,e.depth=r,i[r]=e},swapChildrenAt:function(t,e){var i=this.children,r=this.getChildAt(t),n=this.getChildAt(e);r.depth=e,i[e]=r,n.depth=t,i[t]=n},sortChildren:function(t){var e=t,i=this.children;if("string"==typeof e){var r=e;e=function(t,e){return e[r]-t[r]}}i.sort(e),this._updateChildren()},_updateChildren:function(t,e){var i,r=this.children;t=t||0,e=e||r.length;for(var n=t;n=0;l--)if(a=h[l],!(!a||!a.visible||a.alpha<=0||n&&!a.pointerEnabled))if(a.children&&a.children.length&&(!n||a.pointerChildren)&&(o=a.getViewAtPoint(t,e,i,r,n)),o){if(!r)return o;o.length&&(s=s.concat(o))}else if(a.hitTestPoint(t,e,i)){if(!r)return a;s.push(a)}return r&&s.length?s:null},render:function(t,e){o.superclass.render.call(this,t,e);var i,r,n,a=this.children.slice(0);for(i=0,r=a.length;ir?r:e,i[e]=t,t.name&&(this._frameNames[t.name]=t),(0!=e||this.width)&&this.height||(this.width=t.rect[2],this.height=t.rect[3]),this},getFrame:function(t){if("number"==typeof t){var e=this._frames;return t<0||t>=e.length?null:e[t]}return this._frameNames[t]},getFrameIndex:function(t){var e=this._frames,i=e.length,r=-1;if("number"==typeof t)r=t;else{var n="string"==typeof t?this._frameNames[t]:t;if(n)for(var a=0;a=i?i-1:r,this.paused=e,this._firstRender=!0,this},_render:function(t,e){var i,r=this.currentFrame;if(this._firstRender?(i=r,this._firstRender=!1):i=this._nextFrame(e),i!=r){this.currentFrame=i;var n=this._frames[i].callback;n&&n.call(this)}this.onEnterFrame&&this.onEnterFrame(i),this.drawable.init(this._frames[i]),s.superclass._render.call(this,t,e)},_nextFrame:function(t){var e=this._frames,i=e.length,r=this.currentFrame,n=e[r],a=n.duration||this.interval,o=this._frameElapsed,s=0!=r||this.drawable?o+(this.timeBased?t:1):0;return o=this._frameElapsed=s=i-1)&&this.stop(),this.paused||0!=o||(null!=n.next?r=this.getFrameIndex(n.next):r>=i-1?r=0:this.drawable&&r++),r},setFrameCallback:function(t,e){return t=this.getFrame(t),t&&(t.callback=e),this},onEnterFrame:null});return s}),define(function(t,e,i){var r=t("hilo/core/Hilo"),n=t("hilo/core/Class"),a=t("hilo/view/View"),o=t("hilo/view/Drawable"),s=n.create({Extends:a,constructor:function(t){t=t||{},this.id=this.id||t.id||r.getUid("DOMElement"),s.superclass.constructor.call(this,t),this.drawable=new o;var e=this.drawable.domElement=t.element||r.createElement("div");e.id=this.id,this.pointerEnabled&&!e.style.pointerEvents&&(e.style.pointerEvents="visible")},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||(t.transform(this),this.visible&&this.alpha>0&&this.render(t,e))},render:function(t,e){if("dom"!==t.renderType){var i=t.canvas,n=this.parent,a=t._domElementContainer;t._domElementContainer||(a=t._domElementContainer=r.createElement("div",{style:{position:"absolute",transform:"scale3d("+n.scaleX+","+n.scaleY+", 1)",transformOrigin:"0 0",zIndex:"1"}}),i.parentNode.insertBefore(t._domElementContainer,i.nextSibling));var o,s=this.drawable.domElement,h=this.depth,l=a.childNodes[0];if(s.parentNode)return;for(;l&&3!=l.nodeType&&(o=parseInt(l.style.zIndex)||0,!(o<=0||o>h));)l=l.nextSibling;a.insertBefore(this.drawable.domElement,l)}else t.draw(this)}});return s}),define(function(t,e,i){var r=t("hilo/core/Hilo"),n=t("hilo/core/Class"),a=t("hilo/view/View"),o=t("hilo/view/CacheMixin"),s=function(){var t=document.createElement("canvas"),e=t.getContext&&t.getContext("2d");return n.create({Extends:a,Mixes:o,constructor:function(t){t=t||{},this.id=this.id||t.id||r.getUid("Graphics"),s.superclass.constructor.call(this,t),this._actions=[]},lineWidth:1,lineAlpha:1,lineCap:null,lineJoin:null,miterLimit:10,hasStroke:!1,strokeStyle:"0",hasFill:!1,fillStyle:"0",fillAlpha:0,lineStyle:function(t,e,i,r,n,a){var o=this,s=o._addAction;return s.call(o,["lineWidth",o.lineWidth=t||1]),s.call(o,["strokeStyle",o.strokeStyle=e||"0"]),s.call(o,["lineAlpha",o.lineAlpha=i||1]),void 0!=r&&s.call(o,["lineCap",o.lineCap=r]),void 0!=n&&s.call(o,["lineJoin",o.lineJoin=n]),void 0!=a&&s.call(o,["miterLimit",o.miterLimit=a]),o.hasStroke=!0,o},beginFill:function(t,e){var i=this,r=i._addAction;return r.call(i,["fillStyle",i.fillStyle=t]),r.call(i,["fillAlpha",i.fillAlpha=e||1]),i.hasFill=!0,i},endFill:function(){var t=this,e=t._addAction;return t.hasStroke&&e.call(t,["stroke"]),t.hasFill&&e.call(t,["fill"]),t.setCacheDirty(!0),t},beginLinearGradientFill:function(t,i,r,n,a,o){for(var s=this,h=e.createLinearGradient(t,i,r,n),l=0,c=a.length;l1?a.slice(1):null;"function"==typeof t[o]?t[o].apply(t,s):t[o]=a[1]}},render:function(t,e){var i=this;"canvas"===t.renderType?i._draw(t.context):(i.cache(),t.draw(i))},clear:function(){var t=this;return t._actions.length=0,t.lineWidth=1,t.lineAlpha=1,t.lineCap=null,t.lineJoin=null,t.miterLimit=10,t.hasStroke=!1,t.strokeStyle="0",t.hasFill=!1,t.fillStyle="0",t.fillAlpha=1,t.setCacheDirty(!0),t},_addAction:function(t){var e=this;return e._actions.push(t),e}})}();return s}),define(function(t,e,i){var r=t("hilo/core/Class"),n=t("hilo/core/Hilo"),a=t("hilo/view/View"),o=t("hilo/view/CacheMixin"),s=r.create({Extends:a,Mixes:o,constructor:function(t){t=t||{},this.id=this.id||t.id||n.getUid("Text"),s.superclass.constructor.call(this,t),t.font||(this.font="12px arial"),this._fontHeight=s.measureFontHeight(this.font)},text:null,color:"#000",textAlign:null,textVAlign:null,outline:!1,lineSpacing:0,maxWidth:200,font:null,textWidth:0,textHeight:0,setFont:function(t){var e=this;return e.font!==t&&(e.font=t,e._fontHeight=s.measureFontHeight(t)),e},render:function(t,e){var i=this;if("canvas"===t.renderType)this.drawable?t.draw(i):i._draw(t.context);else if("dom"===t.renderType){var r=i.drawable,n=r.domElement,a=n.style;a.font=i.font,a.textAlign=i.textAlign,a.color=i.color,a.width=i.width+"px",a.height=i.height+"px",a.lineHeight=i._fontHeight+i.lineSpacing+"px",n.innerHTML=i.text,t.draw(this)}else i.cache(),t.draw(i)},_draw:function(t){var e=this,i=e.text.toString();if(i){t.font=e.font,t.textAlign=e.textAlign,t.textBaseline="top";var r,n,a,o,s,h=i.split(/\r\n|\r|\n|/),l=0,c=0,u=e._fontHeight+e.lineSpacing,d=[];for(r=0,o=h.length;re.maxWidth?(d.push({text:m,y:c}),l>1;break;case"bottom":_=e.height-e.textHeight}var x=e.background;for(x&&(t.fillStyle=x,t.fillRect(0,0,e.width,e.height)),e.outline?t.strokeStyle=e.color:t.fillStyle=e.color,r=0;r>1;break;case"right":case"end":n=a}r.outline?t.strokeText(e,n,i):t.fillText(e,n,i)},Statics:{measureFontHeight:function(t){var e,i=document.documentElement,r=n.createElement("div",{style:{font:t,position:"absolute"},innerHTML:"M"});return i.appendChild(r),e=r.offsetHeight,i.removeChild(r),e}}});return s}),define(function(t,e,i){var r=t("hilo/core/Class"),n=t("hilo/core/Hilo"),a=t("hilo/view/Container"),o=t("hilo/view/Bitmap"),s=r.create({Extends:a,constructor:function(t){t=t||{},this.id=this.id||t.id||n.getUid("BitmapText"),s.superclass.constructor.call(this,t);var e=t.text+"";e&&(this.text="",this.setText(e)),this.pointerChildren=!1},glyphs:null,letterSpacing:0,text:"",textAlign:"left",setText:function(t){var e=this,i=t.toString(),r=i.length;if(e.text!=i){e.text=i;var n,a,o,s,h=0,l=0,c=0;for(n=0;n0?e.letterSpacing:0),e.children[n]?(s=e.children[n],s.setImage(o.image,o.rect)):(s=e._createBitmap(o),e.addChild(s)),s.x=c,h=c+o.rect[2],l=Math.max(l,o.rect[3]));for(n=e.children.length-1;n>=r;n--)e._releaseBitmap(e.children[n]),e.children[n].removeFromParent();return e.width=h,e.height=l,this.setTextAlign(),e}},_createBitmap:function(t){var e;return s._pool.length?(e=s._pool.pop(),e.setImage(t.image,t.rect)):e=new o({image:t.image,rect:t.rect}),e},_releaseBitmap:function(t){s._pool.push(t)},setTextAlign:function(t){switch(this.textAlign=t||this.textAlign,this.textAlign){case"center":this.pivotX=.5*this.width;break;case"right":this.pivotX=this.width;break;case"left":default:this.pivotX=0}return this},hasGlyphs:function(t){var e=this.glyphs;if(!e)return!1;t=t.toString();var i,r=t.length;for(i=0;i=this._targetFPS?(this._measuredFPS=1e3/(this._tickTime/this._tickCount)+.5>>0,this._tickCount=0,this._tickTime=0):this._tickTime+=t-this._lastTime,this._lastTime=t;for(var r=i.slice(0),n=0,a=r.length;n=0&&e.splice(i,1)},nextTick:function(t){var e=this,i={tick:function(r){e.removeTick(i),t()}};return e.addTick(i),i},timeout:function(t,e){var i=this,r=(new Date).getTime()+e,n={tick:function(){var e=(new Date).getTime(),a=e-r;a>=0&&(i.removeTick(n),t())}};return i.addTick(n),n},interval:function(t,e){var i=this,r=(new Date).getTime()+e,n={tick:function(){var i=(new Date).getTime(),n=i-r;n>=0&&(n=r)return-1;for(e<0&&(e=r+e),i=e;i=1?1:s;var l=r.ease?r.ease(s):s;r.reverse&&(r._reverseFlag<0&&(s=1-s,l=1-l),s<1e-7&&(r.repeat>0&&r._repeatCount++>=r.repeat||0==r.repeat&&!r.loop?h=!0:(r._startTime=t(),r._pausedTime=0,r._reverseFlag*=-1))),r.isStart||(r.setProps(r._fromProps,r._toProps),r.isStart=!0,r.onStart&&r.onStart.call(r,r)),r.time=a,r._render(l),(o=r.onUpdate)&&o.call(r,s,r),s>=1&&(r.reverse?(r._startTime=t(),r._pausedTime=0,r._reverseFlag*=-1):r.loop||r.repeat>0&&r._repeatCount++0&&u<=e?(c._render(s),c.time=a,n.add(c)):h&&(u<0||u>e)&&c.start()}return h?((o=r.onComplete)&&o.call(r,r),!0):void 0}}},Statics:{_tweens:[],tick:function(){var e,i,r=n._tweens,a=r.length;for(i=0;i-1&&r.splice(e,1);else for(e=0;e=i)return void t.fire("complete");if(t._currentIndexe.z})},tick:function(){this.sortZ()}});return o}();return a}),define(function(t,e,i){var r=t("hilo/core/Hilo"),n=t("hilo/core/Class"),a=t("hilo/view/View"),o=t("hilo/view/Container"),s=t("hilo/view/Drawable"),h=t("hilo/util/util"),l=function(){function t(t,e){return e?t+2*(Math.random()-.5)*e:t}for(var e=["x","y","vx","vy","ax","ay","rotation","rotationV","scale","scaleV","alpha","alphaV","life"],i=[],l=0,c=e.length;l=this._emitTime&&(this._currentRunTime=0,this._emitTime=t(this.emitTime,this.emitTimeVar),this._emit()),this._totalRunTime>=this.totalTime&&this.stop())},_emit:function(){for(var e=t(this.emitNum,this.emitNumVar)>>0,i=0;i=0;e--)this.children[e].destroy()}}),v=n.create({Extends:a,constructor:function(t){this.id=this.id||t.id||r.getUid("Particle"),v.superclass.constructor.call(this,t),this.init(t)},onUpdate:function(t){if(t*=.001,this._died)return!1;var e=this.ax+this.system.gx,i=this.ay+this.system.gy;return this.vx+=e*t,this.vy+=i*t,this.x+=this.vx*t,this.y+=this.vy*t,this.rotation+=this.rotationV,this._time>.1&&(this.alpha+=this.alphaV),this.scale+=this.scaleV,this.scaleX=this.scaleY=this.scale,this._time+=t,this._time>=this.life||this.alpha<=0?(this.destroy(),!1):void 0},setImage:function(t,e){this.drawable=this.drawable||new s,e=e||[0,0,t.width,t.height],this.width=e[2],this.height=e[3],this.drawable.rect=e,this.drawable.image=t},destroy:function(){this._died=!0,this.alpha=0,this.removeFromParent(),f.push(this)},init:function(e){this.system=e.system,this._died=!1,this._time=0,this.alpha=1;for(var r=0,n=i.length;r>0]),this.setImage(e.image,s),void 0!==e.pivotX&&(this.pivotX=e.pivotX*s[2]),void 0!==e.pivotY&&(this.pivotY=e.pivotY*s[3])}},Statics:{create:function(t){if(f.length>0){var e=f.pop();return e.init(t),e}return new v(t)}}});return p}();return l}); \ No newline at end of file diff --git a/build/cmd/hilo-cmd.zip b/build/cmd/hilo-cmd.zip index f889ba9ad261cc938a4bae99efcc494ee39df3f5..50476d7cbe7ae2153ea107cc10b6966c67742248 100644 GIT binary patch delta 177240 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 L(pf(^m?8fM@q9Mi delta 176019 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�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 z +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 diff --git a/build/cmd/hilo/core/Class.js b/build/cmd/hilo/core/Class.js index 1b3d7fa2..458c0f15 100644 --- a/build/cmd/hilo/core/Class.js +++ b/build/cmd/hilo/core/Class.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/core/Class.min.js b/build/cmd/hilo/core/Class.min.js index 71672dc8..19398aee 100644 --- a/build/cmd/hilo/core/Class.min.js +++ b/build/cmd/hilo/core/Class.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/core/Hilo.js b/build/cmd/hilo/core/Hilo.js index a271db7e..4b72184a 100644 --- a/build/cmd/hilo/core/Hilo.js +++ b/build/cmd/hilo/core/Hilo.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -30,7 +30,7 @@ var Hilo = { * Hilo version * @type String */ - version: '1.1.11', + version: '1.2.0', /** * @language=en * Gets a globally unique id. Such as Stage1, Bitmap2 etc. @@ -234,12 +234,23 @@ var Hilo = { if (this.cacheStateIfChanged(obj, ['depth'], stateCache)) { style.zIndex = obj.depth + 1; } - if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { - style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + if (obj.transform){ + var transform = obj.transform; + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = '0 0'; + } + style[prefix + 'Transform'] = 'matrix3d(' + transform.a + ', '+ transform.b + ', 0, 0, '+ transform.c + ', '+ transform.d + ', 0, 0, 0, 0, 1, 0, '+ transform.tx + ', '+ transform.ty + ', 0, 1)'; } - if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { - style[prefix + 'Transform'] = this.getTransformCSS(obj); + else{ + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + } + + if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { + style[prefix + 'Transform'] = this.getTransformCSS(obj); + } } + if (this.cacheStateIfChanged(obj, ['background'], stateCache)) { style.backgroundColor = obj.background; } diff --git a/build/cmd/hilo/core/Hilo.min.js b/build/cmd/hilo/core/Hilo.min.js index 241c0d0a..f10a5a85 100644 --- a/build/cmd/hilo/core/Hilo.min.js +++ b/build/cmd/hilo/core/Hilo.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ -define(function(e,t,a){var o=e("hilo/util/browser"),n=e("hilo/util/util"),r=window,i=document,s=i.documentElement,c=0,h={},d={version:"1.1.11",getUid:function(e){var t=++c;if(e){var a=e.charCodeAt(e.length-1);return a>=48&&a<=57&&(e+="_"),e+t}return t},viewToString:function(e){for(var t,a=e;a;)t=t?a.id+"."+t:a.id,a=a.parent;return t},copy:function(e,t,a){return n.copy(e,t,a),h.copy||(h.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),e},browser:o,event:{POINTER_START:o.POINTER_START,POINTER_MOVE:o.POINTER_MOVE,POINTER_END:o.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(e){var t;try{t=e.getBoundingClientRect()}catch(a){t={top:e.offsetTop,left:e.offsetLeft,right:e.offsetLeft+e.offsetWidth,bottom:e.offsetTop+e.offsetHeight}}var o=(r.pageXOffset||s.scrollLeft)-(s.clientLeft||0)||0,n=(r.pageYOffset||s.scrollTop)-(s.clientTop||0)||0,i=r.getComputedStyle?getComputedStyle(e):e.currentStyle,c=parseInt,h=c(i.paddingLeft)+c(i.borderLeftWidth)||0,d=c(i.paddingTop)+c(i.borderTopWidth)||0,f=c(i.paddingRight)+c(i.borderRightWidth)||0,l=c(i.paddingBottom)+c(i.borderBottomWidth)||0,g=t.top||0,p=t.left||0,T=t.right||0,m=t.bottom||0;return{left:p+o+h,top:g+n+d,width:T-f-p-h,height:m-l-g-d}},createElement:function(e,t){var a,o,n,r=i.createElement(e);for(a in t)if(o=t[a],"style"===a)for(n in o)r.style[n]=o[n];else r[a]=o;return r},getElement:function(e){return i.getElementById(e)},setElementStyleByView:function(e){var t=e.drawable,a=t.domElement.style,o=e._stateCache||(e._stateCache={}),n=d.browser.jsVendor,r="px",i=!1;if(this.cacheStateIfChanged(e,["visible"],o)&&(a.display=e.visible?"":"none"),this.cacheStateIfChanged(e,["alpha"],o)&&(a.opacity=e.alpha),e.visible&&!(e.alpha<=0)){this.cacheStateIfChanged(e,["width"],o)&&(a.width=e.width+r),this.cacheStateIfChanged(e,["height"],o)&&(a.height=e.height+r),this.cacheStateIfChanged(e,["depth"],o)&&(a.zIndex=e.depth+1),(i=this.cacheStateIfChanged(e,["pivotX","pivotY"],o))&&(a[n+"TransformOrigin"]=e.pivotX+r+" "+e.pivotY+r),(this.cacheStateIfChanged(e,["x","y","rotation","scaleX","scaleY"],o)||i)&&(a[n+"Transform"]=this.getTransformCSS(e)),this.cacheStateIfChanged(e,["background"],o)&&(a.backgroundColor=e.background),a.pointerEvents||(a.pointerEvents="none");var s=t.image;if(s){var c=s.src;c!==o.image&&(o.image=c,a.backgroundImage="url("+c+")");var h=t.rect;if(h){var f=h[0],l=h[1];f!==o.sx&&(o.sx=f,a.backgroundPositionX=-f+r),l!==o.sy&&(o.sy=l,a.backgroundPositionY=-l+r)}}var g=e.mask;if(g){var p=g.drawable.domElement.style.backgroundImage;p!==o.maskImage&&(o.maskImage=p,a[n+"MaskImage"]=p,a[n+"MaskRepeat"]="no-repeat");var T=g.x,m=g.y;T===o.maskX&&m===o.maskY||(o.maskX=T,o.maskY=m,a[n+"MaskPosition"]=T+r+" "+m+r)}}},cacheStateIfChanged:function(e,t,a){var o,n,r,i,s=!1;for(o=0,n=t.length;o=48&&a<=57&&(t+="_"),t+e}return e},viewToString:function(t){for(var e,a=t;a;)e=e?a.id+"."+e:a.id,a=a.parent;return e},copy:function(t,e,a){return o.copy(t,e,a),h.copy||(h.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),t},browser:r,event:{POINTER_START:r.POINTER_START,POINTER_MOVE:r.POINTER_MOVE,POINTER_END:r.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(t){var e;try{e=t.getBoundingClientRect()}catch(a){e={top:t.offsetTop,left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,bottom:t.offsetTop+t.offsetHeight}}var r=(n.pageXOffset||s.scrollLeft)-(s.clientLeft||0)||0,o=(n.pageYOffset||s.scrollTop)-(s.clientTop||0)||0,i=n.getComputedStyle?getComputedStyle(t):t.currentStyle,c=parseInt,h=c(i.paddingLeft)+c(i.borderLeftWidth)||0,f=c(i.paddingTop)+c(i.borderTopWidth)||0,d=c(i.paddingRight)+c(i.borderRightWidth)||0,l=c(i.paddingBottom)+c(i.borderBottomWidth)||0,g=e.top||0,p=e.left||0,m=e.right||0,T=e.bottom||0;return{left:p+r+h,top:g+o+f,width:m-d-p-h,height:T-l-g-f}},createElement:function(t,e){var a,r,o,n=i.createElement(t);for(a in e)if(r=e[a],"style"===a)for(o in r)n.style[o]=r[o];else n[a]=r;return n},getElement:function(t){return i.getElementById(t)},setElementStyleByView:function(t){var e=t.drawable,a=e.domElement.style,r=t._stateCache||(t._stateCache={}),o=f.browser.jsVendor,n="px",i=!1;if(this.cacheStateIfChanged(t,["visible"],r)&&(a.display=t.visible?"":"none"),this.cacheStateIfChanged(t,["alpha"],r)&&(a.opacity=t.alpha),t.visible&&!(t.alpha<=0)){if(this.cacheStateIfChanged(t,["width"],r)&&(a.width=t.width+n),this.cacheStateIfChanged(t,["height"],r)&&(a.height=t.height+n),this.cacheStateIfChanged(t,["depth"],r)&&(a.zIndex=t.depth+1),t.transform){var s=t.transform;(i=this.cacheStateIfChanged(t,["pivotX","pivotY"],r))&&(a[o+"TransformOrigin"]="0 0"),a[o+"Transform"]="matrix3d("+s.a+", "+s.b+", 0, 0, "+s.c+", "+s.d+", 0, 0, 0, 0, 1, 0, "+s.tx+", "+s.ty+", 0, 1)"}else(i=this.cacheStateIfChanged(t,["pivotX","pivotY"],r))&&(a[o+"TransformOrigin"]=t.pivotX+n+" "+t.pivotY+n),(this.cacheStateIfChanged(t,["x","y","rotation","scaleX","scaleY"],r)||i)&&(a[o+"Transform"]=this.getTransformCSS(t));this.cacheStateIfChanged(t,["background"],r)&&(a.backgroundColor=t.background),a.pointerEvents||(a.pointerEvents="none");var c=e.image;if(c){var h=c.src;h!==r.image&&(r.image=h,a.backgroundImage="url("+h+")");var d=e.rect;if(d){var l=d[0],g=d[1];l!==r.sx&&(r.sx=l,a.backgroundPositionX=-l+n),g!==r.sy&&(r.sy=g,a.backgroundPositionY=-g+n)}}var p=t.mask;if(p){var m=p.drawable.domElement.style.backgroundImage;m!==r.maskImage&&(r.maskImage=m,a[o+"MaskImage"]=m,a[o+"MaskRepeat"]="no-repeat");var T=p.x,u=p.y;T===r.maskX&&u===r.maskY||(r.maskX=T,r.maskY=u,a[o+"MaskPosition"]=T+n+" "+u+n)}}},cacheStateIfChanged:function(t,e,a){var r,o,n,i,s=!1;for(r=0,o=e.length;r=6?(i=a[0],s=a[1],h=a[2],n=a[3],r=a[4],c=a[5]):(i=t.a,s=t.b,h=t.c,n=t.d,r=t.tx,c=t.ty),this.a=e*i+o*h,this.b=e*s+o*n,this.c=u*i+y*h,this.d=u*s+y*n,this.tx=x*i+d*h+r,this.ty=x*s+d*n+c,this},rotate:function(t){var i=Math.sin(t),s=Math.cos(t),h=this.a,n=this.b,r=this.c,c=this.d,a=this.tx,e=this.ty;return this.a=h*s-n*i,this.b=h*i+n*s,this.c=r*s-c*i,this.d=r*i+c*s,this.tx=a*s-e*i,this.ty=a*i+e*s,this},scale:function(t,i){return this.a*=t,this.d*=i,this.c*=t,this.b*=i,this.tx*=t,this.ty*=i,this},translate:function(t,i){return this.tx+=t,this.ty+=i,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,i=this.b,s=this.c,h=this.d,n=this.tx,r=t*h-i*s;return this.a=h/r,this.b=-i/r,this.c=-s/r,this.d=t/r,this.tx=(s*this.ty-h*n)/r,this.ty=-(t*this.ty-i*n)/r,this},transformPoint:function(t,i,s){var h=t.x*this.a+t.y*this.c+this.tx,n=t.x*this.b+t.y*this.d+this.ty;return i&&(h=h+.5>>0,n=n+.5>>0),s?{x:h,y:n}:(t.x=h,t.y=n,t)}});return n}); \ No newline at end of file +define(function(t,i,s){var h=t("hilo/core/Class"),n=h.create({constructor:function(t,i,s,h,n,c){this.a=t,this.b=i,this.c=s,this.d=h,this.tx=n,this.ty=c},set:function(t,i,s,h,n,c){return this.a=t,this.b=i,this.c=s,this.d=h,this.tx=n,this.ty=c,this},copy:function(t){return this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.tx=t.tx,this.ty=t.ty,this},clone:function(){return(new n).copy(this)},concat:function(t){var i,s,h,n,c,r,a=arguments,e=this.a,o=this.b,u=this.c,y=this.d,x=this.tx,d=this.ty;return a.length>=6?(i=a[0],s=a[1],h=a[2],n=a[3],c=a[4],r=a[5]):(i=t.a,s=t.b,h=t.c,n=t.d,c=t.tx,r=t.ty),this.a=e*i+o*h,this.b=e*s+o*n,this.c=u*i+y*h,this.d=u*s+y*n,this.tx=x*i+d*h+c,this.ty=x*s+d*n+r,this},rotate:function(t){var i=Math.sin(t),s=Math.cos(t),h=this.a,n=this.b,c=this.c,r=this.d,a=this.tx,e=this.ty;return this.a=h*s-n*i,this.b=h*i+n*s,this.c=c*s-r*i,this.d=c*i+r*s,this.tx=a*s-e*i,this.ty=a*i+e*s,this},scale:function(t,i){return this.a*=t,this.d*=i,this.c*=t,this.b*=i,this.tx*=t,this.ty*=i,this},translate:function(t,i){return this.tx+=t,this.ty+=i,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,i=this.b,s=this.c,h=this.d,n=this.tx,c=t*h-i*s;return this.a=h/c,this.b=-i/c,this.c=-s/c,this.d=t/c,this.tx=(s*this.ty-h*n)/c,this.ty=-(t*this.ty-i*n)/c,this},transformPoint:function(t,i,s){var h=t.x*this.a+t.y*this.c+this.tx,n=t.x*this.b+t.y*this.d+this.ty;return i&&(h=h+.5>>0,n=n+.5>>0),s?{x:h,y:n}:(t.x=h,t.y=n,t)}});return n}); \ No newline at end of file diff --git a/build/cmd/hilo/loader/ImageLoader.js b/build/cmd/hilo/loader/ImageLoader.js index 1b5098e7..8ce8d89d 100644 --- a/build/cmd/hilo/loader/ImageLoader.js +++ b/build/cmd/hilo/loader/ImageLoader.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/loader/ImageLoader.min.js b/build/cmd/hilo/loader/ImageLoader.min.js index 00772b01..e15a2efd 100644 --- a/build/cmd/hilo/loader/ImageLoader.min.js +++ b/build/cmd/hilo/loader/ImageLoader.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/loader/LoadQueue.js b/build/cmd/hilo/loader/LoadQueue.js index 1e27e0f4..71656759 100644 --- a/build/cmd/hilo/loader/LoadQueue.js +++ b/build/cmd/hilo/loader/LoadQueue.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -54,6 +54,7 @@ var LoadQueue = Class.create(/** @lends LoadQueue.prototype */{ *
  • loader - specified resource loader. If you specify this,we abandon choosing loader inside
  • *
  • noCache - a tag that set on or off to prevent cache,implemented by adding timestamp inside
  • *
  • size - predicted resource size, help calculating loading progress
  • + *
  • crossOrigin - Whether cross-domain is needed. eg:crossOrigin='anonymous'
  • * * @returns {LoadQueue} 下载队列实例本身。 */ diff --git a/build/cmd/hilo/loader/LoadQueue.min.js b/build/cmd/hilo/loader/LoadQueue.min.js index 9807b643..c4c47445 100644 --- a/build/cmd/hilo/loader/LoadQueue.min.js +++ b/build/cmd/hilo/loader/LoadQueue.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/loader/ScriptLoader.js b/build/cmd/hilo/loader/ScriptLoader.js index 9687cd4f..e732b516 100644 --- a/build/cmd/hilo/loader/ScriptLoader.js +++ b/build/cmd/hilo/loader/ScriptLoader.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/loader/ScriptLoader.min.js b/build/cmd/hilo/loader/ScriptLoader.min.js index eeb1baef..9eb6462d 100644 --- a/build/cmd/hilo/loader/ScriptLoader.min.js +++ b/build/cmd/hilo/loader/ScriptLoader.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/media/HTMLAudio.js b/build/cmd/hilo/media/HTMLAudio.js index 9f4a8239..27c91a13 100644 --- a/build/cmd/hilo/media/HTMLAudio.js +++ b/build/cmd/hilo/media/HTMLAudio.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/media/HTMLAudio.min.js b/build/cmd/hilo/media/HTMLAudio.min.js index 321e2e32..b90e7270 100644 --- a/build/cmd/hilo/media/HTMLAudio.min.js +++ b/build/cmd/hilo/media/HTMLAudio.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/media/WebAudio.js b/build/cmd/hilo/media/WebAudio.js index 8f7c46f3..d57847e3 100644 --- a/build/cmd/hilo/media/WebAudio.js +++ b/build/cmd/hilo/media/WebAudio.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/media/WebAudio.min.js b/build/cmd/hilo/media/WebAudio.min.js index a0dffa4c..20e87f32 100644 --- a/build/cmd/hilo/media/WebAudio.min.js +++ b/build/cmd/hilo/media/WebAudio.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/media/WebSound.js b/build/cmd/hilo/media/WebSound.js index ea1fd247..159d0674 100644 --- a/build/cmd/hilo/media/WebSound.js +++ b/build/cmd/hilo/media/WebSound.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/media/WebSound.min.js b/build/cmd/hilo/media/WebSound.min.js index 9b0d36f4..8aff3e51 100644 --- a/build/cmd/hilo/media/WebSound.min.js +++ b/build/cmd/hilo/media/WebSound.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/renderer/CanvasRenderer.js b/build/cmd/hilo/renderer/CanvasRenderer.js index f0411738..aa8bb297 100644 --- a/build/cmd/hilo/renderer/CanvasRenderer.js +++ b/build/cmd/hilo/renderer/CanvasRenderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -22,26 +22,26 @@ var Renderer = require('hilo/renderer/Renderer'); * @requires hilo/renderer/Renderer * @property {CanvasRenderingContext2D} context The context of the canvas element, readonly. */ -var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ +var CanvasRenderer = Class.create( /** @lends CanvasRenderer.prototype */ { Extends: Renderer, - constructor: function(properties){ + constructor: function(properties) { CanvasRenderer.superclass.constructor.call(this, properties); this.context = this.canvas.getContext("2d"); }, - renderType:'canvas', + renderType: 'canvas', context: null, /** * @private * @see Renderer#startDraw */ - startDraw: function(target){ - if(target.visible && target.alpha > 0){ - if(target === this.stage){ + startDraw: function(target) { + if (target.visible && target.alpha > 0) { + if (target === this.stage) { this.context.clearRect(0, 0, target.width, target.height); } - if(target.blendMode !== this.blendMode){ + if (target.blendMode !== this.blendMode) { this.context.globalCompositeOperation = this.blendMode = target.blendMode; } this.context.save(); @@ -54,31 +54,38 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#draw */ - draw: function(target){ - var ctx = this.context, w = target.width, h = target.height; + draw: function(target) { + var ctx = this.context, + w = target.width, + h = target.height; //draw background var bg = target.background; - if(bg){ + if (bg) { ctx.fillStyle = bg; ctx.fillRect(0, 0, w, h); } //draw image - var drawable = target.drawable, image = drawable && drawable.image; - if(image){ - var rect = drawable.rect, sw = rect[2], sh = rect[3], offsetX = rect[4], offsetY = rect[5]; + var drawable = target.drawable, + image = drawable && drawable.image; + if (image) { + var rect = drawable.rect, + sw = rect[2], + sh = rect[3], + offsetX = rect[4], + offsetY = rect[5]; //ie9+浏览器宽高为0时会报错 fixed ie9 bug. - if(!sw || !sh){ + if (!sw || !sh) { return; } - if(!w && !h){ + if (!w && !h) { //fix width/height TODO: how to get rid of this? w = target.width = sw; h = target.height = sh; } //the pivot is the center of frame if has offset, otherwise is (0, 0) - if(offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); + if (offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); ctx.drawImage(image, rect[0], rect[1], sw, sh, 0, 0, w, h); } }, @@ -87,7 +94,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#endDraw */ - endDraw: function(target){ + endDraw: function(target) { this.context.restore(); }, @@ -95,9 +102,9 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#transform */ - transform: function(target){ + transform: function(target) { var drawable = target.drawable; - if(drawable && drawable.domElement){ + if (drawable && drawable.domElement) { Hilo.setElementStyleByView(target); return; } @@ -106,66 +113,72 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ scaleX = target.scaleX, scaleY = target.scaleY; - if(target === this.stage){ + if (target === this.stage) { var style = this.canvas.style, oldScaleX = target._scaleX, oldScaleY = target._scaleY, isStyleChange = false; - if((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)){ + if ((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)) { target._scaleX = scaleX; style.width = scaleX * target.width + "px"; isStyleChange = true; } - if((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)){ + if ((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)) { target._scaleY = scaleY; style.height = scaleY * target.height + "px"; isStyleChange = true; } - if(isStyleChange){ + if (isStyleChange) { target.updateViewport(); } - }else{ + } else { var x = target.x, y = target.y, pivotX = target.pivotX, pivotY = target.pivotY, rotation = target.rotation % 360, + transform = target.transform, mask = target.mask; - if(mask){ + if (mask) { mask._render(this); ctx.clip(); } //alignment var align = target.align; - if(align){ + if (align) { var pos = target.getAlignPosition(); x = pos.x; y = pos.y; } + + if (transform) { + ctx.transform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); + } else { + if (x != 0 || y != 0) ctx.translate(x, y); + if (rotation != 0) ctx.rotate(rotation * Math.PI / 180); + if (scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); + if (pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); + } - if(x != 0 || y != 0) ctx.translate(x, y); - if(rotation != 0) ctx.rotate(rotation * Math.PI / 180); - if(scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); - if(pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); } - if(target.alpha > 0) ctx.globalAlpha *= target.alpha; + if (target.alpha > 0) ctx.globalAlpha *= target.alpha; }, /** * @private * @see Renderer#remove */ - remove: function(target){ + remove: function(target) { var drawable = target.drawable; var elem = drawable && drawable.domElement; - if(elem){ + if (elem) { var parentElem = elem.parentNode; - if(parentElem){ + if (parentElem) { parentElem.removeChild(elem); } } @@ -175,7 +188,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#clear */ - clear: function(x, y, width, height){ + clear: function(x, y, width, height) { this.context.clearRect(x, y, width, height); }, @@ -183,7 +196,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#resize */ - resize: function(width, height){ + resize: function(width, height) { var canvas = this.canvas; var stage = this.stage; var style = canvas.style; diff --git a/build/cmd/hilo/renderer/CanvasRenderer.min.js b/build/cmd/hilo/renderer/CanvasRenderer.min.js index dd92831d..dc5b03e3 100644 --- a/build/cmd/hilo/renderer/CanvasRenderer.min.js +++ b/build/cmd/hilo/renderer/CanvasRenderer.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ -define(function(t,e,a){var i=t("hilo/core/Class"),r=t("hilo/core/Hilo"),n=t("hilo/renderer/Renderer"),s=i.create({Extends:n,constructor:function(t){s.superclass.constructor.call(this,t),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(t){return!!(t.visible&&t.alpha>0)&&(t===this.stage&&this.context.clearRect(0,0,t.width,t.height),t.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=t.blendMode),this.context.save(),!0)},draw:function(t){var e=this.context,a=t.width,i=t.height,r=t.background;r&&(e.fillStyle=r,e.fillRect(0,0,a,i));var n=t.drawable,s=n&&n.image;if(s){var l=n.rect,o=l[2],h=l[3],c=l[4],d=l[5];if(!o||!h)return;a||i||(a=t.width=o,i=t.height=h),(c||d)&&e.translate(c-.5*o,d-.5*h),e.drawImage(s,l[0],l[1],o,h,0,0,a,i)}},endDraw:function(t){this.context.restore()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void r.setElementStyleByView(t);var a=this.context,i=t.scaleX,n=t.scaleY;if(t===this.stage){var s=this.canvas.style,l=t._scaleX,o=t._scaleY,h=!1;(!l&&1!=i||l&&l!=i)&&(t._scaleX=i,s.width=i*t.width+"px",h=!0),(!o&&1!=n||o&&o!=n)&&(t._scaleY=n,s.height=n*t.height+"px",h=!0),h&&t.updateViewport()}else{var c=t.x,d=t.y,v=t.pivotX,g=t.pivotY,f=t.rotation%360,u=t.mask;u&&(u._render(this),a.clip());var p=t.align;if(p){var w=t.getAlignPosition();c=w.x,d=w.y}0==c&&0==d||a.translate(c,d),0!=f&&a.rotate(f*Math.PI/180),1==i&&1==n||a.scale(i,n),0==v&&0==g||a.translate(-v,-g)}t.alpha>0&&(a.globalAlpha*=t.alpha)},remove:function(t){var e=t.drawable,a=e&&e.domElement;if(a){var i=a.parentNode;i&&i.removeChild(a)}},clear:function(t,e,a,i){this.context.clearRect(t,e,a,i)},resize:function(t,e){var a=this.canvas,i=this.stage,r=a.style;a.width=t,a.height=e,r.width=i.width*i.scaleX+"px",r.height=i.height*i.scaleY+"px"}});return s}); \ No newline at end of file +define(function(t,e,a){var i=t("hilo/core/Class"),r=t("hilo/core/Hilo"),n=t("hilo/renderer/Renderer"),s=i.create({Extends:n,constructor:function(t){s.superclass.constructor.call(this,t),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(t){return!!(t.visible&&t.alpha>0)&&(t===this.stage&&this.context.clearRect(0,0,t.width,t.height),t.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=t.blendMode),this.context.save(),!0)},draw:function(t){var e=this.context,a=t.width,i=t.height,r=t.background;r&&(e.fillStyle=r,e.fillRect(0,0,a,i));var n=t.drawable,s=n&&n.image;if(s){var l=n.rect,o=l[2],h=l[3],c=l[4],d=l[5];if(!o||!h)return;a||i||(a=t.width=o,i=t.height=h),(c||d)&&e.translate(c-.5*o,d-.5*h),e.drawImage(s,l[0],l[1],o,h,0,0,a,i)}},endDraw:function(t){this.context.restore()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void r.setElementStyleByView(t);var a=this.context,i=t.scaleX,n=t.scaleY;if(t===this.stage){var s=this.canvas.style,l=t._scaleX,o=t._scaleY,h=!1;(!l&&1!=i||l&&l!=i)&&(t._scaleX=i,s.width=i*t.width+"px",h=!0),(!o&&1!=n||o&&o!=n)&&(t._scaleY=n,s.height=n*t.height+"px",h=!0),h&&t.updateViewport()}else{var c=t.x,d=t.y,v=t.pivotX,f=t.pivotY,g=t.rotation%360,u=t.transform,p=t.mask;p&&(p._render(this),a.clip());var x=t.align;if(x){var w=t.getAlignPosition();c=w.x,d=w.y}u?a.transform(u.a,u.b,u.c,u.d,u.tx,u.ty):(0==c&&0==d||a.translate(c,d),0!=g&&a.rotate(g*Math.PI/180),1==i&&1==n||a.scale(i,n),0==v&&0==f||a.translate(-v,-f))}t.alpha>0&&(a.globalAlpha*=t.alpha)},remove:function(t){var e=t.drawable,a=e&&e.domElement;if(a){var i=a.parentNode;i&&i.removeChild(a)}},clear:function(t,e,a,i){this.context.clearRect(t,e,a,i)},resize:function(t,e){var a=this.canvas,i=this.stage,r=a.style;a.width=t,a.height=e,r.width=i.width*i.scaleX+"px",r.height=i.height*i.scaleY+"px"}});return s}); \ No newline at end of file diff --git a/build/cmd/hilo/renderer/DOMRenderer.js b/build/cmd/hilo/renderer/DOMRenderer.js index f21c9301..ad6c8868 100644 --- a/build/cmd/hilo/renderer/DOMRenderer.js +++ b/build/cmd/hilo/renderer/DOMRenderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/renderer/DOMRenderer.min.js b/build/cmd/hilo/renderer/DOMRenderer.min.js index c1363fac..2dd8f8a5 100644 --- a/build/cmd/hilo/renderer/DOMRenderer.min.js +++ b/build/cmd/hilo/renderer/DOMRenderer.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/renderer/Renderer.js b/build/cmd/hilo/renderer/Renderer.js index 1bcdc1af..47da73d9 100644 --- a/build/cmd/hilo/renderer/Renderer.js +++ b/build/cmd/hilo/renderer/Renderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/renderer/Renderer.min.js b/build/cmd/hilo/renderer/Renderer.min.js index 5c6d6177..52c8f6fe 100644 --- a/build/cmd/hilo/renderer/Renderer.min.js +++ b/build/cmd/hilo/renderer/Renderer.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/renderer/WebGLRenderer.js b/build/cmd/hilo/renderer/WebGLRenderer.js index 32063b1b..3f1261d8 100644 --- a/build/cmd/hilo/renderer/WebGLRenderer.js +++ b/build/cmd/hilo/renderer/WebGLRenderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -428,21 +428,28 @@ var WebGLRenderer = Class.create(/** @lends WebGLRenderer.prototype */{ var cos = 1, sin = 0, rotation = view.rotation % 360, pivotX = view.pivotX, pivotY = view.pivotY, - scaleX = view.scaleX, scaleY = view.scaleY; + scaleX = view.scaleX, scaleY = view.scaleY, + transform = view.transform; - if(rotation){ - var r = rotation * DEG2RAD; - cos = Math.cos(r); - sin = Math.sin(r); + if (transform) { + mtx.copy(transform); } + else { + if(rotation){ + var r = rotation * DEG2RAD; + cos = Math.cos(r); + sin = Math.sin(r); + } + + var pos = view.getAlignPosition(); - var pos = view.getAlignPosition(); - mtx.a = cos*scaleX; - mtx.b = sin*scaleX; - mtx.c = -sin*scaleY; - mtx.d = cos*scaleY; - mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; - mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + mtx.a = cos*scaleX; + mtx.b = sin*scaleX; + mtx.c = -sin*scaleY; + mtx.d = cos*scaleY; + mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; + mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + } mtx.concat(ancestor.__webglWorldMatrix); }, diff --git a/build/cmd/hilo/renderer/WebGLRenderer.min.js b/build/cmd/hilo/renderer/WebGLRenderer.min.js index 4f362e3d..231e9c0c 100644 --- a/build/cmd/hilo/renderer/WebGLRenderer.min.js +++ b/build/cmd/hilo/renderer/WebGLRenderer.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ -define(function(t,e,r){var i=t("hilo/core/Class"),a=t("hilo/core/Hilo"),n=t("hilo/renderer/Renderer"),s=t("hilo/geom/Matrix"),o=Math.PI/180,h=i.create({Extends:n,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var t=document.createElement("canvas");t.getContext&&(t.getContext("webgl")||t.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(t){h.superclass.constructor.call(this,t);var e=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=h.MAX_BATCH_NUM,this.positionStride=4*h.ATTRIBUTE_NUM;var r=this.maxBatchNum*h.ATTRIBUTE_NUM*4,i=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*r),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(i);for(var a=0,n=0;a0)&&(t===this.stage&&this.clear(),!0)},draw:function(t){var e=t.width,r=t.height,i=(t.background,t.drawable),a=i&&i.image;if(a){var n=i.rect,s=n[2],o=n[3];e||r||(e=t.width=s,r=t.height=o),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var h=this._createVertexs(a,n[0],n[1],s,o,0,0,e,r),_=this.batchIndex*this.positionStride,c=this.float32Array,l=this.uint32Array,d=(t.tint>>16)+(65280&t.tint)+((255&t.tint)<<16)+(255*t.__webglRenderAlpha<<24);c[_+0]=h[0],c[_+1]=h[1],c[_+2]=h[2],c[_+3]=h[3],l[_+4]=d,c[_+5]=h[4],c[_+6]=h[5],c[_+7]=h[6],c[_+8]=h[7],l[_+9]=d,c[_+10]=h[8],c[_+11]=h[9],c[_+12]=h[10],c[_+13]=h[11],l[_+14]=d,c[_+15]=h[12],c[_+16]=h[13],c[_+17]=h[14],c[_+18]=h[15],l[_+19]=d;for(var u=t.__webglWorldMatrix,f=0;f<4;f++){var g=c[_+5*f],T=c[_+5*f+1];c[_+5*f]=u.a*g+u.c*T+u.tx,c[_+5*f+1]=u.b*g+u.d*T+u.ty}t.__textureImage=a,this.sprites[this.batchIndex++]=t}},endDraw:function(t){t===this.stage&&this._renderBatches()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void a.setElementStyleByView(t);var r=t.scaleX,i=t.scaleY;if(t===this.stage){var n=this.canvas.style,o=t._scaleX,h=t._scaleY,_=!1;(!o&&1!=r||o&&o!=r)&&(t._scaleX=r,n.width=r*t.width+"px",_=!0),(!h&&1!=i||h&&h!=i)&&(t._scaleY=i,n.height=i*t.height+"px",_=!0),_&&t.updateViewport(),t.__webglWorldMatrix=t.__webglWorldMatrix||new s(1,0,0,1,0,0)}else t.parent&&(t.__webglWorldMatrix=t.__webglWorldMatrix||new s(1,0,0,1,0,0),this._setConcatenatedMatrix(t,t.parent));t.alpha>0&&(t.parent&&t.parent.__webglRenderAlpha?t.__webglRenderAlpha=t.alpha*t.parent.__webglRenderAlpha:t.__webglRenderAlpha=t.alpha)},remove:function(t){var e=t.drawable,r=e&&e.domElement;if(r){var i=r.parentNode;i&&i.removeChild(r)}},clear:function(t,e,r,i){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(t,e){if(this.width!==t||this.height!==e){var r=this.canvas,i=this.stage,a=r.style;this.width=r.width=t,this.height=r.height=e,a.width=i.width*i.scaleX+"px",a.height=i.height*i.scaleY+"px",this.gl.viewport(0,0,t,e),this.canvasHalfWidth=.5*t,this.canvasHalfHeight=.5*e,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var t=this.gl;t.bufferSubData(t.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var e=0,r=0,i=null,a=0;a0&&(r.bindTexture(r.TEXTURE_2D,this._getTexture(this.sprites[t])),r.drawElements(r.TRIANGLES,6*i,r.UNSIGNED_SHORT,6*t*2))},_uploadProjectionTransform:function(t){this._projectionTransformElements&&!t||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var t=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",e="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new _(this,{v:t,f:e},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(t,e,r,i,a,n,s,o,h){var _=this.__tempVertexs||[],c=t.width,l=t.height;i/=c,a/=l,e/=c,r/=l,o=o,h=h,n=n,s=s,i+e>1&&(i=1-e),a+r>1&&(a=1-r);var d=0;return _[d++]=n,_[d++]=s,_[d++]=e,_[d++]=r,_[d++]=n+o,_[d++]=s,_[d++]=e+i,_[d++]=r,_[d++]=n,_[d++]=s+h,_[d++]=e,_[d++]=r+a,_[d++]=n+o,_[d++]=s+h,_[d++]=e+i,_[d++]=r+a,_},_setConcatenatedMatrix:function(t,e){var r=t.__webglWorldMatrix,i=1,a=0,n=t.rotation%360,s=t.pivotX,h=t.pivotY,_=t.scaleX,c=t.scaleY;if(n){var l=n*o;i=Math.cos(l),a=Math.sin(l)}var d=t.getAlignPosition();r.a=i*_,r.b=a*_,r.c=-a*c,r.d=i*c,r.tx=d.x-r.a*s-r.c*h,r.ty=d.y-r.b*s-r.d*h,r.concat(e.__webglWorldMatrix)},_getTexture:function(t){var e=t.__textureImage,r=this._cacheTexture[e.src];return r||(r=this.activeShader.uploadTexture(e)),r}}),_=function(t,e,r){this.renderer=t,this.gl=t.gl,this.program=this._createProgram(this.gl,e.v,e.f),r=r||{},this.attributes=r.attributes||[],this.uniforms=r.uniforms||[]};return _.prototype={active:function(){var t=this,e=t.renderer,r=t.gl,i=t.program;i&&r&&(e.activeShader=t,r.useProgram(i),t.attributes.forEach(function(t){e[t]=r.getAttribLocation(i,t),r.enableVertexAttribArray(e[t])}),t.uniforms.forEach(function(t){e[t]=r.getUniformLocation(i,t)}),t.width===e.width&&t.height===e.height||(t.width=e.width,t.height=e.height,e._uploadProjectionTransform()))},uploadTexture:function(t){var e=this.gl,r=this.renderer,i=e.createTexture(),a=r.u_Sampler;return e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,i),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.uniform1i(a,0),e.bindTexture(e.TEXTURE_2D,null),this.renderer._cacheTexture[t.src]=i,i},_createProgram:function(t,e,r){var i=this._createShader(t,t.VERTEX_SHADER,e),a=this._createShader(t,t.FRAGMENT_SHADER,r);if(!i||!a)return null;var n=t.createProgram();if(n){t.attachShader(n,i),t.attachShader(n,a),t.linkProgram(n),t.deleteShader(a),t.deleteShader(i);var s=t.getProgramParameter(n,t.LINK_STATUS);if(!s){var o=t.getProgramInfoLog(n);return console.log("Failed to link program: "+o),t.deleteProgram(n),null}}return n},_createShader:function(t,e,r){var i=t.createShader(e);if(i){t.shaderSource(i,r),t.compileShader(i);var a=t.getShaderParameter(i,t.COMPILE_STATUS);if(!a){var n=t.getShaderInfoLog(i);return console.log("Failed to compile shader: "+n),t.deleteShader(i),null}}return i}},h}); \ No newline at end of file +define(function(t,e,r){var i=t("hilo/core/Class"),a=t("hilo/core/Hilo"),n=t("hilo/renderer/Renderer"),s=t("hilo/geom/Matrix"),o=Math.PI/180,h=i.create({Extends:n,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var t=document.createElement("canvas");t.getContext&&(t.getContext("webgl")||t.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(t){h.superclass.constructor.call(this,t);var e=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=h.MAX_BATCH_NUM,this.positionStride=4*h.ATTRIBUTE_NUM;var r=this.maxBatchNum*h.ATTRIBUTE_NUM*4,i=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*r),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(i);for(var a=0,n=0;a0)&&(t===this.stage&&this.clear(),!0)},draw:function(t){var e=t.width,r=t.height,i=(t.background,t.drawable),a=i&&i.image;if(a){var n=i.rect,s=n[2],o=n[3];e||r||(e=t.width=s,r=t.height=o),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var h=this._createVertexs(a,n[0],n[1],s,o,0,0,e,r),c=this.batchIndex*this.positionStride,_=this.float32Array,l=this.uint32Array,d=(t.tint>>16)+(65280&t.tint)+((255&t.tint)<<16)+(255*t.__webglRenderAlpha<<24);_[c+0]=h[0],_[c+1]=h[1],_[c+2]=h[2],_[c+3]=h[3],l[c+4]=d,_[c+5]=h[4],_[c+6]=h[5],_[c+7]=h[6],_[c+8]=h[7],l[c+9]=d,_[c+10]=h[8],_[c+11]=h[9],_[c+12]=h[10],_[c+13]=h[11],l[c+14]=d,_[c+15]=h[12],_[c+16]=h[13],_[c+17]=h[14],_[c+18]=h[15],l[c+19]=d;for(var u=t.__webglWorldMatrix,f=0;f<4;f++){var g=_[c+5*f],T=_[c+5*f+1];_[c+5*f]=u.a*g+u.c*T+u.tx,_[c+5*f+1]=u.b*g+u.d*T+u.ty}t.__textureImage=a,this.sprites[this.batchIndex++]=t}},endDraw:function(t){t===this.stage&&this._renderBatches()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void a.setElementStyleByView(t);var r=t.scaleX,i=t.scaleY;if(t===this.stage){var n=this.canvas.style,o=t._scaleX,h=t._scaleY,c=!1;(!o&&1!=r||o&&o!=r)&&(t._scaleX=r,n.width=r*t.width+"px",c=!0),(!h&&1!=i||h&&h!=i)&&(t._scaleY=i,n.height=i*t.height+"px",c=!0),c&&t.updateViewport(),t.__webglWorldMatrix=t.__webglWorldMatrix||new s(1,0,0,1,0,0)}else t.parent&&(t.__webglWorldMatrix=t.__webglWorldMatrix||new s(1,0,0,1,0,0),this._setConcatenatedMatrix(t,t.parent));t.alpha>0&&(t.parent&&t.parent.__webglRenderAlpha?t.__webglRenderAlpha=t.alpha*t.parent.__webglRenderAlpha:t.__webglRenderAlpha=t.alpha)},remove:function(t){var e=t.drawable,r=e&&e.domElement;if(r){var i=r.parentNode;i&&i.removeChild(r)}},clear:function(t,e,r,i){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(t,e){if(this.width!==t||this.height!==e){var r=this.canvas,i=this.stage,a=r.style;this.width=r.width=t,this.height=r.height=e,a.width=i.width*i.scaleX+"px",a.height=i.height*i.scaleY+"px",this.gl.viewport(0,0,t,e),this.canvasHalfWidth=.5*t,this.canvasHalfHeight=.5*e,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var t=this.gl;t.bufferSubData(t.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var e=0,r=0,i=null,a=0;a0&&(r.bindTexture(r.TEXTURE_2D,this._getTexture(this.sprites[t])),r.drawElements(r.TRIANGLES,6*i,r.UNSIGNED_SHORT,6*t*2))},_uploadProjectionTransform:function(t){this._projectionTransformElements&&!t||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var t=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",e="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new c(this,{v:t,f:e},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(t,e,r,i,a,n,s,o,h){var c=this.__tempVertexs||[],_=t.width,l=t.height;i/=_,a/=l,e/=_,r/=l,o=o,h=h,n=n,s=s,i+e>1&&(i=1-e),a+r>1&&(a=1-r);var d=0;return c[d++]=n,c[d++]=s,c[d++]=e,c[d++]=r,c[d++]=n+o,c[d++]=s,c[d++]=e+i,c[d++]=r,c[d++]=n,c[d++]=s+h,c[d++]=e,c[d++]=r+a,c[d++]=n+o,c[d++]=s+h,c[d++]=e+i,c[d++]=r+a,c},_setConcatenatedMatrix:function(t,e){var r=t.__webglWorldMatrix,i=1,a=0,n=t.rotation%360,s=t.pivotX,h=t.pivotY,c=t.scaleX,_=t.scaleY,l=t.transform;if(l)r.copy(l);else{if(n){var d=n*o;i=Math.cos(d),a=Math.sin(d)}var u=t.getAlignPosition();r.a=i*c,r.b=a*c,r.c=-a*_,r.d=i*_,r.tx=u.x-r.a*s-r.c*h,r.ty=u.y-r.b*s-r.d*h}r.concat(e.__webglWorldMatrix)},_getTexture:function(t){var e=t.__textureImage,r=this._cacheTexture[e.src];return r||(r=this.activeShader.uploadTexture(e)),r}}),c=function(t,e,r){this.renderer=t,this.gl=t.gl,this.program=this._createProgram(this.gl,e.v,e.f),r=r||{},this.attributes=r.attributes||[],this.uniforms=r.uniforms||[]};return c.prototype={active:function(){var t=this,e=t.renderer,r=t.gl,i=t.program;i&&r&&(e.activeShader=t,r.useProgram(i),t.attributes.forEach(function(t){e[t]=r.getAttribLocation(i,t),r.enableVertexAttribArray(e[t])}),t.uniforms.forEach(function(t){e[t]=r.getUniformLocation(i,t)}),t.width===e.width&&t.height===e.height||(t.width=e.width,t.height=e.height,e._uploadProjectionTransform()))},uploadTexture:function(t){var e=this.gl,r=this.renderer,i=e.createTexture(),a=r.u_Sampler;return e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,i),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.uniform1i(a,0),e.bindTexture(e.TEXTURE_2D,null),this.renderer._cacheTexture[t.src]=i,i},_createProgram:function(t,e,r){var i=this._createShader(t,t.VERTEX_SHADER,e),a=this._createShader(t,t.FRAGMENT_SHADER,r);if(!i||!a)return null;var n=t.createProgram();if(n){t.attachShader(n,i),t.attachShader(n,a),t.linkProgram(n),t.deleteShader(a),t.deleteShader(i);var s=t.getProgramParameter(n,t.LINK_STATUS);if(!s){var o=t.getProgramInfoLog(n);return console.log("Failed to link program: "+o),t.deleteProgram(n),null}}return n},_createShader:function(t,e,r){var i=t.createShader(e);if(i){t.shaderSource(i,r),t.compileShader(i);var a=t.getShaderParameter(i,t.COMPILE_STATUS);if(!a){var n=t.getShaderInfoLog(i);return console.log("Failed to compile shader: "+n),t.deleteShader(i),null}}return i}},h}); \ No newline at end of file diff --git a/build/cmd/hilo/tween/Ease.js b/build/cmd/hilo/tween/Ease.js index c4392f83..1232c8d9 100644 --- a/build/cmd/hilo/tween/Ease.js +++ b/build/cmd/hilo/tween/Ease.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/tween/Ease.min.js b/build/cmd/hilo/tween/Ease.min.js index f920b89e..aba19db2 100644 --- a/build/cmd/hilo/tween/Ease.min.js +++ b/build/cmd/hilo/tween/Ease.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/tween/Tween.js b/build/cmd/hilo/tween/Tween.js index b323ac40..887d96e5 100644 --- a/build/cmd/hilo/tween/Tween.js +++ b/build/cmd/hilo/tween/Tween.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/tween/Tween.min.js b/build/cmd/hilo/tween/Tween.min.js index c2b01376..4828de3d 100644 --- a/build/cmd/hilo/tween/Tween.min.js +++ b/build/cmd/hilo/tween/Tween.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/util/TextureAtlas.js b/build/cmd/hilo/util/TextureAtlas.js index 9082b2dd..441713f6 100644 --- a/build/cmd/hilo/util/TextureAtlas.js +++ b/build/cmd/hilo/util/TextureAtlas.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/util/TextureAtlas.min.js b/build/cmd/hilo/util/TextureAtlas.min.js index d902b4cb..56cf5c35 100644 --- a/build/cmd/hilo/util/TextureAtlas.min.js +++ b/build/cmd/hilo/util/TextureAtlas.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/util/Ticker.js b/build/cmd/hilo/util/Ticker.js index 0581f052..f04a0f83 100644 --- a/build/cmd/hilo/util/Ticker.js +++ b/build/cmd/hilo/util/Ticker.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/util/Ticker.min.js b/build/cmd/hilo/util/Ticker.min.js index 3ca69151..89803568 100644 --- a/build/cmd/hilo/util/Ticker.min.js +++ b/build/cmd/hilo/util/Ticker.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/util/browser.js b/build/cmd/hilo/util/browser.js index b67c5dba..f206af9a 100644 --- a/build/cmd/hilo/util/browser.js +++ b/build/cmd/hilo/util/browser.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/util/browser.min.js b/build/cmd/hilo/util/browser.min.js index 444f741f..fb80494d 100644 --- a/build/cmd/hilo/util/browser.min.js +++ b/build/cmd/hilo/util/browser.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/util/drag.js b/build/cmd/hilo/util/drag.js index 80171a23..c5429981 100644 --- a/build/cmd/hilo/util/drag.js +++ b/build/cmd/hilo/util/drag.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/util/drag.min.js b/build/cmd/hilo/util/drag.min.js index cc89fe6f..e6d2829c 100644 --- a/build/cmd/hilo/util/drag.min.js +++ b/build/cmd/hilo/util/drag.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/util/polyfill.js b/build/cmd/hilo/util/polyfill.js index abb8bf32..5262d54c 100644 --- a/build/cmd/hilo/util/polyfill.js +++ b/build/cmd/hilo/util/polyfill.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/util/polyfill.min.js b/build/cmd/hilo/util/polyfill.min.js index 05ce9419..536b8803 100644 --- a/build/cmd/hilo/util/polyfill.min.js +++ b/build/cmd/hilo/util/polyfill.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/util/util.js b/build/cmd/hilo/util/util.js index ce5d54b0..bbd066b3 100644 --- a/build/cmd/hilo/util/util.js +++ b/build/cmd/hilo/util/util.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/util/util.min.js b/build/cmd/hilo/util/util.min.js index 25b25c25..29eee99d 100644 --- a/build/cmd/hilo/util/util.min.js +++ b/build/cmd/hilo/util/util.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/Bitmap.js b/build/cmd/hilo/view/Bitmap.js index 8d10e763..c83bfa8e 100644 --- a/build/cmd/hilo/view/Bitmap.js +++ b/build/cmd/hilo/view/Bitmap.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/Bitmap.min.js b/build/cmd/hilo/view/Bitmap.min.js index dce2790d..f5678988 100644 --- a/build/cmd/hilo/view/Bitmap.min.js +++ b/build/cmd/hilo/view/Bitmap.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/BitmapText.js b/build/cmd/hilo/view/BitmapText.js index fd9ceae9..6687e7d4 100644 --- a/build/cmd/hilo/view/BitmapText.js +++ b/build/cmd/hilo/view/BitmapText.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/BitmapText.min.js b/build/cmd/hilo/view/BitmapText.min.js index f7e62415..3cbdcf4f 100644 --- a/build/cmd/hilo/view/BitmapText.min.js +++ b/build/cmd/hilo/view/BitmapText.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/Button.js b/build/cmd/hilo/view/Button.js index 0f235f33..8388cd95 100644 --- a/build/cmd/hilo/view/Button.js +++ b/build/cmd/hilo/view/Button.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/Button.min.js b/build/cmd/hilo/view/Button.min.js index 8b8353d9..fa18c5b0 100644 --- a/build/cmd/hilo/view/Button.min.js +++ b/build/cmd/hilo/view/Button.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/CacheMixin.js b/build/cmd/hilo/view/CacheMixin.js index 4038b858..7587f053 100644 --- a/build/cmd/hilo/view/CacheMixin.js +++ b/build/cmd/hilo/view/CacheMixin.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/CacheMixin.min.js b/build/cmd/hilo/view/CacheMixin.min.js index 63cd10c8..433e207d 100644 --- a/build/cmd/hilo/view/CacheMixin.min.js +++ b/build/cmd/hilo/view/CacheMixin.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/Container.js b/build/cmd/hilo/view/Container.js index 10997d3b..b58b3694 100644 --- a/build/cmd/hilo/view/Container.js +++ b/build/cmd/hilo/view/Container.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/Container.min.js b/build/cmd/hilo/view/Container.min.js index d6502c36..da009c6e 100644 --- a/build/cmd/hilo/view/Container.min.js +++ b/build/cmd/hilo/view/Container.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/DOMElement.js b/build/cmd/hilo/view/DOMElement.js index 49788b0a..173b38cd 100644 --- a/build/cmd/hilo/view/DOMElement.js +++ b/build/cmd/hilo/view/DOMElement.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -89,7 +89,8 @@ var DOMElement = Class.create(/** @lends DOMElement.prototype */{ style:{ 'position':'absolute', 'transform':'scale3d(' + stage.scaleX + ',' + stage.scaleY + ', 1)', - 'transformOrigin':'0 0' + 'transformOrigin':'0 0', + 'zIndex':'1' } }); canvas.parentNode.insertBefore(renderer._domElementContainer, canvas.nextSibling); diff --git a/build/cmd/hilo/view/DOMElement.min.js b/build/cmd/hilo/view/DOMElement.min.js index f3b13c96..cb13a4ec 100644 --- a/build/cmd/hilo/view/DOMElement.min.js +++ b/build/cmd/hilo/view/DOMElement.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ -define(function(e,t,n){var i=e("hilo/core/Hilo"),r=e("hilo/core/Class"),s=e("hilo/view/View"),o=e("hilo/view/Drawable"),a=r.create({Extends:s,constructor:function(e){e=e||{},this.id=this.id||e.id||i.getUid("DOMElement"),a.superclass.constructor.call(this,e),this.drawable=new o;var t=this.drawable.domElement=e.element||i.createElement("div");t.id=this.id,this.pointerEnabled&&!t.style.pointerEvents&&(t.style.pointerEvents="visible")},_render:function(e,t){this.onUpdate&&this.onUpdate(t)===!1||(e.transform(this),this.visible&&this.alpha>0&&this.render(e,t))},render:function(e,t){if("dom"!==e.renderType){var n=e.canvas,r=this.parent,s=e._domElementContainer;e._domElementContainer||(s=e._domElementContainer=i.createElement("div",{style:{position:"absolute",transform:"scale3d("+r.scaleX+","+r.scaleY+", 1)",transformOrigin:"0 0"}}),n.parentNode.insertBefore(e._domElementContainer,n.nextSibling));var o,a=this.drawable.domElement,l=this.depth,d=s.childNodes[0];if(a.parentNode)return;for(;d&&3!=d.nodeType&&(o=parseInt(d.style.zIndex)||0,!(o<=0||o>l));)d=d.nextSibling;s.insertBefore(this.drawable.domElement,d)}else e.draw(this)}});return a}); \ No newline at end of file +define(function(e,t,n){var i=e("hilo/core/Hilo"),r=e("hilo/core/Class"),s=e("hilo/view/View"),o=e("hilo/view/Drawable"),a=r.create({Extends:s,constructor:function(e){e=e||{},this.id=this.id||e.id||i.getUid("DOMElement"),a.superclass.constructor.call(this,e),this.drawable=new o;var t=this.drawable.domElement=e.element||i.createElement("div");t.id=this.id,this.pointerEnabled&&!t.style.pointerEvents&&(t.style.pointerEvents="visible")},_render:function(e,t){this.onUpdate&&this.onUpdate(t)===!1||(e.transform(this),this.visible&&this.alpha>0&&this.render(e,t))},render:function(e,t){if("dom"!==e.renderType){var n=e.canvas,r=this.parent,s=e._domElementContainer;e._domElementContainer||(s=e._domElementContainer=i.createElement("div",{style:{position:"absolute",transform:"scale3d("+r.scaleX+","+r.scaleY+", 1)",transformOrigin:"0 0",zIndex:"1"}}),n.parentNode.insertBefore(e._domElementContainer,n.nextSibling));var o,a=this.drawable.domElement,l=this.depth,d=s.childNodes[0];if(a.parentNode)return;for(;d&&3!=d.nodeType&&(o=parseInt(d.style.zIndex)||0,!(o<=0||o>l));)d=d.nextSibling;s.insertBefore(this.drawable.domElement,d)}else e.draw(this)}});return a}); \ No newline at end of file diff --git a/build/cmd/hilo/view/Drawable.js b/build/cmd/hilo/view/Drawable.js index 07f38183..1649524a 100644 --- a/build/cmd/hilo/view/Drawable.js +++ b/build/cmd/hilo/view/Drawable.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/Drawable.min.js b/build/cmd/hilo/view/Drawable.min.js index c94c4028..cbe573c1 100644 --- a/build/cmd/hilo/view/Drawable.min.js +++ b/build/cmd/hilo/view/Drawable.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/Graphics.js b/build/cmd/hilo/view/Graphics.js index 7d8a8dd4..a8f261fc 100644 --- a/build/cmd/hilo/view/Graphics.js +++ b/build/cmd/hilo/view/Graphics.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/Graphics.min.js b/build/cmd/hilo/view/Graphics.min.js index 42869218..f52f50ed 100644 --- a/build/cmd/hilo/view/Graphics.min.js +++ b/build/cmd/hilo/view/Graphics.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/Sprite.js b/build/cmd/hilo/view/Sprite.js index 5d9635ba..95cf7583 100644 --- a/build/cmd/hilo/view/Sprite.js +++ b/build/cmd/hilo/view/Sprite.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/Sprite.min.js b/build/cmd/hilo/view/Sprite.min.js index ed4cdeb8..fbcbf9da 100644 --- a/build/cmd/hilo/view/Sprite.min.js +++ b/build/cmd/hilo/view/Sprite.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/Stage.js b/build/cmd/hilo/view/Stage.js index 5c1e472d..a9f1a764 100644 --- a/build/cmd/hilo/view/Stage.js +++ b/build/cmd/hilo/view/Stage.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/Stage.min.js b/build/cmd/hilo/view/Stage.min.js index 75e8c122..5ddf3e3c 100644 --- a/build/cmd/hilo/view/Stage.min.js +++ b/build/cmd/hilo/view/Stage.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/Text.js b/build/cmd/hilo/view/Text.js index 1bcd987f..34c41448 100644 --- a/build/cmd/hilo/view/Text.js +++ b/build/cmd/hilo/view/Text.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/Text.min.js b/build/cmd/hilo/view/Text.min.js index f6725310..434943ec 100644 --- a/build/cmd/hilo/view/Text.min.js +++ b/build/cmd/hilo/view/Text.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/cmd/hilo/view/View.js b/build/cmd/hilo/view/View.js index b1e3822e..38626bd9 100644 --- a/build/cmd/hilo/view/View.js +++ b/build/cmd/hilo/view/View.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -39,6 +39,7 @@ var util = require('hilo/util/util'); * @property {Number} pivotY Position of the center point on the y axis of the view, default value is 0. * @property {Number} scaleX The x axis scale factor of the view, default value is 1. * @property {Number} scaleY The y axis scale factor of the view, default value is 1. + * @property {Matrix} transform The transform of the view.If set the transform, x, y, scaleX, scaleY, rotation, pivotX, pivotY will be ignored.default is null. * @property {Boolean} pointerEnabled Is the view can receive DOM events, default value is true. * @property {Object} background The background style to fill the view, can be css color, gradient or pattern of canvas * @property {Graphics} mask Sets a mask for the view. A mask is an object that limits the visibility of an object to the shape of the mask applied to it. A regular mask must be a Hilo.Graphics object. This allows for much faster masking in canvas as it utilises shape clipping. To remove a mask, set this property to null. @@ -80,6 +81,7 @@ return Class.create(/** @lends View.prototype */{ boundsArea: null, parent: null, depth: -1, + transform: null, blendMode:'source-over', /** @@ -192,19 +194,26 @@ return Class.create(/** @lends View.prototype */{ var cos = 1, sin = 0, rotation = o.rotation % 360, pivotX = o.pivotX, pivotY = o.pivotY, - scaleX = o.scaleX, scaleY = o.scaleY; + scaleX = o.scaleX, scaleY = o.scaleY, + transform = o.transform; - if(rotation){ - var r = rotation * Math.PI / 180; - cos = Math.cos(r); - sin = Math.sin(r); + if(transform) { + mtx.concat(transform); } + else{ + if(rotation){ + var r = rotation * Math.PI / 180; + cos = Math.cos(r); + sin = Math.sin(r); + } - if(pivotX != 0) mtx.tx -= pivotX; - if(pivotY != 0) mtx.ty -= pivotY; + if(pivotX != 0) mtx.tx -= pivotX; + if(pivotY != 0) mtx.ty -= pivotY; - var pos = o.getAlignPosition(); - mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + var pos = o.getAlignPosition(); + mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + } + } return mtx; }, diff --git a/build/cmd/hilo/view/View.min.js b/build/cmd/hilo/view/View.min.js index 5cece292..ac863188 100644 --- a/build/cmd/hilo/view/View.min.js +++ b/build/cmd/hilo/view/View.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for cmd + * Hilo 1.2.0 for cmd * Copyright 2016 alibaba.com * Licensed under the MIT License */ -define(function(t,e,i){var n=t("hilo/core/Hilo"),r=t("hilo/core/Class"),o=t("hilo/event/EventMixin"),a=t("hilo/geom/Matrix"),s=t("hilo/util/util"),h=function(){function t(t,e,i){for(var n,r,o,a,s=0,h=!1,u=0,y=i.length;uc.x?(n=c.x,r=l.x):(n=l.x,r=c.x),t>=n&&t<=r))h=!0;else if(l.y>c.y?(o=c.y,a=l.y):(o=l.y,a=c.y),!(ea)){var x=(e-l.y)*(c.x-l.x)/(c.y-l.y)+l.x;if(x>t?s++:x==t&&(h=!0),l.x>t&&l.y==e){var d=i[(y+u-1)%y];(d.ye||d.y>e&&c.ys?s=y:yu?u=y:y=0)return!1;l>i.overlap&&(i.overlap=l,i.normal.x=d.x,i.normal.y=d.y)}return i}return r.create({Mixes:o,constructor:function(t){t=t||{},this.id=this.id||t.id||n.getUid("View"),s.copy(this,t,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,n,r,o,a,s=this.width,h=this.height,u=this.getConcatenatedMatrix(),y=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:h},{x:0,y:h}],l=[],c=0,x=y.length;ce?n=e:ri?o=i:a>1,n=0;break;case"TR":i=a-r,n=0;break;case"L":i=0,n=s-o>>1;break;case"C":i=a-r>>1,n=s-o>>1;break;case"R":i=a-r,n=s-o>>1;break;case"BL":i=0,n=s-o;break;case"B":i=a-r>>1,n=s-o;break;case"BR":i=a-r,n=s-o}}return{x:i,y:n}},hitTestPoint:function(e,i,n){var r=this.getBounds(),o=e>=r.x&&e<=r.x+r.width&&i>=r.y&&i<=r.y+r.height;return o&&n&&(o=t(e,i,r)),o},hitTestObject:function(t,i){var n=this.getBounds(),r=t.getBounds(),o=n.x<=r.x+r.width&&r.x<=n.x+n.width&&n.y<=r.y+r.height&&r.y<=n.y+n.height;return o&&i&&(o=e(n,r)),!!o},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=s.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return n.viewToString(this)}})}();return h}); \ No newline at end of file +define(function(t,e,i){var n=t("hilo/core/Hilo"),r=t("hilo/core/Class"),o=t("hilo/event/EventMixin"),a=t("hilo/geom/Matrix"),s=t("hilo/util/util"),h=function(){function t(t,e,i){for(var n,r,o,a,s=0,h=!1,u=0,l=i.length;uc.x?(n=c.x,r=y.x):(n=y.x,r=c.x),t>=n&&t<=r))h=!0;else if(y.y>c.y?(o=c.y,a=y.y):(o=y.y,a=c.y),!(ea)){var x=(e-y.y)*(c.x-y.x)/(c.y-y.y)+y.x;if(x>t?s++:x==t&&(h=!0),y.x>t&&y.y==e){var d=i[(l+u-1)%l];(d.ye||d.y>e&&c.ys?s=l:lu?u=l:l=0)return!1;y>i.overlap&&(i.overlap=y,i.normal.x=d.x,i.normal.y=d.y)}return i}return r.create({Mixes:o,constructor:function(t){t=t||{},this.id=this.id||t.id||n.getUid("View"),s.copy(this,t,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,transform:null,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,n,r,o,a,s=this.width,h=this.height,u=this.getConcatenatedMatrix(),l=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:h},{x:0,y:h}],y=[],c=0,x=l.length;ce?n=e:ri?o=i:a>1,n=0;break;case"TR":i=a-r,n=0;break;case"L":i=0,n=s-o>>1;break;case"C":i=a-r>>1,n=s-o>>1;break;case"R":i=a-r,n=s-o>>1;break;case"BL":i=0,n=s-o;break;case"B":i=a-r>>1,n=s-o;break;case"BR":i=a-r,n=s-o}}return{x:i,y:n}},hitTestPoint:function(e,i,n){var r=this.getBounds(),o=e>=r.x&&e<=r.x+r.width&&i>=r.y&&i<=r.y+r.height;return o&&n&&(o=t(e,i,r)),o},hitTestObject:function(t,i){var n=this.getBounds(),r=t.getBounds(),o=n.x<=r.x+r.width&&r.x<=n.x+n.width&&n.y<=r.y+r.height&&r.y<=n.y+n.height;return o&&i&&(o=e(n,r)),!!o},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=s.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return n.viewToString(this)}})}();return h}); \ No newline at end of file diff --git a/build/commonjs/core/Class.js b/build/commonjs/core/Class.js index 6549c13c..73aee191 100644 --- a/build/commonjs/core/Class.js +++ b/build/commonjs/core/Class.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/core/Class.min.js b/build/commonjs/core/Class.min.js index 348cb4b0..7edac96e 100644 --- a/build/commonjs/core/Class.min.js +++ b/build/commonjs/core/Class.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/core/Hilo.js b/build/commonjs/core/Hilo.js index e6339ac4..60e54a87 100644 --- a/build/commonjs/core/Hilo.js +++ b/build/commonjs/core/Hilo.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -28,7 +28,7 @@ var Hilo = { * Hilo version * @type String */ - version: '1.1.11', + version: '1.2.0', /** * @language=en * Gets a globally unique id. Such as Stage1, Bitmap2 etc. @@ -232,12 +232,23 @@ var Hilo = { if (this.cacheStateIfChanged(obj, ['depth'], stateCache)) { style.zIndex = obj.depth + 1; } - if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { - style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + if (obj.transform){ + var transform = obj.transform; + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = '0 0'; + } + style[prefix + 'Transform'] = 'matrix3d(' + transform.a + ', '+ transform.b + ', 0, 0, '+ transform.c + ', '+ transform.d + ', 0, 0, 0, 0, 1, 0, '+ transform.tx + ', '+ transform.ty + ', 0, 1)'; } - if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { - style[prefix + 'Transform'] = this.getTransformCSS(obj); + else{ + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + } + + if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { + style[prefix + 'Transform'] = this.getTransformCSS(obj); + } } + if (this.cacheStateIfChanged(obj, ['background'], stateCache)) { style.backgroundColor = obj.background; } diff --git a/build/commonjs/core/Hilo.min.js b/build/commonjs/core/Hilo.min.js index ae795753..ed3243eb 100644 --- a/build/commonjs/core/Hilo.min.js +++ b/build/commonjs/core/Hilo.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ -var browser=require("../util/browser"),util=require("../util/util"),win=window,doc=document,docElem=doc.documentElement,uid=0,hasWarnedDict={},Hilo={version:"1.1.11",getUid:function(e){var t=++uid;if(e){var a=e.charCodeAt(e.length-1);return a>=48&&a<=57&&(e+="_"),e+t}return t},viewToString:function(e){for(var t,a=e;a;)t=t?a.id+"."+t:a.id,a=a.parent;return t},copy:function(e,t,a){return util.copy(e,t,a),hasWarnedDict.copy||(hasWarnedDict.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),e},browser:browser,event:{POINTER_START:browser.POINTER_START,POINTER_MOVE:browser.POINTER_MOVE,POINTER_END:browser.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(e){var t;try{t=e.getBoundingClientRect()}catch(a){t={top:e.offsetTop,left:e.offsetLeft,right:e.offsetLeft+e.offsetWidth,bottom:e.offsetTop+e.offsetHeight}}var o=(win.pageXOffset||docElem.scrollLeft)-(docElem.clientLeft||0)||0,r=(win.pageYOffset||docElem.scrollTop)-(docElem.clientTop||0)||0,i=win.getComputedStyle?getComputedStyle(e):e.currentStyle,n=parseInt,s=n(i.paddingLeft)+n(i.borderLeftWidth)||0,c=n(i.paddingTop)+n(i.borderTopWidth)||0,d=n(i.paddingRight)+n(i.borderRightWidth)||0,l=n(i.paddingBottom)+n(i.borderBottomWidth)||0,h=t.top||0,f=t.left||0,g=t.right||0,p=t.bottom||0;return{left:f+o+s,top:h+r+c,width:g-d-f-s,height:p-l-h-c}},createElement:function(e,t){var a,o,r,i=doc.createElement(e);for(a in t)if(o=t[a],"style"===a)for(r in o)i.style[r]=o[r];else i[a]=o;return i},getElement:function(e){return doc.getElementById(e)},setElementStyleByView:function(e){var t=e.drawable,a=t.domElement.style,o=e._stateCache||(e._stateCache={}),r=Hilo.browser.jsVendor,i="px",n=!1;if(this.cacheStateIfChanged(e,["visible"],o)&&(a.display=e.visible?"":"none"),this.cacheStateIfChanged(e,["alpha"],o)&&(a.opacity=e.alpha),e.visible&&!(e.alpha<=0)){this.cacheStateIfChanged(e,["width"],o)&&(a.width=e.width+i),this.cacheStateIfChanged(e,["height"],o)&&(a.height=e.height+i),this.cacheStateIfChanged(e,["depth"],o)&&(a.zIndex=e.depth+1),(n=this.cacheStateIfChanged(e,["pivotX","pivotY"],o))&&(a[r+"TransformOrigin"]=e.pivotX+i+" "+e.pivotY+i),(this.cacheStateIfChanged(e,["x","y","rotation","scaleX","scaleY"],o)||n)&&(a[r+"Transform"]=this.getTransformCSS(e)),this.cacheStateIfChanged(e,["background"],o)&&(a.backgroundColor=e.background),a.pointerEvents||(a.pointerEvents="none");var s=t.image;if(s){var c=s.src;c!==o.image&&(o.image=c,a.backgroundImage="url("+c+")");var d=t.rect;if(d){var l=d[0],h=d[1];l!==o.sx&&(o.sx=l,a.backgroundPositionX=-l+i),h!==o.sy&&(o.sy=h,a.backgroundPositionY=-h+i)}}var f=e.mask;if(f){var g=f.drawable.domElement.style.backgroundImage;g!==o.maskImage&&(o.maskImage=g,a[r+"MaskImage"]=g,a[r+"MaskRepeat"]="no-repeat");var p=f.x,m=f.y;p===o.maskX&&m===o.maskY||(o.maskX=p,o.maskY=m,a[r+"MaskPosition"]=p+i+" "+m+i)}}},cacheStateIfChanged:function(e,t,a){var o,r,i,n,s=!1;for(o=0,r=t.length;o=48&&a<=57&&(e+="_"),e+t}return t},viewToString:function(e){for(var t,a=e;a;)t=t?a.id+"."+t:a.id,a=a.parent;return t},copy:function(e,t,a){return util.copy(e,t,a),hasWarnedDict.copy||(hasWarnedDict.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),e},browser:browser,event:{POINTER_START:browser.POINTER_START,POINTER_MOVE:browser.POINTER_MOVE,POINTER_END:browser.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(e){var t;try{t=e.getBoundingClientRect()}catch(a){t={top:e.offsetTop,left:e.offsetLeft,right:e.offsetLeft+e.offsetWidth,bottom:e.offsetTop+e.offsetHeight}}var r=(win.pageXOffset||docElem.scrollLeft)-(docElem.clientLeft||0)||0,o=(win.pageYOffset||docElem.scrollTop)-(docElem.clientTop||0)||0,i=win.getComputedStyle?getComputedStyle(e):e.currentStyle,n=parseInt,s=n(i.paddingLeft)+n(i.borderLeftWidth)||0,c=n(i.paddingTop)+n(i.borderTopWidth)||0,d=n(i.paddingRight)+n(i.borderRightWidth)||0,h=n(i.paddingBottom)+n(i.borderBottomWidth)||0,l=t.top||0,f=t.left||0,g=t.right||0,p=t.bottom||0;return{left:f+r+s,top:l+o+c,width:g-d-f-s,height:p-h-l-c}},createElement:function(e,t){var a,r,o,i=doc.createElement(e);for(a in t)if(r=t[a],"style"===a)for(o in r)i.style[o]=r[o];else i[a]=r;return i},getElement:function(e){return doc.getElementById(e)},setElementStyleByView:function(e){var t=e.drawable,a=t.domElement.style,r=e._stateCache||(e._stateCache={}),o=Hilo.browser.jsVendor,i="px",n=!1;if(this.cacheStateIfChanged(e,["visible"],r)&&(a.display=e.visible?"":"none"),this.cacheStateIfChanged(e,["alpha"],r)&&(a.opacity=e.alpha),e.visible&&!(e.alpha<=0)){if(this.cacheStateIfChanged(e,["width"],r)&&(a.width=e.width+i),this.cacheStateIfChanged(e,["height"],r)&&(a.height=e.height+i),this.cacheStateIfChanged(e,["depth"],r)&&(a.zIndex=e.depth+1),e.transform){var s=e.transform;(n=this.cacheStateIfChanged(e,["pivotX","pivotY"],r))&&(a[o+"TransformOrigin"]="0 0"),a[o+"Transform"]="matrix3d("+s.a+", "+s.b+", 0, 0, "+s.c+", "+s.d+", 0, 0, 0, 0, 1, 0, "+s.tx+", "+s.ty+", 0, 1)"}else(n=this.cacheStateIfChanged(e,["pivotX","pivotY"],r))&&(a[o+"TransformOrigin"]=e.pivotX+i+" "+e.pivotY+i),(this.cacheStateIfChanged(e,["x","y","rotation","scaleX","scaleY"],r)||n)&&(a[o+"Transform"]=this.getTransformCSS(e));this.cacheStateIfChanged(e,["background"],r)&&(a.backgroundColor=e.background),a.pointerEvents||(a.pointerEvents="none");var c=t.image;if(c){var d=c.src;d!==r.image&&(r.image=d,a.backgroundImage="url("+d+")");var h=t.rect;if(h){var l=h[0],f=h[1];l!==r.sx&&(r.sx=l,a.backgroundPositionX=-l+i),f!==r.sy&&(r.sy=f,a.backgroundPositionY=-f+i)}}var g=e.mask;if(g){var p=g.drawable.domElement.style.backgroundImage;p!==r.maskImage&&(r.maskImage=p,a[o+"MaskImage"]=p,a[o+"MaskRepeat"]="no-repeat");var m=g.x,u=g.y;m===r.maskX&&u===r.maskY||(r.maskX=m,r.maskY=u,a[o+"MaskPosition"]=m+i+" "+u+i)}}},cacheStateIfChanged:function(e,t,a){var r,o,i,n,s=!1;for(r=0,o=t.length;r=6?(i=c[0],s=c[1],h=c[2],r=c[3],n=c[4],a=c[5]):(i=t.a,s=t.b,h=t.c,r=t.d,n=t.tx,a=t.ty),this.a=e*i+x*h,this.b=e*s+x*r,this.c=o*i+u*h,this.d=o*s+u*r,this.tx=y*i+d*h+n,this.ty=y*s+d*r+a,this},rotate:function(t){var i=Math.sin(t),s=Math.cos(t),h=this.a,r=this.b,n=this.c,a=this.d,c=this.tx,e=this.ty;return this.a=h*s-r*i,this.b=h*i+r*s,this.c=n*s-a*i,this.d=n*i+a*s,this.tx=c*s-e*i,this.ty=c*i+e*s,this},scale:function(t,i){return this.a*=t,this.d*=i,this.c*=t,this.b*=i,this.tx*=t,this.ty*=i,this},translate:function(t,i){return this.tx+=t,this.ty+=i,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,i=this.b,s=this.c,h=this.d,r=this.tx,n=t*h-i*s;return this.a=h/n,this.b=-i/n,this.c=-s/n,this.d=t/n,this.tx=(s*this.ty-h*r)/n,this.ty=-(t*this.ty-i*r)/n,this},transformPoint:function(t,i,s){var h=t.x*this.a+t.y*this.c+this.tx,r=t.x*this.b+t.y*this.d+this.ty;return i&&(h=h+.5>>0,r=r+.5>>0),s?{x:h,y:r}:(t.x=h,t.y=r,t)}});module.exports=Matrix; \ No newline at end of file +var Class=require("../core/Class"),Matrix=Class.create({constructor:function(t,i,s,h,n,r){this.a=t,this.b=i,this.c=s,this.d=h,this.tx=n,this.ty=r},set:function(t,i,s,h,n,r){return this.a=t,this.b=i,this.c=s,this.d=h,this.tx=n,this.ty=r,this},copy:function(t){return this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.tx=t.tx,this.ty=t.ty,this},clone:function(){return(new Matrix).copy(this)},concat:function(t){var i,s,h,n,r,c,a=arguments,e=this.a,o=this.b,u=this.c,x=this.d,y=this.tx,d=this.ty;return a.length>=6?(i=a[0],s=a[1],h=a[2],n=a[3],r=a[4],c=a[5]):(i=t.a,s=t.b,h=t.c,n=t.d,r=t.tx,c=t.ty),this.a=e*i+o*h,this.b=e*s+o*n,this.c=u*i+x*h,this.d=u*s+x*n,this.tx=y*i+d*h+r,this.ty=y*s+d*n+c,this},rotate:function(t){var i=Math.sin(t),s=Math.cos(t),h=this.a,n=this.b,r=this.c,c=this.d,a=this.tx,e=this.ty;return this.a=h*s-n*i,this.b=h*i+n*s,this.c=r*s-c*i,this.d=r*i+c*s,this.tx=a*s-e*i,this.ty=a*i+e*s,this},scale:function(t,i){return this.a*=t,this.d*=i,this.c*=t,this.b*=i,this.tx*=t,this.ty*=i,this},translate:function(t,i){return this.tx+=t,this.ty+=i,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,i=this.b,s=this.c,h=this.d,n=this.tx,r=t*h-i*s;return this.a=h/r,this.b=-i/r,this.c=-s/r,this.d=t/r,this.tx=(s*this.ty-h*n)/r,this.ty=-(t*this.ty-i*n)/r,this},transformPoint:function(t,i,s){var h=t.x*this.a+t.y*this.c+this.tx,n=t.x*this.b+t.y*this.d+this.ty;return i&&(h=h+.5>>0,n=n+.5>>0),s?{x:h,y:n}:(t.x=h,t.y=n,t)}});module.exports=Matrix; \ No newline at end of file diff --git a/build/commonjs/hilo-commonjs.zip b/build/commonjs/hilo-commonjs.zip index c861fd32461893ff17f18b72f65a1d48ad700946..90890ac4e174826b48d343e5716cbd6c3f20722f 100644 GIT binary patch delta 100794 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
    AdaR{Pb~Y|>{b zyBb-{F#|Z#gOrzr4eNP6o@g-NWhK4Eex0K(PXja&QFD3*=$O!aJ z+r9=Oum0CRy#uz+pM-hhML3CgU+C;FXjiI-hZGy#0=6z1TFd3@#LzRTE^^P1n%iukndnK#A)K*8NRqyXmk9@ynyRTWIen_4Y}--b^8>v(QrWrk>hd zo+&aS(e%LdyHVZb2pPqb#Ky?QFHJgetSE@uVluS!#WHDx<0UhyhU}j$S~5{GpR%L) z57WAjC=Vr^VlL+21}Qcbq(p(6E*1^qKV$KBa$RbRwoFo9GyXp!d+|Nd61b>OY#I<# zIvXxssGP-%N-5Du+(PpLcJK$#dW$XB$fLUIpoL(m@7@I%Io`ed)Jk z!_xct0KP`L5!)?PV)92jCwyc@BWwYsmr&jN;^w9WU|4HbuK#-}tf zJHTb?H>2xUUL|#atS(VTK}ai0?J?5aY0;c)IooDsO}RqnusGJ(en}{bKb$i|kKT>- z{jyNakCUPG=$fW&sJC?DZ0OT5b{>ixbB_g(ACZZyrmu7a$&(-RiRU7__e@@1s>llw zpZ|@n{J*Aw)0Biq|Exk(6kuRPU}@jV!ST}S%E4iPA-rp~4gR~gH-_vzyMYSET!JR<%b>>p7F(Y__{XPxA_UTtY` z3~7GAY}f+G4gxp(Op~FHT}YsgVptVP(`RjT+;|IMT|fp6DOuw8oM7$HoN^_g-XiWc+W)e!rh zJd$W5bRYGKd*5sQ%aQ*e>hegNu`X9dXcEa3;ImSxEIA27w6fePo1=ina!(hsIJF@x zu}`_W%owWB`RpSuHQDmLDc83Lzu>%P;Gn^`$@QHulg zR_{&5Bbfpj;UjbGh;YWXa4;@O#4CjRuZwy0Y@(^bL?X3OBr9g9?O8}cmkX?%D%AZyk!@L0Y%gWm$_nP|=k=PC3?<4{aS}(}+W8AAL^^b*w;E!p zK;K4Vc=x>W(N>LmHwUCM3eDM71NHz%4)2&^7uh!7#Z_vRkuvewGSHDZgeFlviL@sN z4+?=ei52=Vr;zo8RFsDySo#KmO(E3}c}||JS363=LnA7_7PsQMUrRxxX8Us$8{~-_ zXR|*#C9KJLgUc9QuCL_g0p?X1s!kFQ7Vo$dC{r3C^Ya5~yxfUw#fgJ2b6m#Uv^ZabKpR z_7jVn09fI-r&MqY;X@%=`iA=1#P+F z-q#>WHO22VA^hMv3^+decrzkdT=d(+HG^6}Hw z@_-UF+B|Vw$H7O1C-+6bhDp1Ertk`Kk3n$o0_5G=rN(nZ?`5J`ySBSpWGKoCTPT=u z)o5odh7IKQ>#l<5S6d|wFb%EGVI}9ZG8e|+yz7TO8i5j4iikirH?A`y{m1D}(1y#8 zMctGRKAF@>^AiL5dn$kq>og-@L|#tOVon$7;dvATnfh1jh&?{D<%8Npzy8%(KiElG zUHK-l5ZFcWG6ZwqQ!f1_+Z!y(Jf7HnCfmVg5bg)zrssSb&h4G)vHoUp?+6gr9OtxuSeCj=7-$hu zYNS5IOeSuF*Ab|?1&>F$ib64y6)k}3mf0;3=k34s<@&%Hk+FRTAL*g*-(eS*X?V}q zkD^4o8(tI zvIk`gzk01^aAu8m&Vz+*#K{GSno<&<{?maD6UN3?3C>e zGb&NHW$Zj`=wx;r@Dv)oui0sJ_x3$H8|PnJ6tNpZ^Hm@sa<$q`j?GRqzU7p8pw76% zIh~U0dVsCY8JjNI6+O_I(O0%xO0p*0(oi@<7p$*INp$!(c55#s;`i6-C{XeN-a%pz zA>^;s6G8eTu-l{JQZ6C56g#eH`4a;L^;roO&MU$6Q}D&%s;Y5{GSaZG8@i3GCNRk= zn9NGeGN0$E?aZ>~z-~w{+PgJ5C^0rIEGHxW2uO0G7U!;v#0P5OscN=MZ(;Us^+K_^ zE$&|uyKD+j2U-y^;}mEmui&TN>5+TW+4RbVl&u62!H}|LsY@YH5NAUr>MJS*bJ`l# zPSg6*3TkjWK_A-k88<-vJaU6fD&_pKZOz2@tWx_gU=`>pn2N;u<_G8r+o5+s)0Q+~ zKt)e1W(#CFaq+J{x5w7L<~O>=t<^?i^Yd0)A%SBv%PDJ7uYA+XkBo4TQ&JR?jk)hp zqbZm|Ma!=v2y|^{rhSq0#aZ4MA!=+$JJon4r{#?XRstrH%CpvGB_mj(=Mct|$z>0Z z+VR%q(jN*13g|Zj20C9<*5(}?z>y3&fGS@3xy)?^wGf5)mVJJ&MI}M*y=l=d)VnZ* zF8CcXU9Cj>u?DrSw(17M*2zX=p9R#ZE26fD2QM-O+b!i@`^`7uZoH??r;P3?I)%oi z`HHnJ3p6q!HDA-j2t8CARyogmhJAlj0eU55tO(sohf3LSy@!hN ztZa7n(nofS_PwY9OS^Q^%RFFXwTU_hkaXI&h#S%KiU_x5XmNgsisL(3C>K1z1|R)9 zSX5#9_XYnPVwucXgEiG+G~0C%kn)E9RFt^ZCE0dH`W0uR8EwVs{MgIL=^Ad<$~a*t zG?tj@;o)r`3X5G!uVS(f4yG_(@L(Nt3VE}PA%8c=UG-=QZ?ayUriC+mBgz6ZlHC}{ z@*6>d8>x0vRs45MLevwU{*r9mr_qWV^ND(QOrY-fS-ZT9U)sgJoBaZnfT^mwqSbSS zM0-1arPcE95i@D(k<(1U-z_5!oOoaWYSij*#)wIt8BYYnlh14Svk}uh7uNL&cloaJyN3;~f~D zJ-oC0GZxf4ZSb4u&}ALd6_7WfSC1nW_gK*Icg8VwLqijiZ4k>ulH`ueyk*t|UGE=h zPpw@!D(W^Hfj8Ds><5c8D6EdZYp#t45l8xzTC_yos>u@mz1%IQ>WF~`Vi&ISC4@Sm zHI9+KCh)M{ao=IXGbqiVw~(;p8qfCa6Cw1Xt5m-b%gyEh@V{gZbJFJ!&Ur~tv3`aKQ z_FfmFD&ldSeBEXOh%e;m8SQqiXIv@l7XO<~wO^5cKQA%a9BgqUAa^PAk^#nWf!DY) zuZS5a@57N8P^Q}I;j29z-qv8~mCli3uGo>d^k&p&AhXF_tMLB%*u zTNRTKdzJcChu0&WfX)H640fGI!5ux>jFd4mNs@4|oAWyezzEmK^pXG2_2OS75w45X zqX@ak7Fqj{E=YMwd#FSR5|)Xp3tFs(?O#Miq>xy&rW_e}-fiEuCT09dq!6xd(zJGD zM={9)Hg5PgItQip{T zdi$}?)0+bqc&>$QJtGKuuJ&|gBYmmv4`)d1hW4&&B6?tby4f%8cvTBnw#aw; zJA+p|$C|u1c@__Nnr%x+CG%Z;nNWzcoN=J_lzGftD@$V}mbD+{VyEqudzeNWgOEa# zM#H{4nTh33BFWYsbxk}$4z1!RQyG&}JAQ`lU~dZD5qjr#<4~Qakr#4_DkV|e7ZZdo z&9K`8B5ru062Wvu$^^}W5{F^rtxw9m>=(0crAvc%%ah%oG(^U073BVoJ6Nnwz>Cu{ z$y`#Qv#aJo@g*9?ynA(nWsLjepM8aIQ-KT>etVcWatCG^Y{)+uRr1F%`+(Aaf`)=n z35^Rw+?{zSquMb+y*&mc)sNAgSDtU!3Xo8kU|?Uqfc>X+o`RDWy!wyP!3hd& zlL7K^r%HZ*pEuqucI>GOBzZL=6LCRsccsXL4s%zkwRNTs7HoTz* zfr;><+*Z6lA_QDncB<|5c6f@89ur-Qig6X<1QY%uj}lT%{&8wC+s=7CQSfZ_#SCD; zC|4MtDEV@mUZO)duWQ-0CH5)wLMCDQtZ&XN&N7;cm<++;8I;Y+(nw?}W-Qt@xz&{V zAfL5tji&28TH3?z>AhG8-LAxLC#s}tLIGQ@H>y~^rrv^(QVZ=XQ1o2-5~w`8tX=h7$IJ2i9WN|z-yS4q?u+L6^2RGX zQq81eV#2&sLld5iflbVuC^Il#Sf;0Vg_2B4slCnBk4S0#-t9GIP_b&G` z#sjbsRmOfyj#`=J!%`qgyM-?!zDx$h;A7%)M<{h_sG2AbQX14Z)+A9LKWO_lk-Z91 zn-?>f;Z!{9`ldA;)KsjPzT}wWzKQ_to9bKMVg;x+iWKAvI`dR3w|@g=5*LwBaJFwa zsEB7fC(naZT2{64?7!Q(lj=&Ij&^pocj8}%6{@>ADAioNF9Sx=?AVlF_5Hr=tq)%l zeCY>2iDL`EI^uPA{l|*zcam5nK?cU&t^csok9zlesi6!NJ?bc-tV zATqpHV!fcTwFi_)4l(2pDDW|R*vM!|vREV!D6Ab+K8yBas;g}`*pGx?JT2o8} zmqIL&Q!F`EgSvv8TGd~0h}8mss)ISr(ER>7XK2`izK)5KS-|R;aC%yFr=ccNN|>sG zI=Ew#3?V1+TThSOqYzJlOxK?*s)^R%ws_nmQbog%l|YI?$-E?1O>e?PRVf$g=+<<> znQpF$$P=T#@a*hJcdJIp^o;1$w0b^UE@MBQLzWnSrmeH;>s*JRn4+a&EC>)FM;&a z_zhL*PpXHh7!pkFW)nnU{~mu`BV9F^D-yxMx_;kSW?uw$h#)kezh}~TkAgXrFz-%M zEPCbJZ`57)5@2BQ=jSB6wtG)t&OffY-HP-b|Eg`BO8We)Y6nb44(r&hzx(xQU^^+{ zf<|yNHdQ}ZSQFB`bom*&CA}jzm;RU;f{61X_f?F;N{euJwsR<;RKYqmz|S9%&Rg+T zRn+*WjYV47VP1u6O^`<~rq*h4Qe}!i0YWngg)~iHw0wzNXI#RacFkuR(x@-H_8ooZ zm(f#&UDzbMP#>f{IQ^e!2X3V$VT^RZ9JPhI(RIO6J4VO7LKypcHH+H2gQYskiodhv zKo#jO{Tg$ApZE@7kBp7dg%@@W^^9R|-y}d8X3}hMAH3~=K+~md`@O&0jIW8pQ}X31 zgRbSa)NH`hETH!Z@#(#HA)L$!_s(GDD&iCMGUKGhKaD0_adqOD#hkykQ3^WiCTnlX z*;!p~nRV6i zA=G#H$I+E%R7aI933BcJve6y!GrdRal&%OBJu-V#<2RT@#@%{9Me&S`k$>w>wf{_a zh(>5MTC9H?=Urib$YGD;q?d{rlKLT|h`mTi-{h-kF{Wuqt!;J0k8>Wgm6}Uk5ukZ~ z{vRek+W$=jmmF7J5J+HP&Y+22JYaJeD`2G-x5w)j_D~988?>gbKutC&%si#yVmGd| z=;gG0Y+E)HODeSQztUqfQ2d)+Vj3}`YH7$pw|_RtjnC~^zuWD2f2`5UcR%BWc_M{Z zK9?rKv_hUut15*)psManz1nH~V!r`<2Ia>G>AawT^2`EMrt#(Tnm%@lJ`h=|J*v8x zruzPRnL!th4eCO%p;NkVsvP{9e0Qy=Ic}Xy3Hn8U6iP3Ba3JJGJvp)Bt*g&@8kRi< z(WBg8kx^4zKK_dMb}RDAW>D>>qc~kt!k9GSlhQ-K=*bSvExpgLx0uGdeKHg?kl2YhP|`qb0~#tAJN z1l3Olkg$6rF=E|3JKf;>|KasVi^)2j+k+V_aPNntY>uw;W)wDo7A7g!GO_P=ES>52 z!D(bvx*+kssV#)9n6aEeUuU-BMRxyS`KO;g(T1vw^NHss^}R$6=i#ZvI;(tNz2L@< z&wzV~utNI4gVgW1vRs`Rq;DWu^vh9j-+Ql7p6u%7&D@mo{V{to)MD(q>Oo$!a2Ora z3Tm^@iLp}OASR{1Umg6&DeRY#_3aom7>HBtq{Z13Qw5oo{ySrrT_+LFF zWCDm3rBn9|Y^=eI6xJKG-5TpV!BNtBw{YO>9|x>h6hFVewaCQx!b@$4#dx5Zm1_1r zq#c4INGsOrHxsG${#Vi2LyrA&w+T8enhwR`#NiF+zlMK3+@kcIU$Gpd#`X@~|=uO|XTKO_k8+6b~93jF6XJRK5+ zTY%x4!^(jL)W^`FnNuF&FWlUXh2W$@2h+7s6u1m*6`5|v z4E*>%#J176{HZ`Dqe9@|puEurtTc{Zh+#;D+iKK#`H!D)y`xQeALAg)F@EqLpn@?x zaIwaYu>f#L&+7w_;Dk2hb;C0#ZGsiN3p6?*4y~h_XOsp)nM{RKNdpe8$Ee@=K{b=A z{}xKYr&tNJO24q{2KWMkU?a)25VtW1Iv#25-^Dh?o&-Q&r-Tq0x_Zk$7urnYcLH!g zDN|$;0(Cgq(@$+KR$29b8eSi&!&}v!o^C!l`tl+_cnCf{vm^ubs~Q|Zw+Fy~+t>Kd z5T;){x-=LX3``yLIz<5NIQ?763b-~ZIP61Z(oNJehBW7pPBdK&yn>y*7-NMWwj``! zuSitSBwhaO7D!665ZH?Dk|p=`d}}kN<5PTt#xEOUuA5SH#^%X2Vh&%Pb7p(dhEi2ikB&A((ps}*{b4gps`zZ=L)2y>13*R@R zv8HwZY;Kt5v@26w6F^^7k-+j6L(KjKYh(3~aA_ZA7JT>K7#7r#BG3mfg1J9oqJ9sf zD)0~ew{1FD#HtCrtKTwZg-79&Zk%7O zkP1n~awpQOgtA;l(|Lid&pbC7frc(awHEOT|6MehL^AjqnlTe2%O!qhH>SV)X{ zpG@Z%&AkN{yGN_8pkVhRg03otxwvX);a^4Y;b(Y8Lhyq_e^jPPxnzQ($YfZUQg|2U z9_FW^@acEg`>M)xDVDNFOAOgyQHtgEdiNzlGjuMv7F2iWj`C&Zq7a0zsyFNM^4&Pn zd{rw1&KLpDc^zgH2^jNNP{REbwRRwh492+fu9ZzI<^N8l>i!CE%Q<1cz7V z$i_sYrs@$BI{O8x4OPOn6D5l%nc|>iO3*}Juz;4h85>ik36m0O>2LF-5nsx{!HIGf z0*xZTv=!~*Wq!Kn*Y6zcW*+MT@w&tK`gOYu$DoTe(Qt)EqJc){Xd0$^_qoi^FrjWC zSpB975=UKvW`+{vrpXwsYS>7J%3x)^Au6VFguRy{4}mZWN|WA^88GVW45S+?#gHTL z;tm~uRsS0B5H2QAi=ckFcTGM~qtgn%Kkx_Wvxc%M!e;?9Q7Ju>w4UaF$DK?Ub3<*4 zZs^vyzP;`5!Z>8Q5+Wmx7%EuR+%@8Ikq z#@S`{Hd-*@4-eNyKQaMSee~amYR2VdYDz@ea~&YrKQQ@MUK39`G6GjNX>+;`Xgo-7y>2IyVsu!Oy z$u8OzhAyFz@{8u{7EO2ago_MRqYr)Y84dh8^02u%nJ+L}e^x+BWQIci9r2Mf+DIxG zX0@V2`bLNgxjZ9kJeo2X97<^A3zSAfM*%x^c+Daby+ctL4LC3aj zvt!$~Z6_T~e%G0q^Pe*x_s4y`t7_GHs_MDHuT)p-H>#P4ye5)w@Svf`y=Gc|gXM?p zk=y_S%{ilsDBA*X0orkm-$2M@S~Md#0#MCc@p*EV5F09em~zl7gdQ1_(8$C_nlK(} znuuh+Ck&X+eKjrQ^qc(d-V3TEB$x`#?9-uNX`lZiP5-9?MW`Wj^!@n7D<@Vi(1G!Y zg~}#wEC>Toq$IO_^j|y(UgD@{CX;62yu(%*GB{>3T*{8T%l6zmY8o#Wid#3gD?eoA;T_F~rG#xa(C|GabE@8K%jO9)k63o_8|Ax&NT+lb!AfK z?%?_V#l7C*-Cjc^lm>L0 zUda4DqDF0>Zm^xh{H=hd@2C!ekM|b=!fgOHzZVw&=ZT|9$E-Ny!pA6w^Zo0B!7vo& zG}hWqj9>?-Apzevj`BYIOrv^OEB_vZsq1`OkjgI9K`D&AAN%GO_uDzq$H<6aii;2t zg^rIaK8RZ76gJdXmI>ejqGCt@i?|EfK8|OYKFEX@d==tbaG*F4A1VexYdHLd$@iyI zI$NY#y5pDGm+utoI@qUDm0ajo67c9l0No%t{)TtW%gMc3^tJU$fCP-zA1wkDvH;Ey zMMyXN4()*$lj|?Gx4q7{wo3Q=z02PN+DG+$>sxp;WUtzR6Rt`0rBzJ&(g73@^>6Mg zajx|n2JuE^Ke8t@)1!~R%-S$dT?-&McuixoK);e*Gl_Ul%EW${7we8<4nv1_R+68? zF{=gIrOwFogBEVB6cT`Gbx@Is$HrOhT?#eeRWC~nVK3<1cFXj`Eks~_bQU0T*SgM( z5_vSteIV20v|nxjd$g@y^1uOh!k06kP3DEOL2x)V9~e*%V6)tuZLVKX?Eo~bJ#6;E ztNUQF)+QtA!mr$c*6u**)&?1OIVCP~VRi)}+)WAG7eG?xRsYkZ!Yt2~R8vtVk*BVo z$jTVSjzG>gGfZ05Q=}a|+i2;NQu+XoMqbMot9|SnvKj%r0msDb;cIh~co=NrcdZgT z>gper7B% zjE=IZ)R94#km*9Cg(Jox$Fj}K?m2VSfy@UK(Ug%m!jUhVphdE1u7LFcG&PNH{uO)w2ETa19XE%F{t;P-Ai7t2s1E!u|`5~yb!<%|T&*y}0XNJ;;0 z-aP-dRIf5y<4;r>Jf9C0eb3WaUXb3Dw&cPtKmovsmPMn3y1}JLiR1B>@61L%Q z)Ex!_QmLN6J2b1nr4uD$1Rb4V-%KQ37m&*dTmRjuiv)?cc)A1r7DQ%e^o9qdWESSsMDdMtz$^OJ4u(qGql~0@W17Ow9T};V zAs6x@MJ1a-h4pRB>j$~w0Uh@RBmZPl%V~~uxM`}UN0^6^PIl~&ul7OJ{RAYfm9-FF(N2i?>-~CHvweNyo#I`W2bQ| zx(>t{00sTZ$C}hLKgyDumdyH(!=@ohrmIihu;gau>6BCq?~T4R*CA}K|L-ETSSgx# zna4`biJ~-=HZka8?r3u}{3jKZ0CT;p0Pj5nm1KlKX(Q70xOJ%m1n|Q)TzS0OX4Q=d zkQ^YQ>3B&_zo^>-QvIibaJYmwN;`UR3sz)GfYlh3qwxK31|h9{xHv!Dx7Qd^vFk# zrmS!Ci8t_+?VF3;)Bo@@gZ-%`%6O*<^L}(#o*$!7tREfL&DF}5QPs>dv3d*Thj;Sx z0{nsMH9??+Bc!(c;8=elgZ;qHEN2HGPKA(QYIqy4B#WeD*6D0NeL{F)2n3rtHw&t#_xWL ztQhj*HO}GnnXL*xpB!#+He@XC^btf8NgaEQz`OmYl32;rbr)iJFZ8nwZ$v+wA=$10OR9n=#2|NQ z1VSIhv8&DUZ?1Q!}K1(b*f4YNN(YA-z`zzHuKhI*`>A(@(Gzdz$9zA-7v@JR5l@)AyYhExZsSKa$_lK^|Ukr|A z%O9SBM(^~hHRG2&NkR-Auhubid>UvE-v9-F?Q?zUk>O7rdO&9&LuZ}bDrFzuKd+_| z?i23ikKHDF`AteF7N=SD`IUturFearbp%{b+m_N8V;*fYCTtW+H?{${}% z-lx?RsFINh>AIdJTKzZ1u^7z6Q?tKFE90E#-YXHXiwP)5?I0p)apjN)&WKg3<=}}m zlyKP#lQ-$!r&Zq#A{|evdu-6DTMX+i!whNu1^0^Lt&p#3N-3p(##)#ov2z^kOu&yb zx#5h<#3wU8extYe6m28{(*T*Ck*lJ`E|>pEBtUH|wxA^q`ru-@Doi-E$KnUOnFxm{ zgY19E#Ru>-&(76Hh^l;&`@0ZI=i2luzx}0vzVm<3SR0w`G!=hL$bvC}fDr!Q;I%TbF>_|H zcDd4=a#$2c>p7{#0x(>L>UH84DN|1r%+EH(O9}xuL!#yX;mc%OCGg;t7c^3+9?Vy4 zRzpVl6y#GCvtCjz7fuFx$|Z*8dononVKMRfs6RuA^FGsc=X>bhx#{w9zgey4a*pae zfy|=gq|D;Sb`sJh2<82ou{(zn>i`9Cp&R@2)h{Is3JA7WG=h}8eayOPpfVzmB8`P6 z8HuW@(H(CIEZ}Gr1J{DFOo$^!zARkCtlDzU%9#MaC=Xu#5LB{*>dp>8%dD|rkB3lK z*mzeLESyTRZy=6bY^+4nz2CCwy`lWw{~ZS%RwbF}x=%!QQ@RI%iux-;h~{>Wkr25Y zjniT+yd+RmjPgB$@lYR!=~t*=V%xqv6uQ(9MdAb|Ln6WfA#-QV48<1LlMi_b^)5tJ zfl&WnZ^qO{$$#dwDq1^Qz{gbZK~Wl&G*?1xWczuB;uYkH`UfO{jV#D0aa0id$Yz#_ z!vSVcXQ8}p5(X!oz8vy<*~2h2mgcC{OO)CGT(U&70-tjZp&@l=Aq2_R`-|8~0&Ik^ z3V8|tLEcCZ4es7V*H{8I^FD>^LF$HEbMoo+O6ocF8Y_6sP%UX%64hm5OLvGmi+QCDrWwQ%CL;EY z^skT zW+*SAMQKFL0tkDeRB-MCh$im~bmoplqM~Mf1cRCm{bo5ceTe{AI~mjREGhA1sLtUM zUqO$uEmkk%NRV{qKbUbY))>i~$E@8I`)nyid#+Q$_%lW8ATEj5ny)&uk}~sZM<1}f z%^%*i>T*~Bhj{Nw1`oYh@C2NKpgm9WY_l9=5Gpw^b)BmxU7R*6AQ)71J}d{2EFoJ& z?(87Ft)0WiI&NQ9ckK%X#*!3wV%hdtQuMP2MLoY0c;|mj@KeIpM#GNWLiii-pUuMC zTvQDUHd8dkSzXR9>AeS>v179e@+iGU+t)f~a1Q_g?wKEJmyBUA-Dvz;V743=0Z<<` zZ-_v)JliAqn;BqBNskXwq1tRx)8OV8p8@c%@nrBdgJ#N>5|Y_8%1YIk?Ah3LHb+;R zA1L3xz=7BJ#RINJIxYUwv?6aJlboS1>_I>X9nG*PNeJ zCVIaGjQm9a4@Iz37KO=1YO3uf@eU16D~3~95)^s)`iql8N}Z0Hwq5E`4h$%8hdp|| zH@`pyWG|V@g2=!n$4YtPUGyWmNXL(D@&4RMa(H~U z*})Z{X*egz`xz&WzP02 zX+6T5y`%jy{h=bGvHdiHdWbpGuCs+DJxoXxlpv04e*^NgiWJm~_mRki*IrAXG7RR) zRK+W$js=y%Np66=X3VuHC8>)>u@VXJxxcr~f%x40*$4Er%pw>IzKH%%ahnlmP5b$N zcD2Rhkt@(qsKkS7`VcGs{j*n@wggt1(XXc0K1{4R8+9h-qL(CWQ^YE^p#Lr8H7R$S znffJsS$DyViQ?eNhY0`mpFhn1J^Axrokl;7t*-x5rz!sQ%m2gPCcd1I0j@yQ)5PN0 zEd$`SU8B3egz_a5)5=Bv9#Tmez4v&OAxfkK8zTB7n&*T%Y4b;mWO{>HP59PDr1<68Ob0U zewG=w*w9GgCa?XfMGf1h2?)0`r<1+7urKpa?WocOscFWX^bNQyO^{L zYZ;$ieX}cOQ5A>8s&OjMdW|XX0_FYw7dtq0>^GTNHV^eoOn(UXm4*;N4|dU*)%kb( z{-(02VEVWa8!$X&(p|X#=pH@!O9Qj5X1Np2!k`LGaL!^;GQZm83iyMftf4iUc^@;~ z-<7jycWbCRZA?urPXRoxgm*vZuY&2d;_Fco#md_dOQx|ek;f^CxT}2)7|Zrm<>rX( zpFl(quv9Dgx^>A+sas=Rt8^#X-~NO}tDAe>ka@jx6DHd-El@BAe4(>i#K-OMXQ4XO z9M&{D!ux&AgVP+&0^o?DTK7KK=oa}hU_gi5z8l>Wrf$jL6_gxh8ZwqTHDW}sRA5*1 zNiUN|m9vHJazi+MfUn)45X_rG`hh24B<)7NffC_J8`u{N|K8=zc}`r6_$NX_!Pd|i z1WvX@vq4Hn|0|QP$nLT%@$8(bd0My6PoVPluT9-mMPRRM1V}sJo{Pcf2s|d226G#c zZD;2U`y!=$N)~Ex?!=0QRY9Vd2&WqDb}XU%rae`LwS2%sZ&i*2dBkTx^)N=o6wB{+ zUMXPDzYi^}VepCELR|z=S8tp^OD$0SSLeVV7b=^5{ATRHu!>;bi0x5-C%IpXo~9GZ z7K@a6sCqo|2pH2oH{H}Nc4^78Stm_vZx4gh(&93$&_!1a8vch-yFk7>e`vg^)sS7H zsb(()*O@E*00cRC{%*bldgHi9 zC(4lmLvnt+$Z7g{iNc()2zrP#x^(^1Wuv@g7|CmNv!c4rkfDGg6%#Q)#4IF!M#;I% zk8v};AOJmOab+7I5L;C$O4_*J+BpIoKryjOy+mXRz z^602EmSv#$oq77}PKs_`Y10yO+*79da8S3|8HyO}LIbVSF?(Dlm{mY--Q z1bsp)s}<%Z)ojrf-ipO7M7l|&x?IXQpeP+f!1a~8bvkHKU7%PChE-Hp2O;%XGyQ-z z;;juTgh)^h)26!2KRCUVg~nyHrf;w`5kc1Uy^F!daq_gL{(A!z%|ObC5kk(Jy~Ok| z<^SskyQL(KZ8Md50Yu(d+3p&>KA5SjpFFI1QnOTe`oRuAJXS}&6AU@+-Nz8H!aB8QO8pt>S){(!?kv$)WQD&F%*wJ3`eNk z^xfPAQ{EB2>{pKvxYV^mabRy2-^jBwGezU99+-AAJ^idh@^#&v&j0}XJ2lVO{E-gd zy}~eGMqUTqJjpIUz@x}dtqjqo`uGle7bq5NmXQo!U%&UKGDigh^2FKmcUe`qjM}G%T5S)+tc6EQ2Pc!Ez&LU;lGJT1Edg&QMl4j zW5x&V*GE+opLNIY8YBRl5yEJD+C6J=eo~M=$brLy3HZrsGtc+46Vk8Y%jI|^xIqK> z^OzimriiA91YCj`Mxsr!D}DV|$x>!rnS+#5M5Z@q)fycu`?-W8I}Sqvek>hrSOA{~ zL%_rCmqw~rXFHM%zCqTrcgqbqSKOCwT*5d|C63DhKaS>=4<%FsrCx<(>zas4*Kz zVS?gF@fO7ZlS#uP*%Zk6kz1DfEd`@a&ASBSHNITrv`A5XxhuQ0IsPvU$D>Q^Q0LIKx@-Lkhl~v18ELpOe8rBH7Lst7g05Yx z|EoBOvPAJbXY3baofej6A+Xq0(|(}2xgvd7NR4SQU8q#rFA*}=nyCy9N1(8j^DvnU zQsxHBPThf1>TN~Z$9qt+&`gdREoj#;CJ^Ni2cMm+D6flRr5VaGx z&$v+r?$fyd9v643ul|!r8A?VvYK#zdMtg)G#mIJ+M;MLU*Tv2a6Mg1L%}@)Pq_Up4>$_ z<6$f3r5q$gYv>M-*|Mv$?;x0!jutti%ljf+=hK~@OKPH@Toz2lq@$kuob)vnl42%% zb78h%QqN210Il`a>EL@tTZ?I?_%bLhK!6CY-6h1pm$F1n!M}c-L>%fyaZm}yeKWZ= z+wbp~;apV^-cSO;7?4NfRR>PL`vGSB%eCg)-EM{ZoYanzV^yr_R4Y722p`2^H13P! zuEF(bB_TPoWoDTYyBm;|vaeO)ZVkF2A3-|LmjpnifT@BF8E;u{8Rd!P{;2$#?~y?; zgFfbRJSpgWwqXnVQL*Q-oYeuwWP?n4H5n9br?D&mZ6JH+5OO3!i`Nru@UgmO80L>n zIO|4{ecxZ4+h5Is1Qu)4@^tA5S--W?q=UG6&@QBZJJW@)TUGM?+%s{~qReZRFX4nV z*9vA0fRAMh9SkIb09Wmv8uj1a>H%@Gi)=Z!Xln6JAtrx;B|E`<$L|a&W|V$hbq0{u zBUxbZL4RSNJ!hV+$+qH6oc<)8Pu@lOeG z@=ge{v88L>MlZ#iwQ{7cJUn#lygVd!a5JNo+#yI5;D{i=+zl{UP^ zc|LvpCzSR1e_)zQRsqboKShRmBITnIDFevNkG%5Wf7#a9vMgwG3jM^X-O6#vkl`4J zcm1B_M?kZjSouhYZ2|}Y^Fme<(w5t}=G2XgDd5=ngy6+T9ZS4@!~l$fya!73$I#v` z=1A@M^uD475rQqfX`5i$jVK^ zH=}uj%=5OC*8j?8B)SS(dTJq>Mi-b624qyMC zIH*Yyv^Si`z$9`+*R{lxodjp!M5g(I)_xItJQ|?i@DpD%JvoYH9ksBtZh@``*-1(> z^v=ed`szU8F#_h&26RI#p^9ZpUO zY$-`ASV3{3DE-)ge%D(e5-c_^iRuN|x1Uw~HA|nAiLCCP@~WFZ(lQJxW9)?-H1GW# zBMl&`aQK1|XA@C@y&9j?4IW2uaftc@V*;LdZfL-fE0x>dLi7C4{E+czrDfK%-tv7k zsmxAU_rP!KsrF^)WImwoP~PQ0UYpdsIMPoOxKvZAt;@_zlZllqJJ?Kd-(P9GU3Y(k zlFH2bq_nf#+5PGLM@fI08yYYN@9i@~=sc1@JTJ zKp2Yt%F+;i0{#z4BH7JJ-0J7vE%-@ZNdJ%eZ0c-e!I0?ph6d14bK+hN17jA))y%h& zu@M)B7H>9{C`|dK1Q=ci-RWqZ(P5QHF5RH@jR}9L^U>vHzloo z=D*2tLK(B-oqRx3Di*DeRAH&0TTTcK1qX~e()w73q9J1LnA42< z{n>!gMtVT=)N8-qBz1B{Qt zyziY8<&}ZW@T17023@QRm{1Ml*Z;!-7=m`kc>c#dS@UN(?th&{z)v63(ZSZs+{)JW zrx{|W(igMvQy9L}hU#oWaBP7>3JcK|MI;M4?uK%quS%Je%E&)Y z`mi`0b7d|?^uq8{+ZjznTiR}DKU5-?$F|^Rap&-Es%>!eHgn&CT0lXs%~T+l zV8%MK$My#bK)>DtZa;Cv2SbtWGkJEW@AfhqxBC&U2SVKTj>F`Wz-}+t5}4BC=t8Z9 z*)yllg=mTkJ8`*HR^M+lq>_H`tBL3CqvaR}r($1H%#_@XX9!!)r4VJ?5eg^7WZh2H z1Le-l%qT9gP(+o52>li)&)K^>RUj|>t=JGAfUg>u3DdO$0H*+_{8+>G?9y{YxyDy@ z%_mRNDU~ePi-AdwtQI21zw^|rZJaBi5PCp-LLIsyx-`N_JnNY(#m!I6&=rp@ZpZ1& zZOM=w*Ig`(WMsY!=#FBLFE&0rHz1hEhCRR8V#cKnzuUwQ$%UiFL?xu_RyTc2i<Y z)4c$JK2gU4?4;He%MA11Nc@ayHeFKls?*!2@bG`GT3ttc$5^#7eywE8d-vtK^C1j) zuAC81!;U}ZWQuEYVT2+&DSE;#aF4I19z#rz_^o?s&T8^DTGy9>FNX`%F

    J7cmJh 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

    -%qbXrk+xq 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 delta 100455 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 diff --git a/build/commonjs/loader/ImageLoader.js b/build/commonjs/loader/ImageLoader.js index badec06f..950beaa9 100644 --- a/build/commonjs/loader/ImageLoader.js +++ b/build/commonjs/loader/ImageLoader.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/loader/ImageLoader.min.js b/build/commonjs/loader/ImageLoader.min.js index 23da114f..b94dc37f 100644 --- a/build/commonjs/loader/ImageLoader.min.js +++ b/build/commonjs/loader/ImageLoader.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/loader/LoadQueue.js b/build/commonjs/loader/LoadQueue.js index 52c61214..38de477f 100644 --- a/build/commonjs/loader/LoadQueue.js +++ b/build/commonjs/loader/LoadQueue.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -52,6 +52,7 @@ var LoadQueue = Class.create(/** @lends LoadQueue.prototype */{ *

  • loader - specified resource loader. If you specify this,we abandon choosing loader inside
  • *
  • noCache - a tag that set on or off to prevent cache,implemented by adding timestamp inside
  • *
  • size - predicted resource size, help calculating loading progress
  • + *
  • crossOrigin - Whether cross-domain is needed. eg:crossOrigin='anonymous'
  • * * @returns {LoadQueue} 下载队列实例本身。 */ diff --git a/build/commonjs/loader/LoadQueue.min.js b/build/commonjs/loader/LoadQueue.min.js index 0c67f662..a5ed76a2 100644 --- a/build/commonjs/loader/LoadQueue.min.js +++ b/build/commonjs/loader/LoadQueue.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/loader/ScriptLoader.js b/build/commonjs/loader/ScriptLoader.js index f23b769f..7996a35c 100644 --- a/build/commonjs/loader/ScriptLoader.js +++ b/build/commonjs/loader/ScriptLoader.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/loader/ScriptLoader.min.js b/build/commonjs/loader/ScriptLoader.min.js index 6eb87985..32751a12 100644 --- a/build/commonjs/loader/ScriptLoader.min.js +++ b/build/commonjs/loader/ScriptLoader.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/media/HTMLAudio.js b/build/commonjs/media/HTMLAudio.js index b002d593..62df14a6 100644 --- a/build/commonjs/media/HTMLAudio.js +++ b/build/commonjs/media/HTMLAudio.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/media/HTMLAudio.min.js b/build/commonjs/media/HTMLAudio.min.js index 24ff3782..ff92463e 100644 --- a/build/commonjs/media/HTMLAudio.min.js +++ b/build/commonjs/media/HTMLAudio.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/media/WebAudio.js b/build/commonjs/media/WebAudio.js index ce7fdf08..4ca03890 100644 --- a/build/commonjs/media/WebAudio.js +++ b/build/commonjs/media/WebAudio.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/media/WebAudio.min.js b/build/commonjs/media/WebAudio.min.js index 92e3d224..5aec65d3 100644 --- a/build/commonjs/media/WebAudio.min.js +++ b/build/commonjs/media/WebAudio.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/media/WebSound.js b/build/commonjs/media/WebSound.js index c9d7496d..8311f2c7 100644 --- a/build/commonjs/media/WebSound.js +++ b/build/commonjs/media/WebSound.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/media/WebSound.min.js b/build/commonjs/media/WebSound.min.js index 91de03d1..a688a1a0 100644 --- a/build/commonjs/media/WebSound.min.js +++ b/build/commonjs/media/WebSound.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/renderer/CanvasRenderer.js b/build/commonjs/renderer/CanvasRenderer.js index fe22c2ab..4d5dde0e 100644 --- a/build/commonjs/renderer/CanvasRenderer.js +++ b/build/commonjs/renderer/CanvasRenderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -20,26 +20,26 @@ var Renderer = require('./Renderer'); * @requires hilo/renderer/Renderer * @property {CanvasRenderingContext2D} context The context of the canvas element, readonly. */ -var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ +var CanvasRenderer = Class.create( /** @lends CanvasRenderer.prototype */ { Extends: Renderer, - constructor: function(properties){ + constructor: function(properties) { CanvasRenderer.superclass.constructor.call(this, properties); this.context = this.canvas.getContext("2d"); }, - renderType:'canvas', + renderType: 'canvas', context: null, /** * @private * @see Renderer#startDraw */ - startDraw: function(target){ - if(target.visible && target.alpha > 0){ - if(target === this.stage){ + startDraw: function(target) { + if (target.visible && target.alpha > 0) { + if (target === this.stage) { this.context.clearRect(0, 0, target.width, target.height); } - if(target.blendMode !== this.blendMode){ + if (target.blendMode !== this.blendMode) { this.context.globalCompositeOperation = this.blendMode = target.blendMode; } this.context.save(); @@ -52,31 +52,38 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#draw */ - draw: function(target){ - var ctx = this.context, w = target.width, h = target.height; + draw: function(target) { + var ctx = this.context, + w = target.width, + h = target.height; //draw background var bg = target.background; - if(bg){ + if (bg) { ctx.fillStyle = bg; ctx.fillRect(0, 0, w, h); } //draw image - var drawable = target.drawable, image = drawable && drawable.image; - if(image){ - var rect = drawable.rect, sw = rect[2], sh = rect[3], offsetX = rect[4], offsetY = rect[5]; + var drawable = target.drawable, + image = drawable && drawable.image; + if (image) { + var rect = drawable.rect, + sw = rect[2], + sh = rect[3], + offsetX = rect[4], + offsetY = rect[5]; //ie9+浏览器宽高为0时会报错 fixed ie9 bug. - if(!sw || !sh){ + if (!sw || !sh) { return; } - if(!w && !h){ + if (!w && !h) { //fix width/height TODO: how to get rid of this? w = target.width = sw; h = target.height = sh; } //the pivot is the center of frame if has offset, otherwise is (0, 0) - if(offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); + if (offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); ctx.drawImage(image, rect[0], rect[1], sw, sh, 0, 0, w, h); } }, @@ -85,7 +92,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#endDraw */ - endDraw: function(target){ + endDraw: function(target) { this.context.restore(); }, @@ -93,9 +100,9 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#transform */ - transform: function(target){ + transform: function(target) { var drawable = target.drawable; - if(drawable && drawable.domElement){ + if (drawable && drawable.domElement) { Hilo.setElementStyleByView(target); return; } @@ -104,66 +111,72 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ scaleX = target.scaleX, scaleY = target.scaleY; - if(target === this.stage){ + if (target === this.stage) { var style = this.canvas.style, oldScaleX = target._scaleX, oldScaleY = target._scaleY, isStyleChange = false; - if((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)){ + if ((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)) { target._scaleX = scaleX; style.width = scaleX * target.width + "px"; isStyleChange = true; } - if((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)){ + if ((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)) { target._scaleY = scaleY; style.height = scaleY * target.height + "px"; isStyleChange = true; } - if(isStyleChange){ + if (isStyleChange) { target.updateViewport(); } - }else{ + } else { var x = target.x, y = target.y, pivotX = target.pivotX, pivotY = target.pivotY, rotation = target.rotation % 360, + transform = target.transform, mask = target.mask; - if(mask){ + if (mask) { mask._render(this); ctx.clip(); } //alignment var align = target.align; - if(align){ + if (align) { var pos = target.getAlignPosition(); x = pos.x; y = pos.y; } + + if (transform) { + ctx.transform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); + } else { + if (x != 0 || y != 0) ctx.translate(x, y); + if (rotation != 0) ctx.rotate(rotation * Math.PI / 180); + if (scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); + if (pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); + } - if(x != 0 || y != 0) ctx.translate(x, y); - if(rotation != 0) ctx.rotate(rotation * Math.PI / 180); - if(scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); - if(pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); } - if(target.alpha > 0) ctx.globalAlpha *= target.alpha; + if (target.alpha > 0) ctx.globalAlpha *= target.alpha; }, /** * @private * @see Renderer#remove */ - remove: function(target){ + remove: function(target) { var drawable = target.drawable; var elem = drawable && drawable.domElement; - if(elem){ + if (elem) { var parentElem = elem.parentNode; - if(parentElem){ + if (parentElem) { parentElem.removeChild(elem); } } @@ -173,7 +186,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#clear */ - clear: function(x, y, width, height){ + clear: function(x, y, width, height) { this.context.clearRect(x, y, width, height); }, @@ -181,7 +194,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#resize */ - resize: function(width, height){ + resize: function(width, height) { var canvas = this.canvas; var stage = this.stage; var style = canvas.style; diff --git a/build/commonjs/renderer/CanvasRenderer.min.js b/build/commonjs/renderer/CanvasRenderer.min.js index cf53ee9f..1c586804 100644 --- a/build/commonjs/renderer/CanvasRenderer.min.js +++ b/build/commonjs/renderer/CanvasRenderer.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ -var Class=require("../core/Class"),Hilo=require("../core/Hilo"),Renderer=require("./Renderer"),CanvasRenderer=Class.create({Extends:Renderer,constructor:function(e){CanvasRenderer.superclass.constructor.call(this,e),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(e){return!!(e.visible&&e.alpha>0)&&(e===this.stage&&this.context.clearRect(0,0,e.width,e.height),e.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=e.blendMode),this.context.save(),!0)},draw:function(e){var t=this.context,a=e.width,r=e.height,i=e.background;i&&(t.fillStyle=i,t.fillRect(0,0,a,r));var n=e.drawable,s=n&&n.image;if(s){var l=n.rect,o=l[2],c=l[3],h=l[4],d=l[5];if(!o||!c)return;a||r||(a=e.width=o,r=e.height=c),(h||d)&&t.translate(h-.5*o,d-.5*c),t.drawImage(s,l[0],l[1],o,c,0,0,a,r)}},endDraw:function(e){this.context.restore()},transform:function(e){var t=e.drawable;if(t&&t.domElement)return void Hilo.setElementStyleByView(e);var a=this.context,r=e.scaleX,i=e.scaleY;if(e===this.stage){var n=this.canvas.style,s=e._scaleX,l=e._scaleY,o=!1;(!s&&1!=r||s&&s!=r)&&(e._scaleX=r,n.width=r*e.width+"px",o=!0),(!l&&1!=i||l&&l!=i)&&(e._scaleY=i,n.height=i*e.height+"px",o=!0),o&&e.updateViewport()}else{var c=e.x,h=e.y,d=e.pivotX,v=e.pivotY,u=e.rotation%360,g=e.mask;g&&(g._render(this),a.clip());var p=e.align;if(p){var x=e.getAlignPosition();c=x.x,h=x.y}0==c&&0==h||a.translate(c,h),0!=u&&a.rotate(u*Math.PI/180),1==r&&1==i||a.scale(r,i),0==d&&0==v||a.translate(-d,-v)}e.alpha>0&&(a.globalAlpha*=e.alpha)},remove:function(e){var t=e.drawable,a=t&&t.domElement;if(a){var r=a.parentNode;r&&r.removeChild(a)}},clear:function(e,t,a,r){this.context.clearRect(e,t,a,r)},resize:function(e,t){var a=this.canvas,r=this.stage,i=a.style;a.width=e,a.height=t,i.width=r.width*r.scaleX+"px",i.height=r.height*r.scaleY+"px"}});module.exports=CanvasRenderer; \ No newline at end of file +var Class=require("../core/Class"),Hilo=require("../core/Hilo"),Renderer=require("./Renderer"),CanvasRenderer=Class.create({Extends:Renderer,constructor:function(e){CanvasRenderer.superclass.constructor.call(this,e),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(e){return!!(e.visible&&e.alpha>0)&&(e===this.stage&&this.context.clearRect(0,0,e.width,e.height),e.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=e.blendMode),this.context.save(),!0)},draw:function(e){var t=this.context,a=e.width,r=e.height,i=e.background;i&&(t.fillStyle=i,t.fillRect(0,0,a,r));var n=e.drawable,s=n&&n.image;if(s){var l=n.rect,o=l[2],c=l[3],h=l[4],d=l[5];if(!o||!c)return;a||r||(a=e.width=o,r=e.height=c),(h||d)&&t.translate(h-.5*o,d-.5*c),t.drawImage(s,l[0],l[1],o,c,0,0,a,r)}},endDraw:function(e){this.context.restore()},transform:function(e){var t=e.drawable;if(t&&t.domElement)return void Hilo.setElementStyleByView(e);var a=this.context,r=e.scaleX,i=e.scaleY;if(e===this.stage){var n=this.canvas.style,s=e._scaleX,l=e._scaleY,o=!1;(!s&&1!=r||s&&s!=r)&&(e._scaleX=r,n.width=r*e.width+"px",o=!0),(!l&&1!=i||l&&l!=i)&&(e._scaleY=i,n.height=i*e.height+"px",o=!0),o&&e.updateViewport()}else{var c=e.x,h=e.y,d=e.pivotX,v=e.pivotY,u=e.rotation%360,g=e.transform,f=e.mask;f&&(f._render(this),a.clip());var p=e.align;if(p){var x=e.getAlignPosition();c=x.x,h=x.y}g?a.transform(g.a,g.b,g.c,g.d,g.tx,g.ty):(0==c&&0==h||a.translate(c,h),0!=u&&a.rotate(u*Math.PI/180),1==r&&1==i||a.scale(r,i),0==d&&0==v||a.translate(-d,-v))}e.alpha>0&&(a.globalAlpha*=e.alpha)},remove:function(e){var t=e.drawable,a=t&&t.domElement;if(a){var r=a.parentNode;r&&r.removeChild(a)}},clear:function(e,t,a,r){this.context.clearRect(e,t,a,r)},resize:function(e,t){var a=this.canvas,r=this.stage,i=a.style;a.width=e,a.height=t,i.width=r.width*r.scaleX+"px",i.height=r.height*r.scaleY+"px"}});module.exports=CanvasRenderer; \ No newline at end of file diff --git a/build/commonjs/renderer/DOMRenderer.js b/build/commonjs/renderer/DOMRenderer.js index 1e2bb551..5b04e863 100644 --- a/build/commonjs/renderer/DOMRenderer.js +++ b/build/commonjs/renderer/DOMRenderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/renderer/DOMRenderer.min.js b/build/commonjs/renderer/DOMRenderer.min.js index 8403f91b..3eeecd77 100644 --- a/build/commonjs/renderer/DOMRenderer.min.js +++ b/build/commonjs/renderer/DOMRenderer.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/renderer/Renderer.js b/build/commonjs/renderer/Renderer.js index 1bb3190b..62b79511 100644 --- a/build/commonjs/renderer/Renderer.js +++ b/build/commonjs/renderer/Renderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/renderer/Renderer.min.js b/build/commonjs/renderer/Renderer.min.js index 4db044c2..b1e725e9 100644 --- a/build/commonjs/renderer/Renderer.min.js +++ b/build/commonjs/renderer/Renderer.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/renderer/WebGLRenderer.js b/build/commonjs/renderer/WebGLRenderer.js index 8fc2e5b1..6fa0e4ea 100644 --- a/build/commonjs/renderer/WebGLRenderer.js +++ b/build/commonjs/renderer/WebGLRenderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -426,21 +426,28 @@ var WebGLRenderer = Class.create(/** @lends WebGLRenderer.prototype */{ var cos = 1, sin = 0, rotation = view.rotation % 360, pivotX = view.pivotX, pivotY = view.pivotY, - scaleX = view.scaleX, scaleY = view.scaleY; + scaleX = view.scaleX, scaleY = view.scaleY, + transform = view.transform; - if(rotation){ - var r = rotation * DEG2RAD; - cos = Math.cos(r); - sin = Math.sin(r); + if (transform) { + mtx.copy(transform); } + else { + if(rotation){ + var r = rotation * DEG2RAD; + cos = Math.cos(r); + sin = Math.sin(r); + } + + var pos = view.getAlignPosition(); - var pos = view.getAlignPosition(); - mtx.a = cos*scaleX; - mtx.b = sin*scaleX; - mtx.c = -sin*scaleY; - mtx.d = cos*scaleY; - mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; - mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + mtx.a = cos*scaleX; + mtx.b = sin*scaleX; + mtx.c = -sin*scaleY; + mtx.d = cos*scaleY; + mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; + mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + } mtx.concat(ancestor.__webglWorldMatrix); }, diff --git a/build/commonjs/renderer/WebGLRenderer.min.js b/build/commonjs/renderer/WebGLRenderer.min.js index 628bd22f..243ce837 100644 --- a/build/commonjs/renderer/WebGLRenderer.min.js +++ b/build/commonjs/renderer/WebGLRenderer.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ -var Class=require("../core/Class"),Hilo=require("../core/Hilo"),Renderer=require("./Renderer"),Matrix=require("../geom/Matrix"),DEG2RAD=Math.PI/180,WebGLRenderer=Class.create({Extends:Renderer,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var e=document.createElement("canvas");e.getContext&&(e.getContext("webgl")||e.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(e){WebGLRenderer.superclass.constructor.call(this,e);var t=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=WebGLRenderer.MAX_BATCH_NUM,this.positionStride=4*WebGLRenderer.ATTRIBUTE_NUM;var r=this.maxBatchNum*WebGLRenderer.ATTRIBUTE_NUM*4,i=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*r),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(i);for(var a=0,n=0;a0)&&(e===this.stage&&this.clear(),!0)},draw:function(e){var t=e.width,r=e.height,i=(e.background,e.drawable),a=i&&i.image;if(a){var n=i.rect,s=n[2],o=n[3];t||r||(t=e.width=s,r=e.height=o),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var h=this._createVertexs(a,n[0],n[1],s,o,0,0,t,r),d=this.batchIndex*this.positionStride,_=this.float32Array,c=this.uint32Array,l=(e.tint>>16)+(65280&e.tint)+((255&e.tint)<<16)+(255*e.__webglRenderAlpha<<24);_[d+0]=h[0],_[d+1]=h[1],_[d+2]=h[2],_[d+3]=h[3],c[d+4]=l,_[d+5]=h[4],_[d+6]=h[5],_[d+7]=h[6],_[d+8]=h[7],c[d+9]=l,_[d+10]=h[8],_[d+11]=h[9],_[d+12]=h[10],_[d+13]=h[11],c[d+14]=l,_[d+15]=h[12],_[d+16]=h[13],_[d+17]=h[14],_[d+18]=h[15],c[d+19]=l;for(var u=e.__webglWorldMatrix,f=0;f<4;f++){var g=_[d+5*f],x=_[d+5*f+1];_[d+5*f]=u.a*g+u.c*x+u.tx,_[d+5*f+1]=u.b*g+u.d*x+u.ty}e.__textureImage=a,this.sprites[this.batchIndex++]=e}},endDraw:function(e){e===this.stage&&this._renderBatches()},transform:function(e){var t=e.drawable;if(t&&t.domElement)return void Hilo.setElementStyleByView(e);var r=e.scaleX,i=e.scaleY;if(e===this.stage){var a=this.canvas.style,n=e._scaleX,s=e._scaleY,o=!1;(!n&&1!=r||n&&n!=r)&&(e._scaleX=r,a.width=r*e.width+"px",o=!0),(!s&&1!=i||s&&s!=i)&&(e._scaleY=i,a.height=i*e.height+"px",o=!0),o&&e.updateViewport(),e.__webglWorldMatrix=e.__webglWorldMatrix||new Matrix(1,0,0,1,0,0)}else e.parent&&(e.__webglWorldMatrix=e.__webglWorldMatrix||new Matrix(1,0,0,1,0,0),this._setConcatenatedMatrix(e,e.parent));e.alpha>0&&(e.parent&&e.parent.__webglRenderAlpha?e.__webglRenderAlpha=e.alpha*e.parent.__webglRenderAlpha:e.__webglRenderAlpha=e.alpha)},remove:function(e){var t=e.drawable,r=t&&t.domElement;if(r){var i=r.parentNode;i&&i.removeChild(r)}},clear:function(e,t,r,i){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(e,t){if(this.width!==e||this.height!==t){var r=this.canvas,i=this.stage,a=r.style;this.width=r.width=e,this.height=r.height=t,a.width=i.width*i.scaleX+"px",a.height=i.height*i.scaleY+"px",this.gl.viewport(0,0,e,t),this.canvasHalfWidth=.5*e,this.canvasHalfHeight=.5*t,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var e=this.gl;e.bufferSubData(e.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var t=0,r=0,i=null,a=0;a0&&(r.bindTexture(r.TEXTURE_2D,this._getTexture(this.sprites[e])),r.drawElements(r.TRIANGLES,6*i,r.UNSIGNED_SHORT,6*e*2))},_uploadProjectionTransform:function(e){this._projectionTransformElements&&!e||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var e=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",t="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new Shader(this,{v:e,f:t},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(e,t,r,i,a,n,s,o,h){var d=this.__tempVertexs||[],_=e.width,c=e.height;i/=_,a/=c,t/=_,r/=c,o=o,h=h,n=n,s=s,i+t>1&&(i=1-t),a+r>1&&(a=1-r);var l=0;return d[l++]=n,d[l++]=s,d[l++]=t,d[l++]=r,d[l++]=n+o,d[l++]=s,d[l++]=t+i,d[l++]=r,d[l++]=n,d[l++]=s+h,d[l++]=t,d[l++]=r+a,d[l++]=n+o,d[l++]=s+h,d[l++]=t+i,d[l++]=r+a,d},_setConcatenatedMatrix:function(e,t){var r=e.__webglWorldMatrix,i=1,a=0,n=e.rotation%360,s=e.pivotX,o=e.pivotY,h=e.scaleX,d=e.scaleY;if(n){var _=n*DEG2RAD;i=Math.cos(_),a=Math.sin(_)}var c=e.getAlignPosition();r.a=i*h,r.b=a*h,r.c=-a*d,r.d=i*d,r.tx=c.x-r.a*s-r.c*o,r.ty=c.y-r.b*s-r.d*o,r.concat(t.__webglWorldMatrix)},_getTexture:function(e){var t=e.__textureImage,r=this._cacheTexture[t.src];return r||(r=this.activeShader.uploadTexture(t)),r}}),Shader=function(e,t,r){this.renderer=e,this.gl=e.gl,this.program=this._createProgram(this.gl,t.v,t.f),r=r||{},this.attributes=r.attributes||[],this.uniforms=r.uniforms||[]};Shader.prototype={active:function(){var e=this,t=e.renderer,r=e.gl,i=e.program;i&&r&&(t.activeShader=e,r.useProgram(i),e.attributes.forEach(function(e){t[e]=r.getAttribLocation(i,e),r.enableVertexAttribArray(t[e])}),e.uniforms.forEach(function(e){t[e]=r.getUniformLocation(i,e)}),e.width===t.width&&e.height===t.height||(e.width=t.width,e.height=t.height,t._uploadProjectionTransform()))},uploadTexture:function(e){var t=this.gl,r=this.renderer,i=t.createTexture(),a=r.u_Sampler;return t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,i),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.uniform1i(a,0),t.bindTexture(t.TEXTURE_2D,null),this.renderer._cacheTexture[e.src]=i,i},_createProgram:function(e,t,r){var i=this._createShader(e,e.VERTEX_SHADER,t),a=this._createShader(e,e.FRAGMENT_SHADER,r);if(!i||!a)return null;var n=e.createProgram();if(n){e.attachShader(n,i),e.attachShader(n,a),e.linkProgram(n),e.deleteShader(a),e.deleteShader(i);var s=e.getProgramParameter(n,e.LINK_STATUS);if(!s){var o=e.getProgramInfoLog(n);return console.log("Failed to link program: "+o),e.deleteProgram(n),null}}return n},_createShader:function(e,t,r){var i=e.createShader(t);if(i){e.shaderSource(i,r),e.compileShader(i);var a=e.getShaderParameter(i,e.COMPILE_STATUS);if(!a){var n=e.getShaderInfoLog(i);return console.log("Failed to compile shader: "+n),e.deleteShader(i),null}}return i}},module.exports=WebGLRenderer; \ No newline at end of file +var Class=require("../core/Class"),Hilo=require("../core/Hilo"),Renderer=require("./Renderer"),Matrix=require("../geom/Matrix"),DEG2RAD=Math.PI/180,WebGLRenderer=Class.create({Extends:Renderer,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var e=document.createElement("canvas");e.getContext&&(e.getContext("webgl")||e.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(e){WebGLRenderer.superclass.constructor.call(this,e);var t=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=WebGLRenderer.MAX_BATCH_NUM,this.positionStride=4*WebGLRenderer.ATTRIBUTE_NUM;var r=this.maxBatchNum*WebGLRenderer.ATTRIBUTE_NUM*4,i=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*r),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(i);for(var a=0,n=0;a0)&&(e===this.stage&&this.clear(),!0)},draw:function(e){var t=e.width,r=e.height,i=(e.background,e.drawable),a=i&&i.image;if(a){var n=i.rect,s=n[2],o=n[3];t||r||(t=e.width=s,r=e.height=o),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var h=this._createVertexs(a,n[0],n[1],s,o,0,0,t,r),d=this.batchIndex*this.positionStride,_=this.float32Array,c=this.uint32Array,l=(e.tint>>16)+(65280&e.tint)+((255&e.tint)<<16)+(255*e.__webglRenderAlpha<<24);_[d+0]=h[0],_[d+1]=h[1],_[d+2]=h[2],_[d+3]=h[3],c[d+4]=l,_[d+5]=h[4],_[d+6]=h[5],_[d+7]=h[6],_[d+8]=h[7],c[d+9]=l,_[d+10]=h[8],_[d+11]=h[9],_[d+12]=h[10],_[d+13]=h[11],c[d+14]=l,_[d+15]=h[12],_[d+16]=h[13],_[d+17]=h[14],_[d+18]=h[15],c[d+19]=l;for(var u=e.__webglWorldMatrix,f=0;f<4;f++){var g=_[d+5*f],x=_[d+5*f+1];_[d+5*f]=u.a*g+u.c*x+u.tx,_[d+5*f+1]=u.b*g+u.d*x+u.ty}e.__textureImage=a,this.sprites[this.batchIndex++]=e}},endDraw:function(e){e===this.stage&&this._renderBatches()},transform:function(e){var t=e.drawable;if(t&&t.domElement)return void Hilo.setElementStyleByView(e);var r=e.scaleX,i=e.scaleY;if(e===this.stage){var a=this.canvas.style,n=e._scaleX,s=e._scaleY,o=!1;(!n&&1!=r||n&&n!=r)&&(e._scaleX=r,a.width=r*e.width+"px",o=!0),(!s&&1!=i||s&&s!=i)&&(e._scaleY=i,a.height=i*e.height+"px",o=!0),o&&e.updateViewport(),e.__webglWorldMatrix=e.__webglWorldMatrix||new Matrix(1,0,0,1,0,0)}else e.parent&&(e.__webglWorldMatrix=e.__webglWorldMatrix||new Matrix(1,0,0,1,0,0),this._setConcatenatedMatrix(e,e.parent));e.alpha>0&&(e.parent&&e.parent.__webglRenderAlpha?e.__webglRenderAlpha=e.alpha*e.parent.__webglRenderAlpha:e.__webglRenderAlpha=e.alpha)},remove:function(e){var t=e.drawable,r=t&&t.domElement;if(r){var i=r.parentNode;i&&i.removeChild(r)}},clear:function(e,t,r,i){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(e,t){if(this.width!==e||this.height!==t){var r=this.canvas,i=this.stage,a=r.style;this.width=r.width=e,this.height=r.height=t,a.width=i.width*i.scaleX+"px",a.height=i.height*i.scaleY+"px",this.gl.viewport(0,0,e,t),this.canvasHalfWidth=.5*e,this.canvasHalfHeight=.5*t,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var e=this.gl;e.bufferSubData(e.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var t=0,r=0,i=null,a=0;a0&&(r.bindTexture(r.TEXTURE_2D,this._getTexture(this.sprites[e])),r.drawElements(r.TRIANGLES,6*i,r.UNSIGNED_SHORT,6*e*2))},_uploadProjectionTransform:function(e){this._projectionTransformElements&&!e||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var e=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",t="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new Shader(this,{v:e,f:t},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(e,t,r,i,a,n,s,o,h){var d=this.__tempVertexs||[],_=e.width,c=e.height;i/=_,a/=c,t/=_,r/=c,o=o,h=h,n=n,s=s,i+t>1&&(i=1-t),a+r>1&&(a=1-r);var l=0;return d[l++]=n,d[l++]=s,d[l++]=t,d[l++]=r,d[l++]=n+o,d[l++]=s,d[l++]=t+i,d[l++]=r,d[l++]=n,d[l++]=s+h,d[l++]=t,d[l++]=r+a,d[l++]=n+o,d[l++]=s+h,d[l++]=t+i,d[l++]=r+a,d},_setConcatenatedMatrix:function(e,t){var r=e.__webglWorldMatrix,i=1,a=0,n=e.rotation%360,s=e.pivotX,o=e.pivotY,h=e.scaleX,d=e.scaleY,_=e.transform;if(_)r.copy(_);else{if(n){var c=n*DEG2RAD;i=Math.cos(c),a=Math.sin(c)}var l=e.getAlignPosition();r.a=i*h,r.b=a*h,r.c=-a*d,r.d=i*d,r.tx=l.x-r.a*s-r.c*o,r.ty=l.y-r.b*s-r.d*o}r.concat(t.__webglWorldMatrix)},_getTexture:function(e){var t=e.__textureImage,r=this._cacheTexture[t.src];return r||(r=this.activeShader.uploadTexture(t)),r}}),Shader=function(e,t,r){this.renderer=e,this.gl=e.gl,this.program=this._createProgram(this.gl,t.v,t.f),r=r||{},this.attributes=r.attributes||[],this.uniforms=r.uniforms||[]};Shader.prototype={active:function(){var e=this,t=e.renderer,r=e.gl,i=e.program;i&&r&&(t.activeShader=e,r.useProgram(i),e.attributes.forEach(function(e){t[e]=r.getAttribLocation(i,e),r.enableVertexAttribArray(t[e])}),e.uniforms.forEach(function(e){t[e]=r.getUniformLocation(i,e)}),e.width===t.width&&e.height===t.height||(e.width=t.width,e.height=t.height,t._uploadProjectionTransform()))},uploadTexture:function(e){var t=this.gl,r=this.renderer,i=t.createTexture(),a=r.u_Sampler;return t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,i),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.uniform1i(a,0),t.bindTexture(t.TEXTURE_2D,null),this.renderer._cacheTexture[e.src]=i,i},_createProgram:function(e,t,r){var i=this._createShader(e,e.VERTEX_SHADER,t),a=this._createShader(e,e.FRAGMENT_SHADER,r);if(!i||!a)return null;var n=e.createProgram();if(n){e.attachShader(n,i),e.attachShader(n,a),e.linkProgram(n),e.deleteShader(a),e.deleteShader(i);var s=e.getProgramParameter(n,e.LINK_STATUS);if(!s){var o=e.getProgramInfoLog(n);return console.log("Failed to link program: "+o),e.deleteProgram(n),null}}return n},_createShader:function(e,t,r){var i=e.createShader(t);if(i){e.shaderSource(i,r),e.compileShader(i);var a=e.getShaderParameter(i,e.COMPILE_STATUS);if(!a){var n=e.getShaderInfoLog(i);return console.log("Failed to compile shader: "+n),e.deleteShader(i),null}}return i}},module.exports=WebGLRenderer; \ No newline at end of file diff --git a/build/commonjs/tween/Ease.js b/build/commonjs/tween/Ease.js index 5556b0b2..13df1c30 100644 --- a/build/commonjs/tween/Ease.js +++ b/build/commonjs/tween/Ease.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/tween/Ease.min.js b/build/commonjs/tween/Ease.min.js index 1193e875..0df5563a 100644 --- a/build/commonjs/tween/Ease.min.js +++ b/build/commonjs/tween/Ease.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/tween/Tween.js b/build/commonjs/tween/Tween.js index fa6eaaad..8ecafaaf 100644 --- a/build/commonjs/tween/Tween.js +++ b/build/commonjs/tween/Tween.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/tween/Tween.min.js b/build/commonjs/tween/Tween.min.js index 684ab3b7..554315b1 100644 --- a/build/commonjs/tween/Tween.min.js +++ b/build/commonjs/tween/Tween.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/util/TextureAtlas.js b/build/commonjs/util/TextureAtlas.js index b6cd6194..4dcee639 100644 --- a/build/commonjs/util/TextureAtlas.js +++ b/build/commonjs/util/TextureAtlas.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/util/TextureAtlas.min.js b/build/commonjs/util/TextureAtlas.min.js index ef673269..8ef04f20 100644 --- a/build/commonjs/util/TextureAtlas.min.js +++ b/build/commonjs/util/TextureAtlas.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/util/Ticker.js b/build/commonjs/util/Ticker.js index 243bd219..95897f82 100644 --- a/build/commonjs/util/Ticker.js +++ b/build/commonjs/util/Ticker.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/util/Ticker.min.js b/build/commonjs/util/Ticker.min.js index 2758177e..43e58288 100644 --- a/build/commonjs/util/Ticker.min.js +++ b/build/commonjs/util/Ticker.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/util/browser.js b/build/commonjs/util/browser.js index e757648c..1d389d91 100644 --- a/build/commonjs/util/browser.js +++ b/build/commonjs/util/browser.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/util/browser.min.js b/build/commonjs/util/browser.min.js index ff10ca28..c72ab4c8 100644 --- a/build/commonjs/util/browser.min.js +++ b/build/commonjs/util/browser.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/util/drag.js b/build/commonjs/util/drag.js index 92579555..b0f3c241 100644 --- a/build/commonjs/util/drag.js +++ b/build/commonjs/util/drag.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/util/drag.min.js b/build/commonjs/util/drag.min.js index 72afcf30..cd0139d4 100644 --- a/build/commonjs/util/drag.min.js +++ b/build/commonjs/util/drag.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/util/polyfill.js b/build/commonjs/util/polyfill.js index f4cbf571..14fbc608 100644 --- a/build/commonjs/util/polyfill.js +++ b/build/commonjs/util/polyfill.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/util/polyfill.min.js b/build/commonjs/util/polyfill.min.js index 2714ad22..aee29755 100644 --- a/build/commonjs/util/polyfill.min.js +++ b/build/commonjs/util/polyfill.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/util/util.js b/build/commonjs/util/util.js index aabfc311..d5d46dfa 100644 --- a/build/commonjs/util/util.js +++ b/build/commonjs/util/util.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/util/util.min.js b/build/commonjs/util/util.min.js index 9e388dc1..744ed623 100644 --- a/build/commonjs/util/util.min.js +++ b/build/commonjs/util/util.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/Bitmap.js b/build/commonjs/view/Bitmap.js index 029daf1c..f06447f5 100644 --- a/build/commonjs/view/Bitmap.js +++ b/build/commonjs/view/Bitmap.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/Bitmap.min.js b/build/commonjs/view/Bitmap.min.js index c8910fe3..d3a33c89 100644 --- a/build/commonjs/view/Bitmap.min.js +++ b/build/commonjs/view/Bitmap.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/BitmapText.js b/build/commonjs/view/BitmapText.js index 19f75f33..9ffa9cde 100644 --- a/build/commonjs/view/BitmapText.js +++ b/build/commonjs/view/BitmapText.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/BitmapText.min.js b/build/commonjs/view/BitmapText.min.js index e6aaa4a9..52631555 100644 --- a/build/commonjs/view/BitmapText.min.js +++ b/build/commonjs/view/BitmapText.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/Button.js b/build/commonjs/view/Button.js index c38f36d5..fdac5434 100644 --- a/build/commonjs/view/Button.js +++ b/build/commonjs/view/Button.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/Button.min.js b/build/commonjs/view/Button.min.js index 0ce85554..6ba4abad 100644 --- a/build/commonjs/view/Button.min.js +++ b/build/commonjs/view/Button.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/CacheMixin.js b/build/commonjs/view/CacheMixin.js index c8b76fd6..301c070c 100644 --- a/build/commonjs/view/CacheMixin.js +++ b/build/commonjs/view/CacheMixin.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/CacheMixin.min.js b/build/commonjs/view/CacheMixin.min.js index 42cdfb11..a890a3ab 100644 --- a/build/commonjs/view/CacheMixin.min.js +++ b/build/commonjs/view/CacheMixin.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/Container.js b/build/commonjs/view/Container.js index ea5dcff0..e9b05ec2 100644 --- a/build/commonjs/view/Container.js +++ b/build/commonjs/view/Container.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/Container.min.js b/build/commonjs/view/Container.min.js index 2e6c5599..242b4b6b 100644 --- a/build/commonjs/view/Container.min.js +++ b/build/commonjs/view/Container.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/DOMElement.js b/build/commonjs/view/DOMElement.js index 8faa96e7..9111f9cd 100644 --- a/build/commonjs/view/DOMElement.js +++ b/build/commonjs/view/DOMElement.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -87,7 +87,8 @@ var DOMElement = Class.create(/** @lends DOMElement.prototype */{ style:{ 'position':'absolute', 'transform':'scale3d(' + stage.scaleX + ',' + stage.scaleY + ', 1)', - 'transformOrigin':'0 0' + 'transformOrigin':'0 0', + 'zIndex':'1' } }); canvas.parentNode.insertBefore(renderer._domElementContainer, canvas.nextSibling); diff --git a/build/commonjs/view/DOMElement.min.js b/build/commonjs/view/DOMElement.min.js index 6270d978..36e73b0f 100644 --- a/build/commonjs/view/DOMElement.min.js +++ b/build/commonjs/view/DOMElement.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ -var Hilo=require("../core/Hilo"),Class=require("../core/Class"),View=require("./View"),Drawable=require("./Drawable"),DOMElement=Class.create({Extends:View,constructor:function(e){e=e||{},this.id=this.id||e.id||Hilo.getUid("DOMElement"),DOMElement.superclass.constructor.call(this,e),this.drawable=new Drawable;var t=this.drawable.domElement=e.element||Hilo.createElement("div");t.id=this.id,this.pointerEnabled&&!t.style.pointerEvents&&(t.style.pointerEvents="visible")},_render:function(e,t){this.onUpdate&&this.onUpdate(t)===!1||(e.transform(this),this.visible&&this.alpha>0&&this.render(e,t))},render:function(e,t){if("dom"!==e.renderType){var i=e.canvas,r=this.parent,n=e._domElementContainer;e._domElementContainer||(n=e._domElementContainer=Hilo.createElement("div",{style:{position:"absolute",transform:"scale3d("+r.scaleX+","+r.scaleY+", 1)",transformOrigin:"0 0"}}),i.parentNode.insertBefore(e._domElementContainer,i.nextSibling));var s,a=this.drawable.domElement,l=this.depth,o=n.childNodes[0];if(a.parentNode)return;for(;o&&3!=o.nodeType&&(s=parseInt(o.style.zIndex)||0,!(s<=0||s>l));)o=o.nextSibling;n.insertBefore(this.drawable.domElement,o)}else e.draw(this)}});module.exports=DOMElement; \ No newline at end of file +var Hilo=require("../core/Hilo"),Class=require("../core/Class"),View=require("./View"),Drawable=require("./Drawable"),DOMElement=Class.create({Extends:View,constructor:function(e){e=e||{},this.id=this.id||e.id||Hilo.getUid("DOMElement"),DOMElement.superclass.constructor.call(this,e),this.drawable=new Drawable;var t=this.drawable.domElement=e.element||Hilo.createElement("div");t.id=this.id,this.pointerEnabled&&!t.style.pointerEvents&&(t.style.pointerEvents="visible")},_render:function(e,t){this.onUpdate&&this.onUpdate(t)===!1||(e.transform(this),this.visible&&this.alpha>0&&this.render(e,t))},render:function(e,t){if("dom"!==e.renderType){var i=e.canvas,n=this.parent,r=e._domElementContainer;e._domElementContainer||(r=e._domElementContainer=Hilo.createElement("div",{style:{position:"absolute",transform:"scale3d("+n.scaleX+","+n.scaleY+", 1)",transformOrigin:"0 0",zIndex:"1"}}),i.parentNode.insertBefore(e._domElementContainer,i.nextSibling));var s,a=this.drawable.domElement,l=this.depth,o=r.childNodes[0];if(a.parentNode)return;for(;o&&3!=o.nodeType&&(s=parseInt(o.style.zIndex)||0,!(s<=0||s>l));)o=o.nextSibling;r.insertBefore(this.drawable.domElement,o)}else e.draw(this)}});module.exports=DOMElement; \ No newline at end of file diff --git a/build/commonjs/view/Drawable.js b/build/commonjs/view/Drawable.js index aa34f5dd..e5a86bfe 100644 --- a/build/commonjs/view/Drawable.js +++ b/build/commonjs/view/Drawable.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/Drawable.min.js b/build/commonjs/view/Drawable.min.js index fa0b0771..9994e919 100644 --- a/build/commonjs/view/Drawable.min.js +++ b/build/commonjs/view/Drawable.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/Graphics.js b/build/commonjs/view/Graphics.js index b2acd80a..48b6c4c4 100644 --- a/build/commonjs/view/Graphics.js +++ b/build/commonjs/view/Graphics.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/Graphics.min.js b/build/commonjs/view/Graphics.min.js index d30bf41e..4c814305 100644 --- a/build/commonjs/view/Graphics.min.js +++ b/build/commonjs/view/Graphics.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/Sprite.js b/build/commonjs/view/Sprite.js index 25d341a2..79fb40fc 100644 --- a/build/commonjs/view/Sprite.js +++ b/build/commonjs/view/Sprite.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/Sprite.min.js b/build/commonjs/view/Sprite.min.js index 09357eb8..d704d4ae 100644 --- a/build/commonjs/view/Sprite.min.js +++ b/build/commonjs/view/Sprite.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/Stage.js b/build/commonjs/view/Stage.js index cd9d8919..1a56aabe 100644 --- a/build/commonjs/view/Stage.js +++ b/build/commonjs/view/Stage.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/Stage.min.js b/build/commonjs/view/Stage.min.js index 9117153b..bdbf848b 100644 --- a/build/commonjs/view/Stage.min.js +++ b/build/commonjs/view/Stage.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/Text.js b/build/commonjs/view/Text.js index 93847d6d..a4474c93 100644 --- a/build/commonjs/view/Text.js +++ b/build/commonjs/view/Text.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/Text.min.js b/build/commonjs/view/Text.min.js index 04e96028..66f19528 100644 --- a/build/commonjs/view/Text.min.js +++ b/build/commonjs/view/Text.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/commonjs/view/View.js b/build/commonjs/view/View.js index f784469b..3d74217f 100644 --- a/build/commonjs/view/View.js +++ b/build/commonjs/view/View.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -37,6 +37,7 @@ var util = require('../util/util'); * @property {Number} pivotY Position of the center point on the y axis of the view, default value is 0. * @property {Number} scaleX The x axis scale factor of the view, default value is 1. * @property {Number} scaleY The y axis scale factor of the view, default value is 1. + * @property {Matrix} transform The transform of the view.If set the transform, x, y, scaleX, scaleY, rotation, pivotX, pivotY will be ignored.default is null. * @property {Boolean} pointerEnabled Is the view can receive DOM events, default value is true. * @property {Object} background The background style to fill the view, can be css color, gradient or pattern of canvas * @property {Graphics} mask Sets a mask for the view. A mask is an object that limits the visibility of an object to the shape of the mask applied to it. A regular mask must be a Hilo.Graphics object. This allows for much faster masking in canvas as it utilises shape clipping. To remove a mask, set this property to null. @@ -78,6 +79,7 @@ return Class.create(/** @lends View.prototype */{ boundsArea: null, parent: null, depth: -1, + transform: null, blendMode:'source-over', /** @@ -190,19 +192,26 @@ return Class.create(/** @lends View.prototype */{ var cos = 1, sin = 0, rotation = o.rotation % 360, pivotX = o.pivotX, pivotY = o.pivotY, - scaleX = o.scaleX, scaleY = o.scaleY; + scaleX = o.scaleX, scaleY = o.scaleY, + transform = o.transform; - if(rotation){ - var r = rotation * Math.PI / 180; - cos = Math.cos(r); - sin = Math.sin(r); + if(transform) { + mtx.concat(transform); } + else{ + if(rotation){ + var r = rotation * Math.PI / 180; + cos = Math.cos(r); + sin = Math.sin(r); + } - if(pivotX != 0) mtx.tx -= pivotX; - if(pivotY != 0) mtx.ty -= pivotY; + if(pivotX != 0) mtx.tx -= pivotX; + if(pivotY != 0) mtx.ty -= pivotY; - var pos = o.getAlignPosition(); - mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + var pos = o.getAlignPosition(); + mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + } + } return mtx; }, diff --git a/build/commonjs/view/View.min.js b/build/commonjs/view/View.min.js index 008aa700..a5bb314e 100644 --- a/build/commonjs/view/View.min.js +++ b/build/commonjs/view/View.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for commonjs + * Hilo 1.2.0 for commonjs * Copyright 2016 alibaba.com * Licensed under the MIT License */ -var Hilo=require("../core/Hilo"),Class=require("../core/Class"),EventMixin=require("../event/EventMixin"),Matrix=require("../geom/Matrix"),util=require("../util/util"),View=function(){function t(t,e,i){for(var r,n,a,o,s=0,h=!1,u=0,l=i.length;ux.x?(r=x.x,n=y.x):(r=y.x,n=x.x),t>=r&&t<=n))h=!0;else if(y.y>x.y?(a=x.y,o=y.y):(a=y.y,o=x.y),!(eo)){var c=(e-y.y)*(x.x-y.x)/(x.y-y.y)+y.x;if(c>t?s++:c==t&&(h=!0),y.x>t&&y.y==e){var d=i[(l+u-1)%l];(d.ye||d.y>e&&x.ys?s=l:lu?u=l:l=0)return!1;y>i.overlap&&(i.overlap=y,i.normal.x=d.x,i.normal.y=d.y)}return i}return Class.create({Mixes:EventMixin,constructor:function(t){t=t||{},this.id=this.id||t.id||Hilo.getUid("View"),util.copy(this,t,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,r,n,a,o,s=this.width,h=this.height,u=this.getConcatenatedMatrix(),l=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:h},{x:0,y:h}],y=[],x=0,c=l.length;xe?r=e:ni?a=i:o>1,r=0;break;case"TR":i=o-n,r=0;break;case"L":i=0,r=s-a>>1;break;case"C":i=o-n>>1,r=s-a>>1;break;case"R":i=o-n,r=s-a>>1;break;case"BL":i=0,r=s-a;break;case"B":i=o-n>>1,r=s-a;break;case"BR":i=o-n,r=s-a}}return{x:i,y:r}},hitTestPoint:function(e,i,r){var n=this.getBounds(),a=e>=n.x&&e<=n.x+n.width&&i>=n.y&&i<=n.y+n.height;return a&&r&&(a=t(e,i,n)),a},hitTestObject:function(t,i){var r=this.getBounds(),n=t.getBounds(),a=r.x<=n.x+n.width&&n.x<=r.x+r.width&&r.y<=n.y+n.height&&n.y<=r.y+r.height;return a&&i&&(a=e(r,n)),!!a},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=util.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return Hilo.viewToString(this)}})}();module.exports=View; \ No newline at end of file +var Hilo=require("../core/Hilo"),Class=require("../core/Class"),EventMixin=require("../event/EventMixin"),Matrix=require("../geom/Matrix"),util=require("../util/util"),View=function(){function t(t,e,i){for(var r,n,a,o,s=0,h=!1,u=0,l=i.length;uc.x?(r=c.x,n=y.x):(r=y.x,n=c.x),t>=r&&t<=n))h=!0;else if(y.y>c.y?(a=c.y,o=y.y):(a=y.y,o=c.y),!(eo)){var x=(e-y.y)*(c.x-y.x)/(c.y-y.y)+y.x;if(x>t?s++:x==t&&(h=!0),y.x>t&&y.y==e){var d=i[(l+u-1)%l];(d.ye||d.y>e&&c.ys?s=l:lu?u=l:l=0)return!1;y>i.overlap&&(i.overlap=y,i.normal.x=d.x,i.normal.y=d.y)}return i}return Class.create({Mixes:EventMixin,constructor:function(t){t=t||{},this.id=this.id||t.id||Hilo.getUid("View"),util.copy(this,t,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,transform:null,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,r,n,a,o,s=this.width,h=this.height,u=this.getConcatenatedMatrix(),l=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:h},{x:0,y:h}],y=[],c=0,x=l.length;ce?r=e:ni?a=i:o>1,r=0;break;case"TR":i=o-n,r=0;break;case"L":i=0,r=s-a>>1;break;case"C":i=o-n>>1,r=s-a>>1;break;case"R":i=o-n,r=s-a>>1;break;case"BL":i=0,r=s-a;break;case"B":i=o-n>>1,r=s-a;break;case"BR":i=o-n,r=s-a}}return{x:i,y:r}},hitTestPoint:function(e,i,r){var n=this.getBounds(),a=e>=n.x&&e<=n.x+n.width&&i>=n.y&&i<=n.y+n.height;return a&&r&&(a=t(e,i,n)),a},hitTestObject:function(t,i){var r=this.getBounds(),n=t.getBounds(),a=r.x<=n.x+n.width&&n.x<=r.x+r.width&&r.y<=n.y+n.height&&n.y<=r.y+r.height;return a&&i&&(a=e(r,n)),!!a},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=util.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return Hilo.viewToString(this)}})}();module.exports=View; \ No newline at end of file diff --git a/build/dragonbones/dragonbones.js b/build/dragonbones/dragonbones.js index be077520..2897ec58 100644 --- a/build/dragonbones/dragonbones.js +++ b/build/dragonbones/dragonbones.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.10 for dragonbones + * Hilo 1.2.0 for dragonbones * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -8143,7 +8143,7 @@ var dragonBones; * HiloSlot */ (function(superClass) { - var RAD2DEG = 180/Math.PI; + var RAD2DEG = 180 / Math.PI; var TextureAtlas = dragonBones.TextureAtlas; var HiloSlot = function() { superClass.call(this, this); @@ -8176,10 +8176,9 @@ var dragonBones; }, _addDisplayToContainer: function(container, index) { if (this._display && container) { - if(index){ + if (index) { container.addChildAt(this._display, index); - } - else{ + } else { container.addChild(this._display); } } @@ -8191,11 +8190,12 @@ var dragonBones; }, _updateTransform: function() { if (this._display) { - this._display.x = this._global.x; - this._display.y = this._global.y; - this._display.scaleX = this._global.scaleX; - this._display.scaleY = this._global.scaleY; - this._display.rotation = this._global.skewX * RAD2DEG; + var pivotX = this._display.pivotX; + var pivotY = this._display.pivotY; + var mat = this._display.transform; + mat.copy(this._globalTransformMatrix); + mat.tx = mat.tx - mat.a * pivotX - mat.c * pivotY; + mat.ty = mat.ty - mat.b * pivotX - mat.d * pivotY; } }, _updateDisplayVisible: function(value) { @@ -8238,46 +8238,43 @@ var dragonBones; /** * HiloFactory */ -(function(superClass){ +(function(superClass) { var Armature = dragonBones.Armature; var HiloSlot = dragonBones.HiloSlot; - var HiloFactory = function(){ + var HiloFactory = function() { superClass.call(this, this); }; __extends(HiloFactory, superClass, { - _generateArmature:function(){ + _generateArmature: function() { var armature = new Armature(new Hilo.Container); return armature; }, - _generateSlot:function(){ + _generateSlot: function() { var slot = new HiloSlot(); return slot; }, - _generateDisplay:function(textureAtlas, fullName, pivotX, pivotY){ + _generateDisplay: function(textureAtlas, fullName, pivotX, pivotY) { var texture = textureAtlas.getTexture(fullName); var region = texture.region; var bitmap = new Hilo.Bitmap({ - image:textureAtlas.texture, - rect:[region.x, region.y, region.width, region.height] + image: textureAtlas.texture, + rect: [region.x, region.y, region.width, region.height] }); - if(isNaN(pivotX)||isNaN(pivotY)) - { + if (isNaN(pivotX) || isNaN(pivotY)) { var subTextureFrame = textureAtlas.getFrame(fullName); - if(subTextureFrame != null) - { - pivotX = (subTextureFrame.width/2) + subTextureFrame.x; - pivotY = (subTextureFrame.height/2) + subTextureFrame.y; - } - else - { - pivotX = texture.region.width/2; - pivotY = texture.region.height/2; + if (subTextureFrame != null) { + pivotX = (subTextureFrame.width / 2) + subTextureFrame.x; + pivotY = (subTextureFrame.height / 2) + subTextureFrame.y; + } else { + pivotX = texture.region.width / 2; + pivotY = texture.region.height / 2; } } bitmap.pivotX = pivotX; bitmap.pivotY = pivotY; + bitmap.transform = new Hilo.Matrix().identity(); return bitmap; } }); @@ -8285,6 +8282,6 @@ var dragonBones; dragonBones.HiloFactory = HiloFactory; }(dragonBones.BaseFactory)); -dragonBones.tick = function(dt){ +dragonBones.tick = function(dt) { dragonBones.WorldClock.clock.advanceTime(dt * 0.001); -}; +}; \ No newline at end of file diff --git a/build/dragonbones/dragonbones.min.js b/build/dragonbones/dragonbones.min.js index f3ae1770..8d1b278c 100644 --- a/build/dragonbones/dragonbones.min.js +++ b/build/dragonbones/dragonbones.min.js @@ -1,8295 +1,11 @@ /** - * Hilo 1.1.10 for dragonbones + * Hilo 1.2.0 for dragonbones * Copyright 2016 alibaba.com * Licensed under the MIT License */ -/** - * Hilo 1.1.10 for dragonbones - * Copyright 2016 alibaba.com - * Licensed under the MIT License - */ -////////////////////////////////////////////////////////////////////////////////////// -// -// Copyright (c) 2014-2015, Egret Technology Inc. -// All rights reserved. -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of the Egret nor the -// names of its contributors may be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY EGRET AND CONTRIBUTORS "AS IS" AND ANY EXPRESS -// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -// IN NO EVENT SHALL EGRET AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA, -// OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -////////////////////////////////////////////////////////////////////////////////////// - -/** - * Hilo - * Copyright 2015 alibaba.com - * Licensed under the MIT License - */ -if (!window.egret) { - var egret_strings = { - 4001: "Abstract class can not be instantiated!", - 4002: "Unnamed data!", - 4003: "Nonsupport version!" - }; - - var Event = function(type, bubbles, cancelable, data) { - this.type = type; - this.bubbles = bubbles || false; - this.cancelable = cancelable || false; - this.data = data; - }; - - var EventDispatcher = function(target) { - this._listenerDict = {}; - }; - - EventDispatcher.prototype = { - constructor: EventDispatcher, - addEventListener: function(type, listener, thisObject, useCapture, priority, dispatchOnce) { - if (!this._listenerDict[type]) { - this._listenerDict[type] = []; - } - this._listenerDict[type].push({ - listener: listener, - thisObject: thisObject, - useCapture: useCapture, - priority: priority, - dispatchOnce: dispatchOnce - }); - }, - once: function(type, listener, thisObject, useCapture, priority) { - this.addEventListener(type, listener, thisObject, useCapture, priority, true); - }, - removeEventListener: function(type, listener, thisObject, useCapture) { - if (!type) { - this._listenerDict = {}; - } else if (!listener) { - if (this._listenerDict[type]) { - this._listenerDict[type].length = 0; - } - } else { - var listeners = this._listenerDict[type]; - var index = listeners.indexOf(listener); - if (index > -1) { - listeners.splice(index, 1); - } - } - }, - hasEventListener: function(type) { - return this._listenerDict[type]; - }, - dispatchEvent: function(event) { - if (event && event.type && this._listenerDict[event.type]) { - var listeners = this._listenerDict[event.type]; - var copyListeners = listeners.slice(); - for (var i = 0; i < copyListeners.length; i++) { - var listenerObj = copyListeners[i]; - if (listenerObj.dispatchOnce) { - var index = listeners.indexOf(listenerObj); - if (index > -1) { - listeners.splice(index, 1); - } - } - if (listenerObj.listener) { - listenerObj.listener.call(listenerObj.thisObject || this, event); - } - } - } - }, - willTrigger: function(type) { - return this.hasEventListener(type); - } - }; - - window.egret = { - getString: function(code) { - return egret_strings[code] || 'no string code'; - }, - Event: Event, - EventDispatcher: EventDispatcher, - registerClass: function(classDefinition, className, interfaceNames) { - var prototype = classDefinition.prototype; - prototype.__class__ = className; - var types = [className]; - if (interfaceNames) { - types = types.concat(interfaceNames); - } - var superTypes = prototype.__types__; - if (prototype.__types__) { - var length = superTypes.length; - for (var i = 0; i < length; i++) { - var name = superTypes[i]; - if (types.indexOf(name) == -1) { - types.push(name); - } - } - } - prototype.__types__ = types; - } - }; -} - -window.__extends = window.__extends || function __extends(d, b, mixin) { - for (var p in b) - if (b.hasOwnProperty(p)) - d[p] = b[p]; - - function __() { - this.constructor = d; - } - __.prototype = b.prototype; - d.prototype = new __(); - - if(mixin){ - for(var key in mixin){ - d.prototype[key] = mixin[key]; - } - } -}; - -window.__define = window.__define || function(o, p, g, s) { - Object.defineProperty(o, p, { - configurable: true, - enumerable: true, - get: g, - set: s - }); -}; -var dragonBones; -(function (dragonBones) { - var DragonBones = (function () { - function DragonBones() { - } - var d = __define,c=DragonBones,p=c.prototype; - DragonBones.DATA_VERSION = "4.0"; - DragonBones.PARENT_COORDINATE_DATA_VERSION = "3.0"; - DragonBones.VERSION = "4.3.5"; - return DragonBones; - })(); - dragonBones.DragonBones = DragonBones; - egret.registerClass(DragonBones,'dragonBones.DragonBones'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var Animation = (function () { - function Animation(armature) { - this._animationStateCount = 0; - this._armature = armature; - this._animationList = []; - this._animationStateList = []; - this._timeScale = 1; - this._isPlaying = false; - this.tweenEnabled = true; - } - var d = __define,c=Animation,p=c.prototype; - p.dispose = function () { - if (!this._armature) { - return; - } - this._resetAnimationStateList(); - this._animationList.length = 0; - this._armature = null; - this._animationDataList = null; - this._animationList = null; - this._animationStateList = null; - }; - p._resetAnimationStateList = function () { - var i = this._animationStateList.length; - var animationState; - while (i--) { - animationState = this._animationStateList[i]; - animationState._resetTimelineStateList(); - dragonBones.AnimationState._returnObject(animationState); - } - this._animationStateList.length = 0; - }; - p.gotoAndPlay = function (animationName, fadeInTime, duration, playTimes, layer, group, fadeOutMode, pauseFadeOut, pauseFadeIn) { - if (fadeInTime === void 0) { fadeInTime = -1; } - if (duration === void 0) { duration = -1; } - if (playTimes === void 0) { playTimes = NaN; } - if (layer === void 0) { layer = 0; } - if (group === void 0) { group = null; } - if (fadeOutMode === void 0) { fadeOutMode = Animation.SAME_LAYER_AND_GROUP; } - if (pauseFadeOut === void 0) { pauseFadeOut = true; } - if (pauseFadeIn === void 0) { pauseFadeIn = true; } - if (!this._animationDataList) { - return null; - } - var i = this._animationDataList.length; - var animationData; - while (i--) { - if (this._animationDataList[i].name == animationName) { - animationData = this._animationDataList[i]; - break; - } - } - if (!animationData) { - return null; - } - var needUpdate = this._isPlaying == false; - this._isPlaying = true; - this._isFading = true; - fadeInTime = fadeInTime < 0 ? (animationData.fadeTime < 0 ? 0.3 : animationData.fadeTime) : fadeInTime; - var durationScale; - if (duration < 0) { - durationScale = animationData.scale < 0 ? 1 : animationData.scale; - } - else { - durationScale = duration * 1000 / animationData.duration; - } - playTimes = isNaN(playTimes) ? animationData.playTimes : playTimes; - var animationState; - switch (fadeOutMode) { - case Animation.NONE: - break; - case Animation.SAME_LAYER: - i = this._animationStateList.length; - while (i--) { - animationState = this._animationStateList[i]; - if (animationState.layer == layer) { - animationState.fadeOut(fadeInTime, pauseFadeOut); - } - } - break; - case Animation.SAME_GROUP: - i = this._animationStateList.length; - while (i--) { - animationState = this._animationStateList[i]; - if (animationState.group == group) { - animationState.fadeOut(fadeInTime, pauseFadeOut); - } - } - break; - case Animation.ALL: - i = this._animationStateList.length; - while (i--) { - animationState = this._animationStateList[i]; - animationState.fadeOut(fadeInTime, pauseFadeOut); - } - break; - case Animation.SAME_LAYER_AND_GROUP: - default: - i = this._animationStateList.length; - while (i--) { - animationState = this._animationStateList[i]; - if (animationState.layer == layer && animationState.group == group) { - animationState.fadeOut(fadeInTime, pauseFadeOut); - } - } - break; - } - this._lastAnimationState = dragonBones.AnimationState._borrowObject(); - this._lastAnimationState._layer = layer; - this._lastAnimationState._group = group; - this._lastAnimationState.autoTween = this.tweenEnabled; - this._lastAnimationState._fadeIn(this._armature, animationData, fadeInTime, 1 / durationScale, playTimes, pauseFadeIn); - this.addState(this._lastAnimationState); - var slotList = this._armature.getSlots(false); - i = slotList.length; - while (i--) { - var slot = slotList[i]; - if (slot.childArmature) { - slot.childArmature.animation.gotoAndPlay(animationName, fadeInTime); - } - } - if (needUpdate) { - this._armature.advanceTime(0); - } - return this._lastAnimationState; - }; - p.gotoAndStop = function (animationName, time, normalizedTime, fadeInTime, duration, layer, group, fadeOutMode) { - if (normalizedTime === void 0) { normalizedTime = -1; } - if (fadeInTime === void 0) { fadeInTime = 0; } - if (duration === void 0) { duration = -1; } - if (layer === void 0) { layer = 0; } - if (group === void 0) { group = null; } - if (fadeOutMode === void 0) { fadeOutMode = Animation.ALL; } - var animationState = this.getState(animationName, layer); - if (!animationState) { - animationState = this.gotoAndPlay(animationName, fadeInTime, duration, NaN, layer, group, fadeOutMode); - } - if (normalizedTime >= 0) { - animationState.setCurrentTime(animationState.totalTime * normalizedTime); - } - else { - animationState.setCurrentTime(time); - } - animationState.stop(); - return animationState; - }; - p.play = function () { - if (!this._animationDataList || this._animationDataList.length == 0) { - return; - } - if (!this._lastAnimationState) { - this.gotoAndPlay(this._animationDataList[0].name); - } - else if (!this._isPlaying) { - this._isPlaying = true; - } - else { - this.gotoAndPlay(this._lastAnimationState.name); - } - }; - p.stop = function () { - this._isPlaying = false; - }; - p.getState = function (name, layer) { - if (layer === void 0) { layer = 0; } - var i = this._animationStateList.length; - while (i--) { - var animationState = this._animationStateList[i]; - if (animationState.name == name && animationState.layer == layer) { - return animationState; - } - } - return null; - }; - p.hasAnimation = function (animationName) { - var i = this._animationDataList.length; - while (i--) { - if (this._animationDataList[i].name == animationName) { - return true; - } - } - return false; - }; - p._advanceTime = function (passedTime) { - if (!this._isPlaying) { - return; - } - var isFading = false; - passedTime *= this._timeScale; - var i = this._animationStateList.length; - while (i--) { - var animationState = this._animationStateList[i]; - if (animationState._advanceTime(passedTime)) { - this.removeState(animationState); - } - else if (animationState.fadeState != 1) { - isFading = true; - } - } - this._isFading = isFading; - }; - p._updateAnimationStates = function () { - var i = this._animationStateList.length; - while (i--) { - this._animationStateList[i]._updateTimelineStates(); - } - }; - p.addState = function (animationState) { - if (this._animationStateList.indexOf(animationState) < 0) { - this._animationStateList.unshift(animationState); - this._animationStateCount = this._animationStateList.length; - } - }; - p.removeState = function (animationState) { - var index = this._animationStateList.indexOf(animationState); - if (index >= 0) { - this._animationStateList.splice(index, 1); - dragonBones.AnimationState._returnObject(animationState); - if (this._lastAnimationState == animationState) { - if (this._animationStateList.length > 0) { - this._lastAnimationState = this._animationStateList[0]; - } - else { - this._lastAnimationState = null; - } - } - this._animationStateCount = this._animationStateList.length; - } - }; - d(p, "movementList" - ,function () { - return this._animationList; - } - ); - d(p, "movementID" - ,function () { - return this.lastAnimationName; - } - ); - d(p, "lastAnimationState" - ,function () { - return this._lastAnimationState; - } - ); - d(p, "lastAnimationName" - ,function () { - return this._lastAnimationState ? this._lastAnimationState.name : null; - } - ); - d(p, "animationList" - ,function () { - return this._animationList; - } - ); - d(p, "isPlaying" - ,function () { - return this._isPlaying && !this.isComplete; - } - ); - d(p, "isComplete" - ,function () { - if (this._lastAnimationState) { - if (!this._lastAnimationState.isComplete) { - return false; - } - var i = this._animationStateList.length; - while (i--) { - if (!this._animationStateList[i].isComplete) { - return false; - } - } - return true; - } - return true; - } - ); - d(p, "timeScale" - ,function () { - return this._timeScale; - } - ,function (value) { - if (isNaN(value) || value < 0) { - value = 1; - } - this._timeScale = value; - } - ); - d(p, "animationDataList" - ,function () { - return this._animationDataList; - } - ,function (value) { - this._animationDataList = value; - this._animationList.length = 0; - for (var i = 0, len = this._animationDataList.length; i < len; i++) { - var animationData = this._animationDataList[i]; - this._animationList[this._animationList.length] = animationData.name; - } - } - ); - Animation.NONE = "none"; - Animation.SAME_LAYER = "sameLayer"; - Animation.SAME_GROUP = "sameGroup"; - Animation.SAME_LAYER_AND_GROUP = "sameLayerAndGroup"; - Animation.ALL = "all"; - return Animation; - })(); - dragonBones.Animation = Animation; - egret.registerClass(Animation,'dragonBones.Animation'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var AnimationState = (function () { - function AnimationState() { - this._layer = 0; - this._currentFrameIndex = 0; - this._currentFramePosition = 0; - this._currentFrameDuration = 0; - this._currentPlayTimes = 0; - this._totalTime = 0; - this._currentTime = 0; - this._lastTime = 0; - this._fadeState = 0; - this._playTimes = 0; - this._timelineStateList = []; - this._slotTimelineStateList = []; - this._boneMasks = []; - } - var d = __define,c=AnimationState,p=c.prototype; - AnimationState._borrowObject = function () { - if (AnimationState._pool.length == 0) { - return new AnimationState(); - } - return AnimationState._pool.pop(); - }; - AnimationState._returnObject = function (animationState) { - animationState.clear(); - if (AnimationState._pool.indexOf(animationState) < 0) { - AnimationState._pool[AnimationState._pool.length] = animationState; - } - }; - AnimationState._clear = function () { - var i = AnimationState._pool.length; - while (i--) { - AnimationState._pool[i].clear(); - } - AnimationState._pool.length = 0; - dragonBones.TimelineState._clear(); - }; - p.clear = function () { - this._resetTimelineStateList(); - this._boneMasks.length = 0; - this._armature = null; - this._clip = null; - }; - p._resetTimelineStateList = function () { - var i = this._timelineStateList.length; - while (i--) { - dragonBones.TimelineState._returnObject(this._timelineStateList[i]); - } - this._timelineStateList.length = 0; - i = this._slotTimelineStateList.length; - while (i--) { - dragonBones.SlotTimelineState._returnObject(this._slotTimelineStateList[i]); - } - this._slotTimelineStateList.length = 0; - }; - p.containsBoneMask = function (boneName) { - return this._boneMasks.length == 0 || this._boneMasks.indexOf(boneName) >= 0; - }; - p.addBoneMask = function (boneName, ifInvolveChildBones) { - if (ifInvolveChildBones === void 0) { ifInvolveChildBones = true; } - this.addBoneToBoneMask(boneName); - if (ifInvolveChildBones) { - var currentBone = this._armature.getBone(boneName); - if (currentBone) { - var boneList = this._armature.getBones(false); - var i = boneList.length; - while (i--) { - var tempBone = boneList[i]; - if (currentBone.contains(tempBone)) { - this.addBoneToBoneMask(tempBone.name); - } - } - } - } - this._updateTimelineStates(); - return this; - }; - p.removeBoneMask = function (boneName, ifInvolveChildBones) { - if (ifInvolveChildBones === void 0) { ifInvolveChildBones = true; } - this.removeBoneFromBoneMask(boneName); - if (ifInvolveChildBones) { - var currentBone = this._armature.getBone(boneName); - if (currentBone) { - var boneList = this._armature.getBones(false); - var i = boneList.length; - while (i--) { - var tempBone = boneList[i]; - if (currentBone.contains(tempBone)) { - this.removeBoneFromBoneMask(tempBone.name); - } - } - } - } - this._updateTimelineStates(); - return this; - }; - p.removeAllMixingTransform = function () { - this._boneMasks.length = 0; - this._updateTimelineStates(); - return this; - }; - p.addBoneToBoneMask = function (boneName) { - if (this._clip.getTimeline(boneName) && this._boneMasks.indexOf(boneName) < 0) { - this._boneMasks.push(boneName); - } - }; - p.removeBoneFromBoneMask = function (boneName) { - var index = this._boneMasks.indexOf(boneName); - if (index >= 0) { - this._boneMasks.splice(index, 1); - } - }; - p._updateTimelineStates = function () { - var timelineState; - var slotTimelineState; - var i = this._timelineStateList.length; - var len; - while (i--) { - timelineState = this._timelineStateList[i]; - if (!this._armature.getBone(timelineState.name)) { - this.removeTimelineState(timelineState); - } - } - i = this._slotTimelineStateList.length; - while (i--) { - slotTimelineState = this._slotTimelineStateList[i]; - if (!this._armature.getSlot(slotTimelineState.name)) { - this.removeSlotTimelineState(slotTimelineState); - } - } - if (this._boneMasks.length > 0) { - i = this._timelineStateList.length; - while (i--) { - timelineState = this._timelineStateList[i]; - if (this._boneMasks.indexOf(timelineState.name) < 0) { - this.removeTimelineState(timelineState); - } - } - for (i = 0, len = this._boneMasks.length; i < len; i++) { - var timelineName = this._boneMasks[i]; - this.addTimelineState(timelineName); - } - } - else { - for (i = 0, len = this._clip.timelineList.length; i < len; i++) { - var timeline = this._clip.timelineList[i]; - this.addTimelineState(timeline.name); - } - } - for (i = 0, len = this._clip.slotTimelineList.length; i < len; i++) { - var slotTimeline = this._clip.slotTimelineList[i]; - this.addSlotTimelineState(slotTimeline.name); - } - }; - p.addTimelineState = function (timelineName) { - var bone = this._armature.getBone(timelineName); - if (bone) { - for (var i = 0, len = this._timelineStateList.length; i < len; i++) { - var eachState = this._timelineStateList[i]; - if (eachState.name == timelineName) { - return; - } - } - var timelineState = dragonBones.TimelineState._borrowObject(); - timelineState._fadeIn(bone, this, this._clip.getTimeline(timelineName)); - this._timelineStateList.push(timelineState); - } - }; - p.removeTimelineState = function (timelineState) { - var index = this._timelineStateList.indexOf(timelineState); - this._timelineStateList.splice(index, 1); - dragonBones.TimelineState._returnObject(timelineState); - }; - p.addSlotTimelineState = function (timelineName) { - var slot = this._armature.getSlot(timelineName); - if (slot) { - for (var i = 0, len = this._slotTimelineStateList.length; i < len; i++) { - var eachState = this._slotTimelineStateList[i]; - if (eachState.name == timelineName) { - return; - } - } - var timelineState = dragonBones.SlotTimelineState._borrowObject(); - timelineState._fadeIn(slot, this, this._clip.getSlotTimeline(timelineName)); - this._slotTimelineStateList.push(timelineState); - } - }; - p.removeSlotTimelineState = function (timelineState) { - var index = this._slotTimelineStateList.indexOf(timelineState); - this._slotTimelineStateList.splice(index, 1); - dragonBones.SlotTimelineState._returnObject(timelineState); - }; - p.play = function () { - this._isPlaying = true; - return this; - }; - p.stop = function () { - this._isPlaying = false; - return this; - }; - p._fadeIn = function (armature, clip, fadeTotalTime, timeScale, playTimes, pausePlayhead) { - this._armature = armature; - this._clip = clip; - this._pausePlayheadInFade = pausePlayhead; - this._name = this._clip.name; - this._totalTime = this._clip.duration; - this.autoTween = this._clip.autoTween; - this.setTimeScale(timeScale); - this.setPlayTimes(playTimes); - this._isComplete = false; - this._currentFrameIndex = -1; - this._currentPlayTimes = -1; - if (Math.round(this._totalTime * this._clip.frameRate * 0.001) < 2 || timeScale == Infinity) { - this._currentTime = this._totalTime; - } - else { - this._currentTime = -1; - } - this._time = 0; - this._boneMasks.length = 0; - this._isFadeOut = false; - this._fadeWeight = 0; - this._fadeTotalWeight = 1; - this._fadeState = -1; - this._fadeCurrentTime = 0; - this._fadeBeginTime = this._fadeCurrentTime; - this._fadeTotalTime = fadeTotalTime * this._timeScale; - this._isPlaying = true; - this.displayControl = true; - this.lastFrameAutoTween = true; - this.additiveBlending = false; - this.weight = 1; - this.fadeOutTime = fadeTotalTime; - this._updateTimelineStates(); - return this; - }; - p.fadeOut = function (fadeTotalTime, pausePlayhead) { - if (!this._armature) { - return null; - } - if (isNaN(fadeTotalTime) || fadeTotalTime < 0) { - fadeTotalTime = 0; - } - this._pausePlayheadInFade = pausePlayhead; - if (this._isFadeOut) { - if (fadeTotalTime > this._fadeTotalTime / this._timeScale - (this._fadeCurrentTime - this._fadeBeginTime)) { - return this; - } - } - else { - for (var i = 0, len = this._timelineStateList.length; i < len; i++) { - var timelineState = this._timelineStateList[i]; - timelineState._fadeOut(); - } - } - this._isFadeOut = true; - this._fadeTotalWeight = this._fadeWeight; - this._fadeState = -1; - this._fadeBeginTime = this._fadeCurrentTime; - this._fadeTotalTime = this._fadeTotalWeight >= 0 ? fadeTotalTime * this._timeScale : 0; - this.displayControl = false; - return this; - }; - p._advanceTime = function (passedTime) { - passedTime *= this._timeScale; - this.advanceFadeTime(passedTime); - if (this._fadeWeight) { - this.advanceTimelinesTime(passedTime); - } - return this._isFadeOut && this._fadeState == 1; - }; - p.advanceFadeTime = function (passedTime) { - var fadeStartFlg = false; - var fadeCompleteFlg = false; - if (this._fadeBeginTime >= 0) { - var fadeState = this._fadeState; - this._fadeCurrentTime += passedTime < 0 ? -passedTime : passedTime; - if (this._fadeCurrentTime >= this._fadeBeginTime + this._fadeTotalTime) { - if (this._fadeWeight == 1 || - this._fadeWeight == 0) { - fadeState = 1; - if (this._pausePlayheadInFade) { - this._pausePlayheadInFade = false; - this._currentTime = -1; - } - } - this._fadeWeight = this._isFadeOut ? 0 : 1; - } - else if (this._fadeCurrentTime >= this._fadeBeginTime) { - fadeState = 0; - this._fadeWeight = (this._fadeCurrentTime - this._fadeBeginTime) / this._fadeTotalTime * this._fadeTotalWeight; - if (this._isFadeOut) { - this._fadeWeight = this._fadeTotalWeight - this._fadeWeight; - } - } - else { - fadeState = -1; - this._fadeWeight = this._isFadeOut ? 1 : 0; - } - if (this._fadeState != fadeState) { - if (this._fadeState == -1) { - fadeStartFlg = true; - } - if (fadeState == 1) { - fadeCompleteFlg = true; - } - this._fadeState = fadeState; - } - } - var event; - if (fadeStartFlg) { - if (this._isFadeOut) { - if (this._armature.hasEventListener(dragonBones.AnimationEvent.FADE_OUT)) { - event = new dragonBones.AnimationEvent(dragonBones.AnimationEvent.FADE_OUT); - event.animationState = this; - this._armature._eventList.push(event); - } - } - else { - this.hideBones(); - if (this._armature.hasEventListener(dragonBones.AnimationEvent.FADE_IN)) { - event = new dragonBones.AnimationEvent(dragonBones.AnimationEvent.FADE_IN); - event.animationState = this; - this._armature._eventList.push(event); - } - } - } - if (fadeCompleteFlg) { - if (this._isFadeOut) { - if (this._armature.hasEventListener(dragonBones.AnimationEvent.FADE_OUT_COMPLETE)) { - event = new dragonBones.AnimationEvent(dragonBones.AnimationEvent.FADE_OUT_COMPLETE); - event.animationState = this; - this._armature._eventList.push(event); - } - } - else { - if (this._armature.hasEventListener(dragonBones.AnimationEvent.FADE_IN_COMPLETE)) { - event = new dragonBones.AnimationEvent(dragonBones.AnimationEvent.FADE_IN_COMPLETE); - event.animationState = this; - this._armature._eventList.push(event); - } - } - } - }; - p.advanceTimelinesTime = function (passedTime) { - if (this._isPlaying && !this._pausePlayheadInFade) { - this._time += passedTime; - } - var startFlg = false; - var completeFlg = false; - var loopCompleteFlg = false; - var isThisComplete = false; - var currentPlayTimes = 0; - var currentTime = this._time * 1000; - if (this._playTimes == 0) { - isThisComplete = false; - currentPlayTimes = Math.ceil(Math.abs(currentTime) / this._totalTime) || 1; - if (currentTime >= 0) { - currentTime -= Math.floor(currentTime / this._totalTime) * this._totalTime; - } - else { - currentTime -= Math.ceil(currentTime / this._totalTime) * this._totalTime; - } - if (currentTime < 0) { - currentTime += this._totalTime; - } - } - else { - var totalTimes = this._playTimes * this._totalTime; - if (currentTime >= totalTimes) { - currentTime = totalTimes; - isThisComplete = true; - } - else if (currentTime <= -totalTimes) { - currentTime = -totalTimes; - isThisComplete = true; - } - else { - isThisComplete = false; - } - if (currentTime < 0) { - currentTime += totalTimes; - } - currentPlayTimes = Math.ceil(currentTime / this._totalTime) || 1; - if (currentTime >= 0) { - currentTime -= Math.floor(currentTime / this._totalTime) * this._totalTime; - } - else { - currentTime -= Math.ceil(currentTime / this._totalTime) * this._totalTime; - } - if (isThisComplete) { - currentTime = this._totalTime; - } - } - this._isComplete = isThisComplete; - var progress = this._time * 1000 / this._totalTime; - var i = 0; - var len = 0; - for (i = 0, len = this._timelineStateList.length; i < len; i++) { - var timeline = this._timelineStateList[i]; - timeline._update(progress); - this._isComplete = timeline._isComplete && this._isComplete; - } - for (i = 0, len = this._slotTimelineStateList.length; i < len; i++) { - var slotTimeline = this._slotTimelineStateList[i]; - slotTimeline._update(progress); - this._isComplete = timeline._isComplete && this._isComplete; - } - if (this._currentTime != currentTime) { - if (this._currentPlayTimes != currentPlayTimes) { - if (this._currentPlayTimes > 0 && currentPlayTimes > 1) { - loopCompleteFlg = true; - } - this._currentPlayTimes = currentPlayTimes; - } - if (this._currentTime < 0) { - startFlg = true; - } - if (this._isComplete) { - completeFlg = true; - } - this._lastTime = this._currentTime; - this._currentTime = currentTime; - this.updateMainTimeline(isThisComplete); - } - var event; - if (startFlg) { - if (this._armature.hasEventListener(dragonBones.AnimationEvent.START)) { - event = new dragonBones.AnimationEvent(dragonBones.AnimationEvent.START); - event.animationState = this; - this._armature._eventList.push(event); - } - } - if (completeFlg) { - if (this._armature.hasEventListener(dragonBones.AnimationEvent.COMPLETE)) { - event = new dragonBones.AnimationEvent(dragonBones.AnimationEvent.COMPLETE); - event.animationState = this; - this._armature._eventList.push(event); - } - if (this.autoFadeOut) { - this.fadeOut(this.fadeOutTime, true); - } - } - else if (loopCompleteFlg) { - if (this._armature.hasEventListener(dragonBones.AnimationEvent.LOOP_COMPLETE)) { - event = new dragonBones.AnimationEvent(dragonBones.AnimationEvent.LOOP_COMPLETE); - event.animationState = this; - this._armature._eventList.push(event); - } - } - }; - p.updateMainTimeline = function (isThisComplete) { - var frameList = this._clip.frameList; - if (frameList.length > 0) { - var prevFrame; - var currentFrame; - for (var i = 0, l = this._clip.frameList.length; i < l; ++i) { - if (this._currentFrameIndex < 0) { - this._currentFrameIndex = 0; - } - else if (this._currentTime < this._currentFramePosition || this._currentTime >= this._currentFramePosition + this._currentFrameDuration || this._currentTime < this._lastTime) { - this._currentFrameIndex++; - this._lastTime = this._currentTime; - if (this._currentFrameIndex >= frameList.length) { - if (isThisComplete) { - this._currentFrameIndex--; - break; - } - else { - this._currentFrameIndex = 0; - } - } - } - else { - break; - } - currentFrame = frameList[this._currentFrameIndex]; - if (prevFrame) { - this._armature._arriveAtFrame(prevFrame, null, this, true); - } - this._currentFrameDuration = currentFrame.duration; - this._currentFramePosition = currentFrame.position; - prevFrame = currentFrame; - } - if (currentFrame) { - this._armature._arriveAtFrame(currentFrame, null, this, false); - } - } - }; - p.hideBones = function () { - for (var i = 0, len = this._clip.hideTimelineNameMap.length; i < len; i++) { - var timelineName = this._clip.hideTimelineNameMap[i]; - var bone = this._armature.getBone(timelineName); - if (bone) { - bone._hideSlots(); - } - } - var slotTimelineName; - for (i = 0, len = this._clip.hideSlotTimelineNameMap.length; i < len; i++) { - slotTimelineName = this._clip.hideSlotTimelineNameMap[i]; - var slot = this._armature.getSlot(slotTimelineName); - if (slot) { - slot._resetToOrigin(); - } - } - }; - p.setAdditiveBlending = function (value) { - this.additiveBlending = value; - return this; - }; - p.setAutoFadeOut = function (value, fadeOutTime) { - if (fadeOutTime === void 0) { fadeOutTime = -1; } - this.autoFadeOut = value; - if (fadeOutTime >= 0) { - this.fadeOutTime = fadeOutTime * this._timeScale; - } - return this; - }; - p.setWeight = function (value) { - if (isNaN(value) || value < 0) { - value = 1; - } - this.weight = value; - return this; - }; - p.setFrameTween = function (autoTween, lastFrameAutoTween) { - this.autoTween = autoTween; - this.lastFrameAutoTween = lastFrameAutoTween; - return this; - }; - p.setCurrentTime = function (value) { - if (value < 0 || isNaN(value)) { - value = 0; - } - this._time = value; - this._currentTime = this._time * 1000; - return this; - }; - p.setTimeScale = function (value) { - if (isNaN(value) || value == Infinity) { - value = 1; - } - this._timeScale = value; - return this; - }; - p.setPlayTimes = function (value) { - if (value === void 0) { value = 0; } - if (Math.round(this._totalTime * 0.001 * this._clip.frameRate) < 2) { - this._playTimes = value < 0 ? -1 : 1; - } - else { - this._playTimes = value < 0 ? -value : value; - } - this.autoFadeOut = value < 0 ? true : false; - return this; - }; - d(p, "name" - ,function () { - return this._name; - } - ); - d(p, "layer" - ,function () { - return this._layer; - } - ); - d(p, "group" - ,function () { - return this._group; - } - ); - d(p, "clip" - ,function () { - return this._clip; - } - ); - d(p, "isComplete" - ,function () { - return this._isComplete; - } - ); - d(p, "isPlaying" - ,function () { - return (this._isPlaying && !this._isComplete); - } - ); - d(p, "currentPlayTimes" - ,function () { - return this._currentPlayTimes < 0 ? 0 : this._currentPlayTimes; - } - ); - d(p, "totalTime" - ,function () { - return this._totalTime * 0.001; - } - ); - d(p, "currentTime" - ,function () { - return this._currentTime < 0 ? 0 : this._currentTime * 0.001; - } - ); - d(p, "fadeWeight" - ,function () { - return this._fadeWeight; - } - ); - d(p, "fadeState" - ,function () { - return this._fadeState; - } - ); - d(p, "fadeTotalTime" - ,function () { - return this._fadeTotalTime; - } - ); - d(p, "timeScale" - ,function () { - return this._timeScale; - } - ); - d(p, "playTimes" - ,function () { - return this._playTimes; - } - ); - AnimationState._pool = []; - return AnimationState; - })(); - dragonBones.AnimationState = AnimationState; - egret.registerClass(AnimationState,'dragonBones.AnimationState'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var SlotTimelineState = (function () { - function SlotTimelineState() { - this._totalTime = 0; - this._currentTime = 0; - this._currentFrameIndex = 0; - this._currentFramePosition = 0; - this._currentFrameDuration = 0; - this._updateMode = 0; - this._durationColor = new dragonBones.ColorTransform(); - } - var d = __define,c=SlotTimelineState,p=c.prototype; - SlotTimelineState._borrowObject = function () { - if (SlotTimelineState._pool.length == 0) { - return new SlotTimelineState(); - } - return SlotTimelineState._pool.pop(); - }; - SlotTimelineState._returnObject = function (timeline) { - if (SlotTimelineState._pool.indexOf(timeline) < 0) { - SlotTimelineState._pool[SlotTimelineState._pool.length] = timeline; - } - timeline.clear(); - }; - SlotTimelineState._clear = function () { - var i = SlotTimelineState._pool.length; - while (i--) { - SlotTimelineState._pool[i].clear(); - } - SlotTimelineState._pool.length = 0; - }; - p.clear = function () { - if (this._slot) { - this._slot._removeState(this); - this._slot = null; - } - this._armature = null; - this._animation = null; - this._animationState = null; - this._timelineData = null; - }; - p._fadeIn = function (slot, animationState, timelineData) { - this._slot = slot; - this._armature = this._slot.armature; - this._animation = this._armature.animation; - this._animationState = animationState; - this._timelineData = timelineData; - this.name = timelineData.name; - this._totalTime = this._timelineData.duration; - this._rawAnimationScale = this._animationState.clip.scale; - this._isComplete = false; - this._blendEnabled = false; - this._tweenColor = false; - this._currentFrameIndex = -1; - this._currentTime = -1; - this._tweenEasing = NaN; - this._weight = 1; - switch (this._timelineData.frameList.length) { - case 0: - this._updateMode = 0; - break; - case 1: - this._updateMode = 1; - break; - default: - this._updateMode = -1; - break; - } - this._slot._addState(this); - }; - p._fadeOut = function () { - }; - p._update = function (progress) { - if (this._updateMode == -1) { - this.updateMultipleFrame(progress); - } - else if (this._updateMode == 1) { - this._updateMode = 0; - this.updateSingleFrame(); - } - }; - p.updateMultipleFrame = function (progress) { - var currentPlayTimes = 0; - progress /= this._timelineData.scale; - progress += this._timelineData.offset; - var currentTime = this._totalTime * progress; - var playTimes = this._animationState.playTimes; - if (playTimes == 0) { - this._isComplete = false; - currentPlayTimes = Math.ceil(Math.abs(currentTime) / this._totalTime) || 1; - if (currentTime >= 0) { - currentTime -= Math.floor(currentTime / this._totalTime) * this._totalTime; - } - else { - currentTime -= Math.ceil(currentTime / this._totalTime) * this._totalTime; - } - if (currentTime < 0) { - currentTime += this._totalTime; - } - } - else { - var totalTimes = playTimes * this._totalTime; - if (currentTime >= totalTimes) { - currentTime = totalTimes; - this._isComplete = true; - } - else if (currentTime <= -totalTimes) { - currentTime = -totalTimes; - this._isComplete = true; - } - else { - this._isComplete = false; - } - if (currentTime < 0) { - currentTime += totalTimes; - } - currentPlayTimes = Math.ceil(currentTime / this._totalTime) || 1; - if (this._isComplete) { - currentTime = this._totalTime; - } - else { - if (currentTime >= 0) { - currentTime -= Math.floor(currentTime / this._totalTime) * this._totalTime; - } - else { - currentTime -= Math.ceil(currentTime / this._totalTime) * this._totalTime; - } - } - } - if (this._currentTime != currentTime) { - this._currentTime = currentTime; - var frameList = this._timelineData.frameList; - var prevFrame; - var currentFrame; - for (var i = 0, l = this._timelineData.frameList.length; i < l; ++i) { - if (this._currentFrameIndex < 0) { - this._currentFrameIndex = 0; - } - else if (this._currentTime < this._currentFramePosition || this._currentTime >= this._currentFramePosition + this._currentFrameDuration) { - this._currentFrameIndex++; - if (this._currentFrameIndex >= frameList.length) { - if (this._isComplete) { - this._currentFrameIndex--; - break; - } - else { - this._currentFrameIndex = 0; - } - } - } - else { - break; - } - currentFrame = (frameList[this._currentFrameIndex]); - if (prevFrame) { - this._slot._arriveAtFrame(prevFrame, this, this._animationState, true); - } - this._currentFrameDuration = currentFrame.duration; - this._currentFramePosition = currentFrame.position; - prevFrame = currentFrame; - } - if (currentFrame) { - this._slot._arriveAtFrame(currentFrame, this, this._animationState, false); - this._blendEnabled = currentFrame.displayIndex >= 0; - if (this._blendEnabled) { - this.updateToNextFrame(currentPlayTimes); - } - else { - this._tweenEasing = NaN; - this._tweenColor = false; - } - } - if (this._blendEnabled) { - this.updateTween(); - } - } - }; - p.updateToNextFrame = function (currentPlayTimes) { - if (currentPlayTimes === void 0) { currentPlayTimes = 0; } - var nextFrameIndex = this._currentFrameIndex + 1; - if (nextFrameIndex >= this._timelineData.frameList.length) { - nextFrameIndex = 0; - } - var currentFrame = (this._timelineData.frameList[this._currentFrameIndex]); - var nextFrame = (this._timelineData.frameList[nextFrameIndex]); - var tweenEnabled = false; - if (nextFrameIndex == 0 && - (!this._animationState.lastFrameAutoTween || - (this._animationState.playTimes && - this._animationState.currentPlayTimes >= this._animationState.playTimes && - ((this._currentFramePosition + this._currentFrameDuration) / this._totalTime + currentPlayTimes - this._timelineData.offset) * this._timelineData.scale > 0.999999))) { - this._tweenEasing = NaN; - tweenEnabled = false; - } - else if (currentFrame.displayIndex < 0 || nextFrame.displayIndex < 0) { - this._tweenEasing = NaN; - tweenEnabled = false; - } - else if (this._animationState.autoTween) { - this._tweenEasing = this._animationState.clip.tweenEasing; - if (isNaN(this._tweenEasing)) { - this._tweenEasing = currentFrame.tweenEasing; - this._tweenCurve = currentFrame.curve; - if (isNaN(this._tweenEasing) && this._tweenCurve == null) { - tweenEnabled = false; - } - else { - if (this._tweenEasing == 10) { - this._tweenEasing = 0; - } - tweenEnabled = true; - } - } - else { - tweenEnabled = true; - } - } - else { - this._tweenEasing = currentFrame.tweenEasing; - this._tweenCurve = currentFrame.curve; - if ((isNaN(this._tweenEasing) || this._tweenEasing == 10) && this._tweenCurve == null) { - this._tweenEasing = NaN; - tweenEnabled = false; - } - else { - tweenEnabled = true; - } - } - if (tweenEnabled) { - if (currentFrame.color && nextFrame.color) { - this._durationColor.alphaOffset = nextFrame.color.alphaOffset - currentFrame.color.alphaOffset; - this._durationColor.redOffset = nextFrame.color.redOffset - currentFrame.color.redOffset; - this._durationColor.greenOffset = nextFrame.color.greenOffset - currentFrame.color.greenOffset; - this._durationColor.blueOffset = nextFrame.color.blueOffset - currentFrame.color.blueOffset; - this._durationColor.alphaMultiplier = nextFrame.color.alphaMultiplier - currentFrame.color.alphaMultiplier; - this._durationColor.redMultiplier = nextFrame.color.redMultiplier - currentFrame.color.redMultiplier; - this._durationColor.greenMultiplier = nextFrame.color.greenMultiplier - currentFrame.color.greenMultiplier; - this._durationColor.blueMultiplier = nextFrame.color.blueMultiplier - currentFrame.color.blueMultiplier; - if (this._durationColor.alphaOffset || - this._durationColor.redOffset || - this._durationColor.greenOffset || - this._durationColor.blueOffset || - this._durationColor.alphaMultiplier || - this._durationColor.redMultiplier || - this._durationColor.greenMultiplier || - this._durationColor.blueMultiplier) { - this._tweenColor = true; - } - else { - this._tweenColor = false; - } - } - else if (currentFrame.color) { - this._tweenColor = true; - this._durationColor.alphaOffset = -currentFrame.color.alphaOffset; - this._durationColor.redOffset = -currentFrame.color.redOffset; - this._durationColor.greenOffset = -currentFrame.color.greenOffset; - this._durationColor.blueOffset = -currentFrame.color.blueOffset; - this._durationColor.alphaMultiplier = 1 - currentFrame.color.alphaMultiplier; - this._durationColor.redMultiplier = 1 - currentFrame.color.redMultiplier; - this._durationColor.greenMultiplier = 1 - currentFrame.color.greenMultiplier; - this._durationColor.blueMultiplier = 1 - currentFrame.color.blueMultiplier; - } - else if (nextFrame.color) { - this._tweenColor = true; - this._durationColor.alphaOffset = nextFrame.color.alphaOffset; - this._durationColor.redOffset = nextFrame.color.redOffset; - this._durationColor.greenOffset = nextFrame.color.greenOffset; - this._durationColor.blueOffset = nextFrame.color.blueOffset; - this._durationColor.alphaMultiplier = nextFrame.color.alphaMultiplier - 1; - this._durationColor.redMultiplier = nextFrame.color.redMultiplier - 1; - this._durationColor.greenMultiplier = nextFrame.color.greenMultiplier - 1; - this._durationColor.blueMultiplier = nextFrame.color.blueMultiplier - 1; - } - else { - this._tweenColor = false; - } - } - else { - this._tweenColor = false; - } - if (!this._tweenColor && this._animationState.displayControl) { - if (currentFrame.color) { - this._slot._updateDisplayColor(currentFrame.color.alphaOffset, currentFrame.color.redOffset, currentFrame.color.greenOffset, currentFrame.color.blueOffset, currentFrame.color.alphaMultiplier, currentFrame.color.redMultiplier, currentFrame.color.greenMultiplier, currentFrame.color.blueMultiplier, true); - } - else if (this._slot._isColorChanged) { - this._slot._updateDisplayColor(0, 0, 0, 0, 1, 1, 1, 1, false); - } - } - }; - p.updateTween = function () { - var currentFrame = (this._timelineData.frameList[this._currentFrameIndex]); - if (this._tweenColor && this._animationState.displayControl) { - var progress = (this._currentTime - this._currentFramePosition) / this._currentFrameDuration; - if (this._tweenCurve != null) { - progress = this._tweenCurve.getValueByProgress(progress); - } - else if (this._tweenEasing) { - progress = dragonBones.MathUtil.getEaseValue(progress, this._tweenEasing); - } - if (currentFrame.color) { - this._slot._updateDisplayColor(currentFrame.color.alphaOffset + this._durationColor.alphaOffset * progress, currentFrame.color.redOffset + this._durationColor.redOffset * progress, currentFrame.color.greenOffset + this._durationColor.greenOffset * progress, currentFrame.color.blueOffset + this._durationColor.blueOffset * progress, currentFrame.color.alphaMultiplier + this._durationColor.alphaMultiplier * progress, currentFrame.color.redMultiplier + this._durationColor.redMultiplier * progress, currentFrame.color.greenMultiplier + this._durationColor.greenMultiplier * progress, currentFrame.color.blueMultiplier + this._durationColor.blueMultiplier * progress, true); - } - else { - this._slot._updateDisplayColor(this._durationColor.alphaOffset * progress, this._durationColor.redOffset * progress, this._durationColor.greenOffset * progress, this._durationColor.blueOffset * progress, 1 + this._durationColor.alphaMultiplier * progress, 1 + this._durationColor.redMultiplier * progress, 1 + this._durationColor.greenMultiplier * progress, 1 + this._durationColor.blueMultiplier * progress, true); - } - } - }; - p.updateSingleFrame = function () { - var currentFrame = (this._timelineData.frameList[0]); - this._slot._arriveAtFrame(currentFrame, this, this._animationState, false); - this._isComplete = true; - this._tweenEasing = NaN; - this._tweenColor = false; - this._blendEnabled = currentFrame.displayIndex >= 0; - if (this._blendEnabled) { - if (this._animationState.displayControl) { - if (currentFrame.color) { - this._slot._updateDisplayColor(currentFrame.color.alphaOffset, currentFrame.color.redOffset, currentFrame.color.greenOffset, currentFrame.color.blueOffset, currentFrame.color.alphaMultiplier, currentFrame.color.redMultiplier, currentFrame.color.greenMultiplier, currentFrame.color.blueMultiplier, true); - } - else if (this._slot._isColorChanged) { - this._slot._updateDisplayColor(0, 0, 0, 0, 1, 1, 1, 1, false); - } - } - } - }; - SlotTimelineState.HALF_PI = Math.PI * 0.5; - SlotTimelineState.DOUBLE_PI = Math.PI * 2; - SlotTimelineState._pool = []; - return SlotTimelineState; - })(); - dragonBones.SlotTimelineState = SlotTimelineState; - egret.registerClass(SlotTimelineState,'dragonBones.SlotTimelineState'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var TimelineState = (function () { - function TimelineState() { - this._totalTime = 0; - this._currentTime = 0; - this._lastTime = 0; - this._currentFrameIndex = 0; - this._currentFramePosition = 0; - this._currentFrameDuration = 0; - this._updateMode = 0; - this._transform = new dragonBones.DBTransform(); - this._pivot = new dragonBones.Point(); - this._durationTransform = new dragonBones.DBTransform(); - this._durationPivot = new dragonBones.Point(); - this._durationColor = new dragonBones.ColorTransform(); - } - var d = __define,c=TimelineState,p=c.prototype; - TimelineState._borrowObject = function () { - if (TimelineState._pool.length == 0) { - return new TimelineState(); - } - return TimelineState._pool.pop(); - }; - TimelineState._returnObject = function (timeline) { - if (TimelineState._pool.indexOf(timeline) < 0) { - TimelineState._pool[TimelineState._pool.length] = timeline; - } - timeline.clear(); - }; - TimelineState._clear = function () { - var i = TimelineState._pool.length; - while (i--) { - TimelineState._pool[i].clear(); - } - TimelineState._pool.length = 0; - }; - p.clear = function () { - if (this._bone) { - this._bone._removeState(this); - this._bone = null; - } - this._armature = null; - this._animation = null; - this._animationState = null; - this._timelineData = null; - this._originTransform = null; - this._originPivot = null; - }; - p._fadeIn = function (bone, animationState, timelineData) { - this._bone = bone; - this._armature = this._bone.armature; - this._animation = this._armature.animation; - this._animationState = animationState; - this._timelineData = timelineData; - this._originTransform = this._timelineData.originTransform; - this._originPivot = this._timelineData.originPivot; - this.name = timelineData.name; - this._totalTime = this._timelineData.duration; - this._rawAnimationScale = this._animationState.clip.scale; - this._isComplete = false; - this._tweenTransform = false; - this._tweenScale = false; - this._currentFrameIndex = -1; - this._currentTime = -1; - this._tweenEasing = NaN; - this._weight = 1; - this._transform.x = 0; - this._transform.y = 0; - this._transform.scaleX = 1; - this._transform.scaleY = 1; - this._transform.skewX = 0; - this._transform.skewY = 0; - this._pivot.x = 0; - this._pivot.y = 0; - this._durationTransform.x = 0; - this._durationTransform.y = 0; - this._durationTransform.scaleX = 1; - this._durationTransform.scaleY = 1; - this._durationTransform.skewX = 0; - this._durationTransform.skewY = 0; - this._durationPivot.x = 0; - this._durationPivot.y = 0; - switch (this._timelineData.frameList.length) { - case 0: - this._updateMode = 0; - break; - case 1: - this._updateMode = 1; - break; - default: - this._updateMode = -1; - break; - } - this._bone._addState(this); - }; - p._fadeOut = function () { - this._transform.skewX = dragonBones.TransformUtil.formatRadian(this._transform.skewX); - this._transform.skewY = dragonBones.TransformUtil.formatRadian(this._transform.skewY); - }; - p._update = function (progress) { - if (this._updateMode == -1) { - this.updateMultipleFrame(progress); - } - else if (this._updateMode == 1) { - this._updateMode = 0; - this.updateSingleFrame(); - } - }; - p.updateMultipleFrame = function (progress) { - var currentPlayTimes = 0; - progress /= this._timelineData.scale; - progress += this._timelineData.offset; - var currentTime = this._totalTime * progress; - var playTimes = this._animationState.playTimes; - if (playTimes == 0) { - this._isComplete = false; - currentPlayTimes = Math.ceil(Math.abs(currentTime) / this._totalTime) || 1; - if (currentTime >= 0) { - currentTime -= Math.floor(currentTime / this._totalTime) * this._totalTime; - } - else { - currentTime -= Math.ceil(currentTime / this._totalTime) * this._totalTime; - } - if (currentTime < 0) { - currentTime += this._totalTime; - } - } - else { - var totalTimes = playTimes * this._totalTime; - if (currentTime >= totalTimes) { - currentTime = totalTimes; - this._isComplete = true; - } - else if (currentTime <= -totalTimes) { - currentTime = -totalTimes; - this._isComplete = true; - } - else { - this._isComplete = false; - } - if (currentTime < 0) { - currentTime += totalTimes; - } - currentPlayTimes = Math.ceil(currentTime / this._totalTime) || 1; - if (this._isComplete) { - currentTime = this._totalTime; - } - else { - if (currentTime >= 0) { - currentTime -= Math.floor(currentTime / this._totalTime) * this._totalTime; - } - else { - currentTime -= Math.ceil(currentTime / this._totalTime) * this._totalTime; - } - } - } - if (this._currentTime != currentTime) { - this._lastTime = this._currentTime; - this._currentTime = currentTime; - var frameList = this._timelineData.frameList; - var prevFrame; - var currentFrame; - for (var i = 0, l = this._timelineData.frameList.length; i < l; ++i) { - if (this._currentFrameIndex < 0) { - this._currentFrameIndex = 0; - } - else if (this._currentTime < this._currentFramePosition || this._currentTime >= this._currentFramePosition + this._currentFrameDuration || this._currentTime < this._lastTime) { - this._currentFrameIndex++; - this._lastTime = this._currentTime; - if (this._currentFrameIndex >= frameList.length) { - if (this._isComplete) { - this._currentFrameIndex--; - break; - } - else { - this._currentFrameIndex = 0; - } - } - } - else { - break; - } - currentFrame = (frameList[this._currentFrameIndex]); - if (prevFrame) { - this._bone._arriveAtFrame(prevFrame, this, this._animationState, true); - } - this._currentFrameDuration = currentFrame.duration; - this._currentFramePosition = currentFrame.position; - prevFrame = currentFrame; - } - if (currentFrame) { - this._bone._arriveAtFrame(currentFrame, this, this._animationState, false); - this.updateToNextFrame(currentPlayTimes); - } - this.updateTween(); - } - }; - p.updateToNextFrame = function (currentPlayTimes) { - if (currentPlayTimes === void 0) { currentPlayTimes = 0; } - var nextFrameIndex = this._currentFrameIndex + 1; - if (nextFrameIndex >= this._timelineData.frameList.length) { - nextFrameIndex = 0; - } - var currentFrame = (this._timelineData.frameList[this._currentFrameIndex]); - var nextFrame = (this._timelineData.frameList[nextFrameIndex]); - var tweenEnabled = false; - if (nextFrameIndex == 0 && - (!this._animationState.lastFrameAutoTween || - (this._animationState.playTimes && - this._animationState.currentPlayTimes >= this._animationState.playTimes && - ((this._currentFramePosition + this._currentFrameDuration) / this._totalTime + currentPlayTimes - this._timelineData.offset) * this._timelineData.scale > 0.999999))) { - this._tweenEasing = NaN; - tweenEnabled = false; - } - else if (currentFrame.displayIndex < 0 || nextFrame.displayIndex < 0) { - this._tweenEasing = NaN; - tweenEnabled = false; - } - else if (this._animationState.autoTween) { - this._tweenEasing = this._animationState.clip.tweenEasing; - if (isNaN(this._tweenEasing)) { - this._tweenEasing = currentFrame.tweenEasing; - this._tweenCurve = currentFrame.curve; - if (isNaN(this._tweenEasing) && this._tweenCurve == null) { - tweenEnabled = false; - } - else { - if (this._tweenEasing == 10) { - this._tweenEasing = 0; - } - tweenEnabled = true; - } - } - else { - tweenEnabled = true; - } - } - else { - this._tweenEasing = currentFrame.tweenEasing; - this._tweenCurve = currentFrame.curve; - if ((isNaN(this._tweenEasing) || this._tweenEasing == 10) && this._tweenCurve == null) { - this._tweenEasing = NaN; - tweenEnabled = false; - } - else { - tweenEnabled = true; - } - } - if (tweenEnabled) { - this._durationTransform.x = nextFrame.transform.x - currentFrame.transform.x; - this._durationTransform.y = nextFrame.transform.y - currentFrame.transform.y; - this._durationTransform.skewX = nextFrame.transform.skewX - currentFrame.transform.skewX; - this._durationTransform.skewY = nextFrame.transform.skewY - currentFrame.transform.skewY; - this._durationTransform.scaleX = nextFrame.transform.scaleX - currentFrame.transform.scaleX + nextFrame.scaleOffset.x; - this._durationTransform.scaleY = nextFrame.transform.scaleY - currentFrame.transform.scaleY + nextFrame.scaleOffset.y; - this._durationTransform.normalizeRotation(); - if (nextFrameIndex == 0) { - this._durationTransform.skewX = dragonBones.TransformUtil.formatRadian(this._durationTransform.skewX); - this._durationTransform.skewY = dragonBones.TransformUtil.formatRadian(this._durationTransform.skewY); - } - this._durationPivot.x = nextFrame.pivot.x - currentFrame.pivot.x; - this._durationPivot.y = nextFrame.pivot.y - currentFrame.pivot.y; - if (this._durationTransform.x || - this._durationTransform.y || - this._durationTransform.skewX || - this._durationTransform.skewY || - this._durationTransform.scaleX || - this._durationTransform.scaleY || - this._durationPivot.x || - this._durationPivot.y) { - this._tweenTransform = true; - this._tweenScale = currentFrame.tweenScale; - } - else { - this._tweenTransform = false; - this._tweenScale = false; - } - } - else { - this._tweenTransform = false; - this._tweenScale = false; - } - if (!this._tweenTransform) { - if (this._animationState.additiveBlending) { - this._transform.x = currentFrame.transform.x; - this._transform.y = currentFrame.transform.y; - this._transform.skewX = currentFrame.transform.skewX; - this._transform.skewY = currentFrame.transform.skewY; - this._transform.scaleX = currentFrame.transform.scaleX; - this._transform.scaleY = currentFrame.transform.scaleY; - this._pivot.x = currentFrame.pivot.x; - this._pivot.y = currentFrame.pivot.y; - } - else { - this._transform.x = this._originTransform.x + currentFrame.transform.x; - this._transform.y = this._originTransform.y + currentFrame.transform.y; - this._transform.skewX = this._originTransform.skewX + currentFrame.transform.skewX; - this._transform.skewY = this._originTransform.skewY + currentFrame.transform.skewY; - this._transform.scaleX = this._originTransform.scaleX * currentFrame.transform.scaleX; - this._transform.scaleY = this._originTransform.scaleY * currentFrame.transform.scaleY; - this._pivot.x = this._originPivot.x + currentFrame.pivot.x; - this._pivot.y = this._originPivot.y + currentFrame.pivot.y; - } - this._bone.invalidUpdate(); - } - else if (!this._tweenScale) { - if (this._animationState.additiveBlending) { - this._transform.scaleX = currentFrame.transform.scaleX; - this._transform.scaleY = currentFrame.transform.scaleY; - } - else { - this._transform.scaleX = this._originTransform.scaleX * currentFrame.transform.scaleX; - this._transform.scaleY = this._originTransform.scaleY * currentFrame.transform.scaleY; - } - } - }; - p.updateTween = function () { - var currentFrame = (this._timelineData.frameList[this._currentFrameIndex]); - if (this._tweenTransform) { - var progress = (this._currentTime - this._currentFramePosition) / this._currentFrameDuration; - if (this._tweenCurve != null) { - progress = this._tweenCurve.getValueByProgress(progress); - } - else if (this._tweenEasing) { - progress = dragonBones.MathUtil.getEaseValue(progress, this._tweenEasing); - } - var currentTransform = currentFrame.transform; - var currentPivot = currentFrame.pivot; - if (this._animationState.additiveBlending) { - this._transform.x = currentTransform.x + this._durationTransform.x * progress; - this._transform.y = currentTransform.y + this._durationTransform.y * progress; - this._transform.skewX = currentTransform.skewX + this._durationTransform.skewX * progress; - this._transform.skewY = currentTransform.skewY + this._durationTransform.skewY * progress; - if (this._tweenScale) { - this._transform.scaleX = currentTransform.scaleX + this._durationTransform.scaleX * progress; - this._transform.scaleY = currentTransform.scaleY + this._durationTransform.scaleY * progress; - } - this._pivot.x = currentPivot.x + this._durationPivot.x * progress; - this._pivot.y = currentPivot.y + this._durationPivot.y * progress; - } - else { - this._transform.x = this._originTransform.x + currentTransform.x + this._durationTransform.x * progress; - this._transform.y = this._originTransform.y + currentTransform.y + this._durationTransform.y * progress; - this._transform.skewX = this._originTransform.skewX + currentTransform.skewX + this._durationTransform.skewX * progress; - this._transform.skewY = this._originTransform.skewY + currentTransform.skewY + this._durationTransform.skewY * progress; - if (this._tweenScale) { - this._transform.scaleX = this._originTransform.scaleX * currentTransform.scaleX + this._durationTransform.scaleX * progress; - this._transform.scaleY = this._originTransform.scaleY * currentTransform.scaleY + this._durationTransform.scaleY * progress; - } - this._pivot.x = this._originPivot.x + currentPivot.x + this._durationPivot.x * progress; - this._pivot.y = this._originPivot.y + currentPivot.y + this._durationPivot.y * progress; - } - this._bone.invalidUpdate(); - } - }; - p.updateSingleFrame = function () { - var currentFrame = (this._timelineData.frameList[0]); - this._bone._arriveAtFrame(currentFrame, this, this._animationState, false); - this._isComplete = true; - this._tweenEasing = NaN; - this._tweenTransform = false; - this._tweenScale = false; - this._tweenColor = false; - if (this._animationState.additiveBlending) { - this._transform.x = currentFrame.transform.x; - this._transform.y = currentFrame.transform.y; - this._transform.skewX = currentFrame.transform.skewX; - this._transform.skewY = currentFrame.transform.skewY; - this._transform.scaleX = currentFrame.transform.scaleX; - this._transform.scaleY = currentFrame.transform.scaleY; - this._pivot.x = currentFrame.pivot.x; - this._pivot.y = currentFrame.pivot.y; - } - else { - this._transform.x = this._originTransform.x + currentFrame.transform.x; - this._transform.y = this._originTransform.y + currentFrame.transform.y; - this._transform.skewX = this._originTransform.skewX + currentFrame.transform.skewX; - this._transform.skewY = this._originTransform.skewY + currentFrame.transform.skewY; - this._transform.scaleX = this._originTransform.scaleX * currentFrame.transform.scaleX; - this._transform.scaleY = this._originTransform.scaleY * currentFrame.transform.scaleY; - this._pivot.x = this._originPivot.x + currentFrame.pivot.x; - this._pivot.y = this._originPivot.y + currentFrame.pivot.y; - } - this._bone.invalidUpdate(); - }; - TimelineState.HALF_PI = Math.PI * 0.5; - TimelineState.DOUBLE_PI = Math.PI * 2; - TimelineState._pool = []; - return TimelineState; - })(); - dragonBones.TimelineState = TimelineState; - egret.registerClass(TimelineState,'dragonBones.TimelineState'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var WorldClock = (function () { - function WorldClock(time, timeScale) { - if (time === void 0) { time = -1; } - if (timeScale === void 0) { timeScale = 1; } - this._time = time >= 0 ? time : new Date().getTime() * 0.001; - this._timeScale = isNaN(timeScale) ? 1 : timeScale; - this._animatableList = []; - } - var d = __define,c=WorldClock,p=c.prototype; - d(p, "time" - ,function () { - return this._time; - } - ); - d(p, "timeScale" - ,function () { - return this._timeScale; - } - ,function (value) { - if (isNaN(value) || value < 0) { - value = 1; - } - this._timeScale = value; - } - ); - p.contains = function (animatable) { - return this._animatableList.indexOf(animatable) >= 0; - }; - p.add = function (animatable) { - if (animatable && this._animatableList.indexOf(animatable) == -1) { - this._animatableList.push(animatable); - } - }; - p.remove = function (animatable) { - var index = this._animatableList.indexOf(animatable); - if (index >= 0) { - this._animatableList[index] = null; - } - }; - p.clear = function () { - this._animatableList.length = 0; - }; - p.advanceTime = function (passedTime) { - if (passedTime === void 0) { passedTime = -1; } - if (passedTime < 0) { - passedTime = new Date().getTime() * 0.001 - this._time; - } - passedTime *= this._timeScale; - this._time += passedTime; - var length = this._animatableList.length; - if (length == 0) { - return; - } - var currentIndex = 0; - for (var i = 0; i < length; i++) { - var animatable = this._animatableList[i]; - if (animatable) { - if (currentIndex != i) { - this._animatableList[currentIndex] = animatable; - this._animatableList[i] = null; - } - animatable.advanceTime(passedTime); - currentIndex++; - } - } - if (currentIndex != i) { - length = this._animatableList.length; - while (i < length) { - this._animatableList[currentIndex++] = this._animatableList[i++]; - } - this._animatableList.length = currentIndex; - } - }; - WorldClock.clock = new WorldClock(); - return WorldClock; - })(); - dragonBones.WorldClock = WorldClock; - egret.registerClass(WorldClock,'dragonBones.WorldClock',["dragonBones.IAnimatable"]); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var EventDispatcher = (function (_super) { - __extends(EventDispatcher, _super); - function EventDispatcher(target) { - if (target === void 0) { target = null; } - _super.call(this, target); - } - var d = __define,c=EventDispatcher,p=c.prototype; - return EventDispatcher; - })(egret.EventDispatcher); - dragonBones.EventDispatcher = EventDispatcher; - egret.registerClass(EventDispatcher,'dragonBones.EventDispatcher'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var SoundEventManager = (function (_super) { - __extends(SoundEventManager, _super); - function SoundEventManager() { - _super.call(this); - if (SoundEventManager._instance) { - throw new Error("Singleton already constructed!"); - } - } - var d = __define,c=SoundEventManager,p=c.prototype; - SoundEventManager.getInstance = function () { - if (!SoundEventManager._instance) { - SoundEventManager._instance = new SoundEventManager(); - } - return SoundEventManager._instance; - }; - return SoundEventManager; - })(dragonBones.EventDispatcher); - dragonBones.SoundEventManager = SoundEventManager; - egret.registerClass(SoundEventManager,'dragonBones.SoundEventManager'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var Armature = (function (_super) { - __extends(Armature, _super); - function Armature(display) { - _super.call(this); - this._display = display; - this._animation = new dragonBones.Animation(this); - this._slotsZOrderChanged = false; - this._slotList = []; - this._boneList = []; - this._eventList = []; - this._delayDispose = false; - this._lockDispose = false; - this._armatureData = null; - } - var d = __define,c=Armature,p=c.prototype; - d(p, "armatureData" - ,function () { - return this._armatureData; - } - ); - d(p, "display" - ,function () { - return this._display; - } - ); - p.getDisplay = function () { - return this._display; - }; - d(p, "animation" - ,function () { - return this._animation; - } - ); - p.dispose = function () { - this._delayDispose = true; - if (!this._animation || this._lockDispose) { - return; - } - this.userData = null; - this._animation.dispose(); - var i = this._slotList.length; - while (i--) { - this._slotList[i].dispose(); - } - i = this._boneList.length; - while (i--) { - this._boneList[i].dispose(); - } - this._armatureData = null; - this._animation = null; - this._slotList = null; - this._boneList = null; - this._eventList = null; - }; - p.invalidUpdate = function (boneName) { - if (boneName === void 0) { boneName = null; } - if (boneName) { - var bone = this.getBone(boneName); - if (bone) { - bone.invalidUpdate(); - } - } - else { - var i = this._boneList.length; - while (i--) { - this._boneList[i].invalidUpdate(); - } - } - }; - p.advanceTime = function (passedTime) { - this._lockDispose = true; - this._animation._advanceTime(passedTime); - passedTime *= this._animation.timeScale; - var isFading = this._animation._isFading; - var i = this._boneList.length; - while (i--) { - var bone = this._boneList[i]; - bone._update(isFading); - } - i = this._slotList.length; - while (i--) { - var slot = this._slotList[i]; - slot._update(); - if (slot._isShowDisplay) { - var childArmature = slot.childArmature; - if (childArmature) { - childArmature.advanceTime(passedTime); - } - } - } - if (this._slotsZOrderChanged) { - this.updateSlotsZOrder(); - if (this.hasEventListener(dragonBones.ArmatureEvent.Z_ORDER_UPDATED)) { - this.dispatchEvent(new dragonBones.ArmatureEvent(dragonBones.ArmatureEvent.Z_ORDER_UPDATED)); - } - } - if (this._eventList.length > 0) { - for (var i = 0, len = this._eventList.length; i < len; i++) { - var event = this._eventList[i]; - this.dispatchEvent(event); - } - this._eventList.length = 0; - } - this._lockDispose = false; - if (this._delayDispose) { - this.dispose(); - } - }; - p.resetAnimation = function () { - this.animation.stop(); - this.animation._resetAnimationStateList(); - for (var i = 0, len = this._boneList.length; i < len; i++) { - this._boneList[i]._removeAllStates(); - } - }; - p.getSlots = function (returnCopy) { - if (returnCopy === void 0) { returnCopy = true; } - return returnCopy ? this._slotList.concat() : this._slotList; - }; - p.getSlot = function (slotName) { - var length = this._slotList.length; - for (var i = 0; i < length; i++) { - var slot = this._slotList[i]; - if (slot.name == slotName) { - return slot; - } - } - return null; - }; - p.getSlotByDisplay = function (displayObj) { - if (displayObj) { - var length = this._slotList.length; - for (var i = 0; i < length; i++) { - var slot = this._slotList[i]; - if (slot.display == displayObj) { - return slot; - } - } - } - return null; - }; - p.addSlot = function (slot, boneName) { - var bone = this.getBone(boneName); - if (bone) { - bone.addSlot(slot); - } - else { - throw new Error(); - } - }; - p.removeSlot = function (slot) { - if (!slot || slot.armature != this) { - throw new Error(); - } - slot.parent.removeSlot(slot); - }; - p.removeSlotByName = function (slotName) { - var slot = this.getSlot(slotName); - if (slot) { - this.removeSlot(slot); - } - return slot; - }; - p.getBones = function (returnCopy) { - if (returnCopy === void 0) { returnCopy = true; } - return returnCopy ? this._boneList.concat() : this._boneList; - }; - p.getBone = function (boneName) { - var length = this._boneList.length; - for (var i = 0; i < length; i++) { - var bone = this._boneList[i]; - if (bone.name == boneName) { - return bone; - } - } - return null; - }; - p.getBoneByDisplay = function (display) { - var slot = this.getSlotByDisplay(display); - return slot ? slot.parent : null; - }; - p.addBone = function (bone, parentName, updateLater) { - if (parentName === void 0) { parentName = null; } - if (updateLater === void 0) { updateLater = false; } - var parentBone; - if (parentName) { - parentBone = this.getBone(parentName); - if (!parentBone) { - throw new Error(); - } - } - if (parentBone) { - parentBone.addChildBone(bone, updateLater); - } - else { - if (bone.parent) { - bone.parent.removeChildBone(bone, updateLater); - } - bone._setArmature(this); - if (!updateLater) { - this._updateAnimationAfterBoneListChanged(); - } - } - }; - p.removeBone = function (bone, updateLater) { - if (updateLater === void 0) { updateLater = false; } - if (!bone || bone.armature != this) { - throw new Error(); - } - if (bone.parent) { - bone.parent.removeChildBone(bone, updateLater); - } - else { - bone._setArmature(null); - if (!updateLater) { - this._updateAnimationAfterBoneListChanged(false); - } - } - }; - p.removeBoneByName = function (boneName) { - var bone = this.getBone(boneName); - if (bone) { - this.removeBone(bone); - } - return bone; - }; - p._addBoneToBoneList = function (bone) { - if (this._boneList.indexOf(bone) < 0) { - this._boneList[this._boneList.length] = bone; - } - }; - p._removeBoneFromBoneList = function (bone) { - var index = this._boneList.indexOf(bone); - if (index >= 0) { - this._boneList.splice(index, 1); - } - }; - p._addSlotToSlotList = function (slot) { - if (this._slotList.indexOf(slot) < 0) { - this._slotList[this._slotList.length] = slot; - } - }; - p._removeSlotFromSlotList = function (slot) { - var index = this._slotList.indexOf(slot); - if (index >= 0) { - this._slotList.splice(index, 1); - } - }; - p.updateSlotsZOrder = function () { - this._slotList.sort(this.sortSlot); - var i = this._slotList.length; - while (i--) { - var slot = this._slotList[i]; - if (slot._isShowDisplay) { - slot._addDisplayToContainer(this._display); - } - } - this._slotsZOrderChanged = false; - }; - p._updateAnimationAfterBoneListChanged = function (ifNeedSortBoneList) { - if (ifNeedSortBoneList === void 0) { ifNeedSortBoneList = true; } - if (ifNeedSortBoneList) { - this.sortBoneList(); - } - this._animation._updateAnimationStates(); - }; - p.sortBoneList = function () { - var i = this._boneList.length; - if (i == 0) { - return; - } - var helpArray = []; - while (i--) { - var level = 0; - var bone = this._boneList[i]; - var boneParent = bone; - while (boneParent) { - level++; - boneParent = boneParent.parent; - } - helpArray[i] = [level, bone]; - } - helpArray.sort(dragonBones.ArmatureData.sortBoneDataHelpArrayDescending); - i = helpArray.length; - while (i--) { - this._boneList[i] = helpArray[i][1]; - } - helpArray.length = 0; - }; - p._arriveAtFrame = function (frame, timelineState, animationState, isCross) { - if (frame.event && this.hasEventListener(dragonBones.FrameEvent.ANIMATION_FRAME_EVENT)) { - var frameEvent = new dragonBones.FrameEvent(dragonBones.FrameEvent.ANIMATION_FRAME_EVENT); - frameEvent.animationState = animationState; - frameEvent.frameLabel = frame.event; - this._eventList.push(frameEvent); - } - if (frame.sound && Armature._soundManager.hasEventListener(dragonBones.SoundEvent.SOUND)) { - var soundEvent = new dragonBones.SoundEvent(dragonBones.SoundEvent.SOUND); - soundEvent.armature = this; - soundEvent.animationState = animationState; - soundEvent.sound = frame.sound; - Armature._soundManager.dispatchEvent(soundEvent); - } - if (frame.action) { - if (animationState.displayControl) { - this.animation.gotoAndPlay(frame.action); - } - } - }; - p.sortSlot = function (slot1, slot2) { - return slot1.zOrder < slot2.zOrder ? 1 : -1; - }; - p.getAnimation = function () { - return this._animation; - }; - Armature._soundManager = dragonBones.SoundEventManager.getInstance(); - return Armature; - })(dragonBones.EventDispatcher); - dragonBones.Armature = Armature; - egret.registerClass(Armature,'dragonBones.Armature',["dragonBones.IAnimatable"]); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var Matrix = (function () { - function Matrix() { - this.a = 1; - this.b = 0; - this.c = 0; - this.d = 1; - this.tx = 0; - this.ty = 0; - } - var d = __define,c=Matrix,p=c.prototype; - p.invert = function () { - var a1 = this.a; - var b1 = this.b; - var c1 = this.c; - var d1 = this.d; - var tx1 = this.tx; - var n = a1 * d1 - b1 * c1; - this.a = d1 / n; - this.b = -b1 / n; - this.c = -c1 / n; - this.d = a1 / n; - this.tx = (c1 * this.ty - d1 * tx1) / n; - this.ty = -(a1 * this.ty - b1 * tx1) / n; - }; - p.concat = function (m) { - var ma = m.a; - var mb = m.b; - var mc = m.c; - var md = m.d; - var tx1 = this.tx; - var ty1 = this.ty; - if (ma != 1 || mb != 0 || mc != 0 || md != 1) { - var a1 = this.a; - var b1 = this.b; - var c1 = this.c; - var d1 = this.d; - this.a = a1 * ma + b1 * mc; - this.b = a1 * mb + b1 * md; - this.c = c1 * ma + d1 * mc; - this.d = c1 * mb + d1 * md; - } - this.tx = tx1 * ma + ty1 * mc + m.tx; - this.ty = tx1 * mb + ty1 * md + m.ty; - }; - p.copyFrom = function (m) { - this.tx = m.tx; - this.ty = m.ty; - this.a = m.a; - this.b = m.b; - this.c = m.c; - this.d = m.d; - }; - return Matrix; - })(); - dragonBones.Matrix = Matrix; - egret.registerClass(Matrix,'dragonBones.Matrix'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var DBTransform = (function () { - function DBTransform() { - this.x = 0; - this.y = 0; - this.skewX = 0; - this.skewY = 0; - this.scaleX = 1; - this.scaleY = 1; - } - var d = __define,c=DBTransform,p=c.prototype; - d(p, "rotation" - ,function () { - return this.skewX; - } - ,function (value) { - this.skewX = this.skewY = value; - } - ); - p.copy = function (transform) { - this.x = transform.x; - this.y = transform.y; - this.skewX = transform.skewX; - this.skewY = transform.skewY; - this.scaleX = transform.scaleX; - this.scaleY = transform.scaleY; - }; - p.add = function (transform) { - this.x += transform.x; - this.y += transform.y; - this.skewX += transform.skewX; - this.skewY += transform.skewY; - this.scaleX *= transform.scaleX; - this.scaleY *= transform.scaleY; - }; - p.minus = function (transform) { - this.x -= transform.x; - this.y -= transform.y; - this.skewX -= transform.skewX; - this.skewY -= transform.skewY; - this.scaleX /= transform.scaleX; - this.scaleY /= transform.scaleY; - }; - p.normalizeRotation = function () { - this.skewX = dragonBones.TransformUtil.normalizeRotation(this.skewX); - this.skewY = dragonBones.TransformUtil.normalizeRotation(this.skewY); - }; - p.toString = function () { - var string = "x:" + this.x + " y:" + this.y + " skewX:" + this.skewX + " skewY:" + this.skewY + " scaleX:" + this.scaleX + " scaleY:" + this.scaleY; - return string; - }; - return DBTransform; - })(); - dragonBones.DBTransform = DBTransform; - egret.registerClass(DBTransform,'dragonBones.DBTransform'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var DBObject = (function () { - function DBObject() { - this._globalTransformMatrix = new dragonBones.Matrix(); - this._global = new dragonBones.DBTransform(); - this._origin = new dragonBones.DBTransform(); - this._offset = new dragonBones.DBTransform(); - this._offset.scaleX = this._offset.scaleY = 1; - this._visible = true; - this._armature = null; - this._parent = null; - this.userData = null; - this.inheritRotation = true; - this.inheritScale = true; - this.inheritTranslation = true; - } - var d = __define,c=DBObject,p=c.prototype; - d(p, "global" - ,function () { - return this._global; - } - ); - d(p, "origin" - ,function () { - return this._origin; - } - ); - d(p, "offset" - ,function () { - return this._offset; - } - ); - d(p, "armature" - ,function () { - return this._armature; - } - ); - p._setArmature = function (value) { - this._armature = value; - }; - d(p, "parent" - ,function () { - return this._parent; - } - ); - p._setParent = function (value) { - this._parent = value; - }; - p.dispose = function () { - this.userData = null; - this._globalTransformMatrix = null; - this._global = null; - this._origin = null; - this._offset = null; - this._armature = null; - this._parent = null; - }; - p._calculateRelativeParentTransform = function () { - }; - p._calculateParentTransform = function () { - if (this.parent && (this.inheritTranslation || this.inheritRotation || this.inheritScale)) { - var parentGlobalTransform = this._parent._globalTransformForChild; - var parentGlobalTransformMatrix = this._parent._globalTransformMatrixForChild; - if (!this.inheritTranslation || !this.inheritRotation || !this.inheritScale) { - parentGlobalTransform = DBObject._tempParentGlobalTransform; - parentGlobalTransform.copy(this._parent._globalTransformForChild); - if (!this.inheritTranslation) { - parentGlobalTransform.x = 0; - parentGlobalTransform.y = 0; - } - if (!this.inheritScale) { - parentGlobalTransform.scaleX = 1; - parentGlobalTransform.scaleY = 1; - } - if (!this.inheritRotation) { - parentGlobalTransform.skewX = 0; - parentGlobalTransform.skewY = 0; - } - parentGlobalTransformMatrix = DBObject._tempParentGlobalTransformMatrix; - dragonBones.TransformUtil.transformToMatrix(parentGlobalTransform, parentGlobalTransformMatrix, true); - } - return { parentGlobalTransform: parentGlobalTransform, parentGlobalTransformMatrix: parentGlobalTransformMatrix }; - } - return null; - }; - p._updateGlobal = function () { - this._calculateRelativeParentTransform(); - var output = this._calculateParentTransform(); - if (output != null) { - var parentMatrix = output.parentGlobalTransformMatrix; - var parentGlobalTransform = output.parentGlobalTransform; - var x = this._global.x; - var y = this._global.y; - this._global.x = parentMatrix.a * x + parentMatrix.c * y + parentMatrix.tx; - this._global.y = parentMatrix.d * y + parentMatrix.b * x + parentMatrix.ty; - if (this.inheritRotation) { - this._global.skewX += parentGlobalTransform.skewX; - this._global.skewY += parentGlobalTransform.skewY; - } - if (this.inheritScale) { - this._global.scaleX *= parentGlobalTransform.scaleX; - this._global.scaleY *= parentGlobalTransform.scaleY; - } - } - dragonBones.TransformUtil.transformToMatrix(this._global, this._globalTransformMatrix, true); - return output; - }; - DBObject._tempParentGlobalTransformMatrix = new dragonBones.Matrix(); - DBObject._tempParentGlobalTransform = new dragonBones.DBTransform(); - return DBObject; - })(); - dragonBones.DBObject = DBObject; - egret.registerClass(DBObject,'dragonBones.DBObject'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var Bone = (function (_super) { - __extends(Bone, _super); - function Bone() { - _super.call(this); - this.applyOffsetTranslationToChild = true; - this.applyOffsetRotationToChild = true; - this.applyOffsetScaleToChild = false; - this._needUpdate = 0; - this._tween = new dragonBones.DBTransform(); - this._tweenPivot = new dragonBones.Point(); - this._tween.scaleX = this._tween.scaleY = 1; - this._boneList = []; - this._slotList = []; - this._timelineStateList = []; - this._needUpdate = 2; - this._isColorChanged = false; - } - var d = __define,c=Bone,p=c.prototype; - Bone.initWithBoneData = function (boneData) { - var outputBone = new Bone(); - outputBone.name = boneData.name; - outputBone.inheritRotation = boneData.inheritRotation; - outputBone.inheritScale = boneData.inheritScale; - outputBone.origin.copy(boneData.transform); - return outputBone; - }; - p.dispose = function () { - if (!this._boneList) { - return; - } - _super.prototype.dispose.call(this); - var i = this._boneList.length; - while (i--) { - this._boneList[i].dispose(); - } - i = this._slotList.length; - while (i--) { - this._slotList[i].dispose(); - } - this._tween = null; - this._tweenPivot = null; - this._boneList = null; - this._slotList = null; - this._timelineStateList = null; - }; - p.contains = function (child) { - if (!child) { - throw new Error(); - } - if (child == this) { - return false; - } - var ancestor = child; - while (!(ancestor == this || ancestor == null)) { - ancestor = ancestor.parent; - } - return ancestor == this; - }; - p.addChildBone = function (childBone, updateLater) { - if (updateLater === void 0) { updateLater = false; } - if (!childBone) { - throw new Error(); - } - if (childBone == this || childBone.contains(this)) { - throw new Error(); - } - if (childBone.parent == this) { - return; - } - if (childBone.parent) { - childBone.parent.removeChildBone(childBone, updateLater); - } - this._boneList[this._boneList.length] = childBone; - childBone._setParent(this); - childBone._setArmature(this._armature); - if (this._armature && !updateLater) { - this._armature._updateAnimationAfterBoneListChanged(); - } - }; - p.removeChildBone = function (childBone, updateLater) { - if (updateLater === void 0) { updateLater = false; } - if (!childBone) { - throw new Error(); - } - var index = this._boneList.indexOf(childBone); - if (index < 0) { - throw new Error(); - } - this._boneList.splice(index, 1); - childBone._setParent(null); - childBone._setArmature(null); - if (this._armature && !updateLater) { - this._armature._updateAnimationAfterBoneListChanged(false); - } - }; - p.addSlot = function (childSlot) { - if (!childSlot) { - throw new Error(); - } - if (childSlot.parent) { - childSlot.parent.removeSlot(childSlot); - } - this._slotList[this._slotList.length] = childSlot; - childSlot._setParent(this); - childSlot.setArmature(this._armature); - }; - p.removeSlot = function (childSlot) { - if (!childSlot) { - throw new Error(); - } - var index = this._slotList.indexOf(childSlot); - if (index < 0) { - throw new Error(); - } - this._slotList.splice(index, 1); - childSlot._setParent(null); - childSlot.setArmature(null); - }; - p._setArmature = function (value) { - if (this._armature == value) { - return; - } - if (this._armature) { - this._armature._removeBoneFromBoneList(this); - this._armature._updateAnimationAfterBoneListChanged(false); - } - this._armature = value; - if (this._armature) { - this._armature._addBoneToBoneList(this); - } - var i = this._boneList.length; - while (i--) { - this._boneList[i]._setArmature(this._armature); - } - i = this._slotList.length; - while (i--) { - this._slotList[i].setArmature(this._armature); - } - }; - p.getBones = function (returnCopy) { - if (returnCopy === void 0) { returnCopy = true; } - return returnCopy ? this._boneList.concat() : this._boneList; - }; - p.getSlots = function (returnCopy) { - if (returnCopy === void 0) { returnCopy = true; } - return returnCopy ? this._slotList.concat() : this._slotList; - }; - p.invalidUpdate = function () { - this._needUpdate = 2; - }; - p._calculateRelativeParentTransform = function () { - this._global.scaleX = this._origin.scaleX * this._tween.scaleX * this._offset.scaleX; - this._global.scaleY = this._origin.scaleY * this._tween.scaleY * this._offset.scaleY; - this._global.skewX = this._origin.skewX + this._tween.skewX + this._offset.skewX; - this._global.skewY = this._origin.skewY + this._tween.skewY + this._offset.skewY; - this._global.x = this._origin.x + this._tween.x + this._offset.x; - this._global.y = this._origin.y + this._tween.y + this._offset.y; - }; - p._update = function (needUpdate) { - if (needUpdate === void 0) { needUpdate = false; } - this._needUpdate--; - if (needUpdate || this._needUpdate > 0 || (this._parent && this._parent._needUpdate > 0)) { - this._needUpdate = 1; - } - else { - return; - } - this.blendingTimeline(); - var result = this._updateGlobal(); - var parentGlobalTransform = result ? result.parentGlobalTransform : null; - var parentGlobalTransformMatrix = result ? result.parentGlobalTransformMatrix : null; - var ifExistOffsetTranslation = this._offset.x != 0 || this._offset.y != 0; - var ifExistOffsetScale = this._offset.scaleX != 0 || this._offset.scaleY != 0; - var ifExistOffsetRotation = this._offset.skewX != 0 || this._offset.skewY != 0; - if ((!ifExistOffsetTranslation || this.applyOffsetTranslationToChild) && - (!ifExistOffsetScale || this.applyOffsetScaleToChild) && - (!ifExistOffsetRotation || this.applyOffsetRotationToChild)) { - this._globalTransformForChild = this._global; - this._globalTransformMatrixForChild = this._globalTransformMatrix; - } - else { - if (!this._tempGlobalTransformForChild) { - this._tempGlobalTransformForChild = new dragonBones.DBTransform(); - } - this._globalTransformForChild = this._tempGlobalTransformForChild; - if (!this._tempGlobalTransformMatrixForChild) { - this._tempGlobalTransformMatrixForChild = new dragonBones.Matrix(); - } - this._globalTransformMatrixForChild = this._tempGlobalTransformMatrixForChild; - this._globalTransformForChild.x = this._origin.x + this._tween.x; - this._globalTransformForChild.y = this._origin.y + this._tween.y; - this._globalTransformForChild.scaleX = this._origin.scaleX * this._tween.scaleX; - this._globalTransformForChild.scaleY = this._origin.scaleY * this._tween.scaleY; - this._globalTransformForChild.skewX = this._origin.skewX + this._tween.skewX; - this._globalTransformForChild.skewY = this._origin.skewY + this._tween.skewY; - if (this.applyOffsetTranslationToChild) { - this._globalTransformForChild.x += this._offset.x; - this._globalTransformForChild.y += this._offset.y; - } - if (this.applyOffsetScaleToChild) { - this._globalTransformForChild.scaleX *= this._offset.scaleX; - this._globalTransformForChild.scaleY *= this._offset.scaleY; - } - if (this.applyOffsetRotationToChild) { - this._globalTransformForChild.skewX += this._offset.skewX; - this._globalTransformForChild.skewY += this._offset.skewY; - } - dragonBones.TransformUtil.transformToMatrix(this._globalTransformForChild, this._globalTransformMatrixForChild, true); - if (parentGlobalTransformMatrix) { - this._globalTransformMatrixForChild.concat(parentGlobalTransformMatrix); - dragonBones.TransformUtil.matrixToTransform(this._globalTransformMatrixForChild, this._globalTransformForChild, this._globalTransformForChild.scaleX * parentGlobalTransform.scaleX >= 0, this._globalTransformForChild.scaleY * parentGlobalTransform.scaleY >= 0); - } - } - }; - p._updateColor = function (aOffset, rOffset, gOffset, bOffset, aMultiplier, rMultiplier, gMultiplier, bMultiplier, colorChanged) { - var length = this._slotList.length; - for (var i = 0; i < length; i++) { - var childSlot = this._slotList[i]; - childSlot._updateDisplayColor(aOffset, rOffset, gOffset, bOffset, aMultiplier, rMultiplier, gMultiplier, bMultiplier); - } - this._isColorChanged = colorChanged; - }; - p._hideSlots = function () { - var length = this._slotList.length; - for (var i = 0; i < length; i++) { - var childSlot = this._slotList[i]; - childSlot._changeDisplay(-1); - } - }; - p._arriveAtFrame = function (frame, timelineState, animationState, isCross) { - var displayControl = animationState.displayControl && - (!this.displayController || this.displayController == animationState.name) && - animationState.containsBoneMask(this.name); - if (displayControl) { - var tansformFrame = frame; - var displayIndex = tansformFrame.displayIndex; - var childSlot; - if (frame.event && this._armature.hasEventListener(dragonBones.FrameEvent.BONE_FRAME_EVENT)) { - var frameEvent = new dragonBones.FrameEvent(dragonBones.FrameEvent.BONE_FRAME_EVENT); - frameEvent.bone = this; - frameEvent.animationState = animationState; - frameEvent.frameLabel = frame.event; - this._armature._eventList.push(frameEvent); - } - if (frame.sound && Bone._soundManager.hasEventListener(dragonBones.SoundEvent.SOUND)) { - var soundEvent = new dragonBones.SoundEvent(dragonBones.SoundEvent.SOUND); - soundEvent.armature = this._armature; - soundEvent.animationState = animationState; - soundEvent.sound = frame.sound; - Bone._soundManager.dispatchEvent(soundEvent); - } - if (frame.action) { - var length1 = this._slotList.length; - for (var i1 = 0; i1 < length1; i1++) { - childSlot = this._slotList[i1]; - var childArmature = childSlot.childArmature; - if (childArmature) { - childArmature.animation.gotoAndPlay(frame.action); - } - } - } - } - }; - p._addState = function (timelineState) { - if (this._timelineStateList.indexOf(timelineState) < 0) { - this._timelineStateList.push(timelineState); - this._timelineStateList.sort(this.sortState); - } - }; - p._removeState = function (timelineState) { - var index = this._timelineStateList.indexOf(timelineState); - if (index >= 0) { - this._timelineStateList.splice(index, 1); - } - }; - p._removeAllStates = function () { - this._timelineStateList.length = 0; - }; - p.blendingTimeline = function () { - var timelineState; - var transform; - var pivot; - var weight; - var i = this._timelineStateList.length; - if (i == 1) { - timelineState = this._timelineStateList[0]; - weight = timelineState._animationState.weight * timelineState._animationState.fadeWeight; - timelineState._weight = weight; - transform = timelineState._transform; - pivot = timelineState._pivot; - this._tween.x = transform.x * weight; - this._tween.y = transform.y * weight; - this._tween.skewX = transform.skewX * weight; - this._tween.skewY = transform.skewY * weight; - this._tween.scaleX = 1 + (transform.scaleX - 1) * weight; - this._tween.scaleY = 1 + (transform.scaleY - 1) * weight; - this._tweenPivot.x = pivot.x * weight; - this._tweenPivot.y = pivot.y * weight; - } - else if (i > 1) { - var x = 0; - var y = 0; - var skewX = 0; - var skewY = 0; - var scaleX = 1; - var scaleY = 1; - var pivotX = 0; - var pivotY = 0; - var weigthLeft = 1; - var layerTotalWeight = 0; - var prevLayer = this._timelineStateList[i - 1]._animationState.layer; - var currentLayer = 0; - while (i--) { - timelineState = this._timelineStateList[i]; - currentLayer = timelineState._animationState.layer; - if (prevLayer != currentLayer) { - if (layerTotalWeight >= weigthLeft) { - timelineState._weight = 0; - break; - } - else { - weigthLeft -= layerTotalWeight; - } - } - prevLayer = currentLayer; - weight = timelineState._animationState.weight * timelineState._animationState.fadeWeight * weigthLeft; - timelineState._weight = weight; - if (weight) { - transform = timelineState._transform; - pivot = timelineState._pivot; - x += transform.x * weight; - y += transform.y * weight; - skewX += transform.skewX * weight; - skewY += transform.skewY * weight; - scaleX += (transform.scaleX - 1) * weight; - scaleY += (transform.scaleY - 1) * weight; - pivotX += pivot.x * weight; - pivotY += pivot.y * weight; - layerTotalWeight += weight; - } - } - this._tween.x = x; - this._tween.y = y; - this._tween.skewX = skewX; - this._tween.skewY = skewY; - this._tween.scaleX = scaleX; - this._tween.scaleY = scaleY; - this._tweenPivot.x = pivotX; - this._tweenPivot.y = pivotY; - } - }; - p.sortState = function (state1, state2) { - return state1._animationState.layer < state2._animationState.layer ? -1 : 1; - }; - d(p, "childArmature" - ,function () { - if (this.slot) { - return this.slot.childArmature; - } - return null; - } - ); - d(p, "display" - ,function () { - if (this.slot) { - return this.slot.display; - } - return null; - } - ,function (value) { - if (this.slot) { - this.slot.display = value; - } - } - ); - d(p, "node" - ,function () { - return this._offset; - } - ); - d(p, "visible",undefined - ,function (value) { - if (this._visible != value) { - this._visible = value; - var length = this._slotList.length; - for (var i = 0; i < length; i++) { - var childSlot = this._slotList[i]; - childSlot._updateDisplayVisible(this._visible); - } - } - } - ); - d(p, "slot" - ,function () { - return this._slotList.length > 0 ? this._slotList[0] : null; - } - ); - Bone._soundManager = dragonBones.SoundEventManager.getInstance(); - return Bone; - })(dragonBones.DBObject); - dragonBones.Bone = Bone; - egret.registerClass(Bone,'dragonBones.Bone'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var Slot = (function (_super) { - __extends(Slot, _super); - function Slot(self) { - _super.call(this); - this._currentDisplayIndex = 0; - if (self != this) { - throw new Error(egret.getString(4001)); - } - this._displayList = []; - this._timelineStateList = []; - this._currentDisplayIndex = -1; - this._originZOrder = 0; - this._tweenZOrder = 0; - this._offsetZOrder = 0; - this._isShowDisplay = false; - this._colorTransform = new dragonBones.ColorTransform(); - this._displayDataList = null; - this._currentDisplay = null; - this.inheritRotation = true; - this.inheritScale = true; - } - var d = __define,c=Slot,p=c.prototype; - p.initWithSlotData = function (slotData) { - this.name = slotData.name; - this.blendMode = slotData.blendMode; - this._originZOrder = slotData.zOrder; - this._displayDataList = slotData.displayDataList; - this._originDisplayIndex = slotData.displayIndex; - }; - p.dispose = function () { - if (!this._displayList) { - return; - } - _super.prototype.dispose.call(this); - this._displayList.length = 0; - this._displayDataList = null; - this._displayList = null; - this._currentDisplay = null; - }; - p.sortState = function (state1, state2) { - return state1._animationState.layer < state2._animationState.layer ? -1 : 1; - }; - p._addState = function (timelineState) { - if (this._timelineStateList.indexOf(timelineState) < 0) { - this._timelineStateList.push(timelineState); - this._timelineStateList.sort(this.sortState); - } - }; - p._removeState = function (timelineState) { - var index = this._timelineStateList.indexOf(timelineState); - if (index >= 0) { - this._timelineStateList.splice(index, 1); - } - }; - p.setArmature = function (value) { - if (this._armature == value) { - return; - } - if (this._armature) { - this._armature._removeSlotFromSlotList(this); - } - this._armature = value; - if (this._armature) { - this._armature._addSlotToSlotList(this); - this._armature._slotsZOrderChanged = true; - this._addDisplayToContainer(this._armature.display); - } - else { - this._removeDisplayFromContainer(); - } - }; - p._update = function () { - if (this._parent._needUpdate <= 0 && !this._needUpdate) { - return; - } - this._updateGlobal(); - this._updateTransform(); - this._needUpdate = false; - }; - p._calculateRelativeParentTransform = function () { - this._global.scaleX = this._origin.scaleX * this._offset.scaleX; - this._global.scaleY = this._origin.scaleY * this._offset.scaleY; - this._global.skewX = this._origin.skewX + this._offset.skewX; - this._global.skewY = this._origin.skewY + this._offset.skewY; - this._global.x = this._origin.x + this._offset.x + this._parent._tweenPivot.x; - this._global.y = this._origin.y + this._offset.y + this._parent._tweenPivot.y; - }; - p.updateChildArmatureAnimation = function () { - if (this.childArmature) { - if (this._isShowDisplay) { - if (this._armature && - this._armature.animation.lastAnimationState && - this.childArmature.animation.hasAnimation(this._armature.animation.lastAnimationState.name)) { - this.childArmature.animation.gotoAndPlay(this._armature.animation.lastAnimationState.name); - } - else { - this.childArmature.animation.play(); - } - } - else { - this.childArmature.animation.stop(); - this.childArmature.animation._lastAnimationState = null; - } - } - }; - p._changeDisplay = function (displayIndex) { - if (displayIndex === void 0) { displayIndex = 0; } - if (displayIndex < 0) { - if (this._isShowDisplay) { - this._isShowDisplay = false; - this._removeDisplayFromContainer(); - this.updateChildArmatureAnimation(); - } - } - else if (this._displayList.length > 0) { - var length = this._displayList.length; - if (displayIndex >= length) { - displayIndex = length - 1; - } - if (this._currentDisplayIndex != displayIndex) { - this._isShowDisplay = true; - this._currentDisplayIndex = displayIndex; - this._updateSlotDisplay(); - this.updateChildArmatureAnimation(); - if (this._displayDataList && - this._displayDataList.length > 0 && - this._currentDisplayIndex < this._displayDataList.length) { - this._origin.copy(this._displayDataList[this._currentDisplayIndex].transform); - } - this._needUpdate = true; - } - else if (!this._isShowDisplay) { - this._isShowDisplay = true; - if (this._armature) { - this._armature._slotsZOrderChanged = true; - this._addDisplayToContainer(this._armature.display); - } - this.updateChildArmatureAnimation(); - } - } - }; - p._updateSlotDisplay = function () { - var currentDisplayIndex = -1; - if (this._currentDisplay) { - currentDisplayIndex = this._getDisplayIndex(); - this._removeDisplayFromContainer(); - } - var displayObj = this._displayList[this._currentDisplayIndex]; - if (displayObj) { - if (displayObj instanceof dragonBones.Armature) { - this._currentDisplay = displayObj.display; - } - else { - this._currentDisplay = displayObj; - } - } - else { - this._currentDisplay = null; - } - this._updateDisplay(this._currentDisplay); - if (this._currentDisplay) { - if (this._armature && this._isShowDisplay) { - if (currentDisplayIndex < 0) { - this._armature._slotsZOrderChanged = true; - this._addDisplayToContainer(this._armature.display); - } - else { - this._addDisplayToContainer(this._armature.display, currentDisplayIndex); - } - } - this._updateDisplayBlendMode(this._blendMode); - this._updateDisplayColor(this._colorTransform.alphaOffset, this._colorTransform.redOffset, this._colorTransform.greenOffset, this._colorTransform.blueOffset, this._colorTransform.alphaMultiplier, this._colorTransform.redMultiplier, this._colorTransform.greenMultiplier, this._colorTransform.blueMultiplier, true); - this._updateDisplayVisible(this._visible); - this._updateTransform(); - } - }; - d(p, "visible",undefined - ,function (value) { - if (this._visible != value) { - this._visible = value; - this._updateDisplayVisible(this._visible); - } - } - ); - d(p, "displayList" - ,function () { - return this._displayList; - } - ,function (value) { - if (!value) { - throw new Error(); - } - if (this._currentDisplayIndex < 0) { - this._currentDisplayIndex = 0; - } - var i = this._displayList.length = value.length; - while (i--) { - this._displayList[i] = value[i]; - } - var displayIndexBackup = this._currentDisplayIndex; - this._currentDisplayIndex = -1; - this._changeDisplay(displayIndexBackup); - } - ); - d(p, "display" - ,function () { - return this._currentDisplay; - } - ,function (value) { - if (this._currentDisplayIndex < 0) { - this._currentDisplayIndex = 0; - } - if (this._displayList[this._currentDisplayIndex] == value) { - return; - } - this._displayList[this._currentDisplayIndex] = value; - this._updateSlotDisplay(); - this.updateChildArmatureAnimation(); - this._updateTransform(); - } - ); - p.getDisplay = function () { - return this.display; - }; - p.setDisplay = function (value) { - this.display = value; - }; - d(p, "childArmature" - ,function () { - if (this._displayList[this._currentDisplayIndex] instanceof dragonBones.Armature) { - return (this._displayList[this._currentDisplayIndex]); - } - return null; - } - ,function (value) { - this.display = value; - } - ); - d(p, "zOrder" - ,function () { - return this._originZOrder + this._tweenZOrder + this._offsetZOrder; - } - ,function (value) { - if (this.zOrder != value) { - this._offsetZOrder = value - this._originZOrder - this._tweenZOrder; - if (this._armature) { - this._armature._slotsZOrderChanged = true; - } - } - } - ); - d(p, "blendMode" - ,function () { - return this._blendMode; - } - ,function (value) { - if (this._blendMode != value) { - this._blendMode = value; - this._updateDisplayBlendMode(this._blendMode); - } - } - ); - p._updateDisplay = function (value) { - throw new Error(""); - }; - p._getDisplayIndex = function () { - throw new Error(egret.getString(4001)); - }; - p._addDisplayToContainer = function (container, index) { - if (index === void 0) { index = -1; } - throw new Error(egret.getString(4001)); - }; - p._removeDisplayFromContainer = function () { - throw new Error(egret.getString(4001)); - }; - p._updateTransform = function () { - throw new Error(egret.getString(4001)); - }; - p._updateDisplayVisible = function (value) { - throw new Error(egret.getString(4001)); - }; - p._updateDisplayColor = function (aOffset, rOffset, gOffset, bOffset, aMultiplier, rMultiplier, gMultiplier, bMultiplier, colorChanged) { - if (colorChanged === void 0) { colorChanged = false; } - this._colorTransform.alphaOffset = aOffset; - this._colorTransform.redOffset = rOffset; - this._colorTransform.greenOffset = gOffset; - this._colorTransform.blueOffset = bOffset; - this._colorTransform.alphaMultiplier = aMultiplier; - this._colorTransform.redMultiplier = rMultiplier; - this._colorTransform.greenMultiplier = gMultiplier; - this._colorTransform.blueMultiplier = bMultiplier; - this._isColorChanged = colorChanged; - }; - p._updateDisplayBlendMode = function (value) { - throw new Error("Abstract method needs to be implemented in subclass!"); - }; - p._arriveAtFrame = function (frame, timelineState, animationState, isCross) { - var displayControl = animationState.displayControl && - animationState.containsBoneMask(this.parent.name); - if (displayControl) { - var slotFrame = frame; - var displayIndex = slotFrame.displayIndex; - var childSlot; - this._changeDisplay(displayIndex); - this._updateDisplayVisible(slotFrame.visible); - if (displayIndex >= 0) { - if (!isNaN(slotFrame.zOrder) && slotFrame.zOrder != this._tweenZOrder) { - this._tweenZOrder = slotFrame.zOrder; - this._armature._slotsZOrderChanged = true; - } - } - if (frame.action) { - if (this.childArmature) { - this.childArmature.animation.gotoAndPlay(frame.action); - } - } - } - }; - p._updateGlobal = function () { - this._calculateRelativeParentTransform(); - dragonBones.TransformUtil.transformToMatrix(this._global, this._globalTransformMatrix, true); - var output = this._calculateParentTransform(); - if (output) { - this._globalTransformMatrix.concat(output.parentGlobalTransformMatrix); - dragonBones.TransformUtil.matrixToTransform(this._globalTransformMatrix, this._global, this._global.scaleX * output.parentGlobalTransform.scaleX >= 0, this._global.scaleY * output.parentGlobalTransform.scaleY >= 0); - } - return output; - }; - p._resetToOrigin = function () { - this._changeDisplay(this._originDisplayIndex); - this._updateDisplayColor(0, 0, 0, 0, 1, 1, 1, 1, true); - }; - return Slot; - })(dragonBones.DBObject); - dragonBones.Slot = Slot; - egret.registerClass(Slot,'dragonBones.Slot'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var AnimationCache = (function () { - function AnimationCache() { - this.slotTimelineCacheList = []; - this.slotTimelineCacheDic = {}; - this.frameNum = 0; - } - var d = __define,c=AnimationCache,p=c.prototype; - AnimationCache.initWithAnimationData = function (animationData, armatureData) { - var output = new AnimationCache(); - output.name = animationData.name; - var boneTimelineList = animationData.timelineList; - var boneName; - var boneData; - var slotData; - var slotTimelineCache; - var slotName; - for (var i = 0, length = boneTimelineList.length; i < length; i++) { - boneName = boneTimelineList[i].name; - for (var j = 0, jlen = armatureData.slotDataList.length; j < jlen; j++) { - slotData = armatureData.slotDataList[j]; - slotName = slotData.name; - if (slotData.parent == boneName) { - if (output.slotTimelineCacheDic[slotName] == null) { - slotTimelineCache = new dragonBones.SlotTimelineCache(); - slotTimelineCache.name = slotName; - output.slotTimelineCacheList.push(slotTimelineCache); - output.slotTimelineCacheDic[slotName] = slotTimelineCache; - } - } - } - } - return output; - }; - p.initSlotTimelineCacheDic = function (slotCacheGeneratorDic, slotFrameCacheDic) { - var name; - for (var k in this.slotTimelineCacheDic) { - var slotTimelineCache = this.slotTimelineCacheDic[k]; - name = slotTimelineCache.name; - slotTimelineCache.cacheGenerator = slotCacheGeneratorDic[name]; - slotTimelineCache.currentFrameCache = slotFrameCacheDic[name]; - } - }; - p.bindCacheUserSlotDic = function (slotDic) { - for (var name in slotDic) { - (this.slotTimelineCacheDic[name]).bindCacheUser(slotDic[name]); - } - }; - p.addFrame = function () { - this.frameNum++; - var slotTimelineCache; - for (var i = 0, length = this.slotTimelineCacheList.length; i < length; i++) { - slotTimelineCache = this.slotTimelineCacheList[i]; - slotTimelineCache.addFrame(); - } - }; - p.update = function (progress) { - var frameIndex = Math.floor(progress * (this.frameNum - 1)); - var slotTimelineCache; - for (var i = 0, length = this.slotTimelineCacheList.length; i < length; i++) { - slotTimelineCache = this.slotTimelineCacheList[i]; - slotTimelineCache.update(frameIndex); - } - }; - return AnimationCache; - })(); - dragonBones.AnimationCache = AnimationCache; - egret.registerClass(AnimationCache,'dragonBones.AnimationCache'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var AnimationCacheManager = (function () { - function AnimationCacheManager() { - this.animationCacheDic = {}; - this.slotFrameCacheDic = {}; - } - var d = __define,c=AnimationCacheManager,p=c.prototype; - AnimationCacheManager.initWithArmatureData = function (armatureData, frameRate) { - if (frameRate === void 0) { frameRate = 0; } - var output = new AnimationCacheManager(); - output.armatureData = armatureData; - if (frameRate <= 0) { - var animationData = armatureData.animationDataList[0]; - if (animationData) { - output.frameRate = animationData.frameRate; - } - } - else { - output.frameRate = frameRate; - } - return output; - }; - p.initAllAnimationCache = function () { - var length = this.armatureData.animationDataList.length; - for (var i = 0; i < length; i++) { - var animationData = this.armatureData.animationDataList[i]; - this.animationCacheDic[animationData.name] = dragonBones.AnimationCache.initWithAnimationData(animationData, this.armatureData); - } - }; - p.initAnimationCache = function (animationName) { - this.animationCacheDic[animationName] = dragonBones.AnimationCache.initWithAnimationData(this.armatureData.getAnimationData(animationName), this.armatureData); - }; - p.bindCacheUserArmatures = function (armatures) { - var length = armatures.length; - for (var i = 0; i < length; i++) { - var armature = armatures[i]; - this.bindCacheUserArmature(armature); - } - }; - p.bindCacheUserArmature = function (armature) { - armature.animation.animationCacheManager = this; - var cacheUser; - for (var k in armature._slotDic) { - cacheUser = armature._slotDic[k]; - cacheUser.frameCache = this.slotFrameCacheDic[cacheUser.name]; - } - }; - p.setCacheGeneratorArmature = function (armature) { - this.cacheGeneratorArmature = armature; - var cacheUser; - for (var slot in armature._slotDic) { - cacheUser = armature._slotDic[slot]; - this.slotFrameCacheDic[cacheUser.name] = new dragonBones.SlotFrameCache(); - } - for (var anim in this.animationCacheDic) { - var animationCache = this.animationCacheDic[anim]; - animationCache.initSlotTimelineCacheDic(armature._slotDic, this.slotFrameCacheDic); - } - }; - p.generateAllAnimationCache = function (loop) { - for (var anim in this.animationCacheDic) { - var animationCache = this.animationCacheDic[anim]; - this.generateAnimationCache(animationCache.name, loop); - } - }; - p.generateAnimationCache = function (animationName, loop) { - var temp = this.cacheGeneratorArmature.enableCache; - this.cacheGeneratorArmature.enableCache = false; - var animationCache = this.animationCacheDic[animationName]; - if (!animationCache) { - return; - } - var animationState = this.cacheGeneratorArmature.getAnimation().animationState; - var passTime = 1 / this.frameRate; - if (loop) { - this.cacheGeneratorArmature.getAnimation().gotoAndPlay(animationName, 0, -1, 0); - } - else { - this.cacheGeneratorArmature.getAnimation().gotoAndPlay(animationName, 0, -1, 1); - } - var tempEnableEventDispatch = this.cacheGeneratorArmature.enableEventDispatch; - this.cacheGeneratorArmature.enableEventDispatch = false; - var lastProgress; - do { - lastProgress = animationState.progress; - this.cacheGeneratorArmature.advanceTime(passTime); - animationCache.addFrame(); - } while (animationState.progress >= lastProgress && animationState.progress < 1); - this.cacheGeneratorArmature.enableEventDispatch = tempEnableEventDispatch; - this.resetCacheGeneratorArmature(); - this.cacheGeneratorArmature.enableCache = temp; - }; - p.resetCacheGeneratorArmature = function () { - this.cacheGeneratorArmature.resetAnimation(); - }; - p.getAnimationCache = function (animationName) { - return this.animationCacheDic[animationName]; - }; - return AnimationCacheManager; - })(); - dragonBones.AnimationCacheManager = AnimationCacheManager; - egret.registerClass(AnimationCacheManager,'dragonBones.AnimationCacheManager'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var FrameCache = (function () { - function FrameCache() { - this.globalTransform = new dragonBones.DBTransform(); - this.globalTransformMatrix = new dragonBones.Matrix(); - } - var d = __define,c=FrameCache,p=c.prototype; - p.copy = function (frameCache) { - this.globalTransform = frameCache.globalTransform; - this.globalTransformMatrix = frameCache.globalTransformMatrix; - }; - p.clear = function () { - this.globalTransform = FrameCache.ORIGIN_TRAMSFORM; - this.globalTransformMatrix = FrameCache.ORIGIN_MATRIX; - }; - FrameCache.ORIGIN_TRAMSFORM = new dragonBones.DBTransform(); - FrameCache.ORIGIN_MATRIX = new dragonBones.Matrix(); - return FrameCache; - })(); - dragonBones.FrameCache = FrameCache; - egret.registerClass(FrameCache,'dragonBones.FrameCache'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var SlotFrameCache = (function (_super) { - __extends(SlotFrameCache, _super); - function SlotFrameCache() { - _super.call(this); - this.displayIndex = -1; - } - var d = __define,c=SlotFrameCache,p=c.prototype; - p.copy = function (frameCache) { - _super.prototype.copy.call(this, frameCache); - this.colorTransform = frameCache.colorTransform; - this.displayIndex = frameCache.displayIndex; - }; - p.clear = function () { - _super.prototype.clear.call(this); - this.colorTransform = null; - this.displayIndex = -1; - }; - return SlotFrameCache; - })(dragonBones.FrameCache); - dragonBones.SlotFrameCache = SlotFrameCache; - egret.registerClass(SlotFrameCache,'dragonBones.SlotFrameCache'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var TimelineCache = (function () { - function TimelineCache() { - this.frameCacheList = new Array(); - } - var d = __define,c=TimelineCache,p=c.prototype; - p.addFrame = function () { - }; - p.update = function (frameIndex) { - if (frameIndex === void 0) { frameIndex = 0; } - this.currentFrameCache.copy(this.frameCacheList[frameIndex]); - }; - p.bindCacheUser = function (cacheUser) { - cacheUser.frameCache = this.currentFrameCache; - }; - return TimelineCache; - })(); - dragonBones.TimelineCache = TimelineCache; - egret.registerClass(TimelineCache,'dragonBones.TimelineCache'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var SlotTimelineCache = (function (_super) { - __extends(SlotTimelineCache, _super); - function SlotTimelineCache() { - _super.call(this); - } - var d = __define,c=SlotTimelineCache,p=c.prototype; - p.addFrame = function () { - var cache = new dragonBones.SlotFrameCache(); - cache.globalTransform.copy(this.cacheGenerator.global); - cache.globalTransformMatrix.copyFrom(this.cacheGenerator.globalTransformMatrix); - if (this.cacheGenerator.colorChanged) { - cache.colorTransform = dragonBones.ColorTransformUtil.cloneColor(this.cacheGenerator.colorTransform); - } - cache.displayIndex = this.cacheGenerator.displayIndex; - this.frameCacheList.push(cache); - }; - return SlotTimelineCache; - })(dragonBones.TimelineCache); - dragonBones.SlotTimelineCache = SlotTimelineCache; - egret.registerClass(SlotTimelineCache,'dragonBones.SlotTimelineCache'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var Event = (function (_super) { - __extends(Event, _super); - function Event(type, bubbles, cancelable) { - if (bubbles === void 0) { bubbles = false; } - if (cancelable === void 0) { cancelable = false; } - _super.call(this, type, bubbles, cancelable); - } - var d = __define,c=Event,p=c.prototype; - return Event; - })(egret.Event); - dragonBones.Event = Event; - egret.registerClass(Event,'dragonBones.Event'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var AnimationEvent = (function (_super) { - __extends(AnimationEvent, _super); - function AnimationEvent(type, cancelable) { - if (cancelable === void 0) { cancelable = false; } - _super.call(this, type); - } - var d = __define,c=AnimationEvent,p=c.prototype; - d(AnimationEvent, "MOVEMENT_CHANGE" - ,function () { - return AnimationEvent.FADE_IN; - } - ); - d(p, "movementID" - ,function () { - return this.animationName; - } - ); - d(p, "armature" - ,function () { - return (this.target); - } - ); - d(p, "animationName" - ,function () { - return this.animationState.name; - } - ); - AnimationEvent.FADE_IN = "fadeIn"; - AnimationEvent.FADE_OUT = "fadeOut"; - AnimationEvent.START = "start"; - AnimationEvent.COMPLETE = "complete"; - AnimationEvent.LOOP_COMPLETE = "loopComplete"; - AnimationEvent.FADE_IN_COMPLETE = "fadeInComplete"; - AnimationEvent.FADE_OUT_COMPLETE = "fadeOutComplete"; - return AnimationEvent; - })(dragonBones.Event); - dragonBones.AnimationEvent = AnimationEvent; - egret.registerClass(AnimationEvent,'dragonBones.AnimationEvent'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var ArmatureEvent = (function (_super) { - __extends(ArmatureEvent, _super); - function ArmatureEvent(type) { - _super.call(this, type); - } - var d = __define,c=ArmatureEvent,p=c.prototype; - ArmatureEvent.Z_ORDER_UPDATED = "zOrderUpdated"; - return ArmatureEvent; - })(dragonBones.Event); - dragonBones.ArmatureEvent = ArmatureEvent; - egret.registerClass(ArmatureEvent,'dragonBones.ArmatureEvent'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var FrameEvent = (function (_super) { - __extends(FrameEvent, _super); - function FrameEvent(type, cancelable) { - if (cancelable === void 0) { cancelable = false; } - _super.call(this, type); - } - var d = __define,c=FrameEvent,p=c.prototype; - d(FrameEvent, "MOVEMENT_FRAME_EVENT" - ,function () { - return FrameEvent.ANIMATION_FRAME_EVENT; - } - ); - d(p, "armature" - ,function () { - return (this.target); - } - ); - FrameEvent.ANIMATION_FRAME_EVENT = "animationFrameEvent"; - FrameEvent.BONE_FRAME_EVENT = "boneFrameEvent"; - return FrameEvent; - })(dragonBones.Event); - dragonBones.FrameEvent = FrameEvent; - egret.registerClass(FrameEvent,'dragonBones.FrameEvent'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var SoundEvent = (function (_super) { - __extends(SoundEvent, _super); - function SoundEvent(type, cancelable) { - if (cancelable === void 0) { cancelable = false; } - _super.call(this, type); - } - var d = __define,c=SoundEvent,p=c.prototype; - SoundEvent.SOUND = "sound"; - return SoundEvent; - })(dragonBones.Event); - dragonBones.SoundEvent = SoundEvent; - egret.registerClass(SoundEvent,'dragonBones.SoundEvent'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var BaseFactory = (function (_super) { - __extends(BaseFactory, _super); - function BaseFactory(self) { - _super.call(this); - this.dragonBonesDataDic = {}; - this.textureAtlasDic = {}; - if (self != this) { - throw new Error(egret.getString(4001)); - } - } - var d = __define,c=BaseFactory,p=c.prototype; - p.dispose = function (disposeData) { - if (disposeData === void 0) { disposeData = true; } - if (disposeData) { - for (var skeletonName in this.dragonBonesDataDic) { - (this.dragonBonesDataDic[skeletonName]).dispose(); - delete this.dragonBonesDataDic[skeletonName]; - } - for (var textureAtlasName in this.textureAtlasDic) { - var textureAtlasArr = this.textureAtlasDic[textureAtlasName]; - if (textureAtlasArr) { - for (var i = 0, len = textureAtlasArr.length; i < len; i++) { - textureAtlasArr[i].dispose(); - } - } - delete this.textureAtlasDic[textureAtlasName]; - } - } - this.dragonBonesDataDic = null; - this.textureAtlasDic = null; - }; - p.getDragonBonesData = function (name) { - return this.dragonBonesDataDic[name]; - }; - p.getSkeletonData = function (name) { - return this.getDragonBonesData(name); - }; - p.addDragonBonesData = function (data, name) { - if (name === void 0) { name = null; } - if (!data) { - throw new Error(); - } - name = name || data.name; - if (!name) { - throw new Error(egret.getString(4002)); - } - this.dragonBonesDataDic[name] = data; - }; - p.addSkeletonData = function (data, name) { - if (name === void 0) { name = null; } - this.addDragonBonesData(data, name); - }; - p.removeDragonBonesData = function (name) { - delete this.dragonBonesDataDic[name]; - }; - p.removeSkeletonData = function (name) { - delete this.dragonBonesDataDic[name]; - }; - p.getTextureAtlas = function (name) { - return this.textureAtlasDic[name]; - }; - p.addTextureAtlas = function (textureAtlas, name) { - if (name === void 0) { name = null; } - if (!textureAtlas) { - throw new Error(); - } - if (!name && textureAtlas.hasOwnProperty("name")) { - name = textureAtlas.name; - } - if (!name) { - throw new Error(egret.getString(4002)); - } - var textureAtlasArr = this.textureAtlasDic[name]; - if (textureAtlasArr == null) { - textureAtlasArr = []; - this.textureAtlasDic[name] = textureAtlasArr; - } - if (textureAtlasArr.indexOf(textureAtlas) != -1) { - return; - } - textureAtlasArr.push(textureAtlas); - }; - p.removeTextureAtlas = function (name) { - delete this.textureAtlasDic[name]; - }; - p.getTextureDisplay = function (textureName, textureAtlasName, pivotX, pivotY) { - if (textureAtlasName === void 0) { textureAtlasName = null; } - if (pivotX === void 0) { pivotX = NaN; } - if (pivotY === void 0) { pivotY = NaN; } - var targetTextureAtlas; - var textureAtlasArr; - var i; - var len; - if (textureAtlasName) { - textureAtlasArr = this.textureAtlasDic[textureAtlasName]; - if (textureAtlasArr) { - for (i = 0, len = textureAtlasArr.length; i < len; i++) { - targetTextureAtlas = textureAtlasArr[i]; - if (targetTextureAtlas.getRegion(textureName)) { - break; - } - targetTextureAtlas = null; - } - } - } - else { - for (textureAtlasName in this.textureAtlasDic) { - textureAtlasArr = this.textureAtlasDic[textureAtlasName]; - if (textureAtlasArr) { - for (i = 0, len = textureAtlasArr.length; i < len; i++) { - targetTextureAtlas = textureAtlasArr[i]; - if (targetTextureAtlas.getRegion(textureName)) { - break; - } - targetTextureAtlas = null; - } - if (targetTextureAtlas != null) { - break; - } - } - } - } - if (!targetTextureAtlas) { - return null; - } - if (isNaN(pivotX) || isNaN(pivotY)) { - var data = this.dragonBonesDataDic[textureAtlasName]; - data = data ? data : this.findFirstDragonBonesData(); - if (data) { - var displayData = data.getDisplayDataByName(textureName); - if (displayData) { - pivotX = displayData.pivot.x; - pivotY = displayData.pivot.y; - } - } - } - return this._generateDisplay(targetTextureAtlas, textureName, pivotX, pivotY); - }; - p.buildArmature = function (armatureName, fromDragonBonesDataName, fromTextureAtlasName, skinName) { - if (fromDragonBonesDataName === void 0) { fromDragonBonesDataName = null; } - if (fromTextureAtlasName === void 0) { fromTextureAtlasName = null; } - if (skinName === void 0) { skinName = null; } - var buildArmatureDataPackage = {}; - this.fillBuildArmatureDataPackageArmatureInfo(armatureName, fromDragonBonesDataName, buildArmatureDataPackage); - if (fromTextureAtlasName == null) { - fromTextureAtlasName = buildArmatureDataPackage.dragonBonesDataName; - } - var dragonBonesData = buildArmatureDataPackage.dragonBonesData; - var armatureData = buildArmatureDataPackage.armatureData; - if (!armatureData) { - return null; - } - return this.buildArmatureUsingArmatureDataFromTextureAtlas(dragonBonesData, armatureData, fromTextureAtlasName, skinName); - }; - p.buildFastArmature = function (armatureName, fromDragonBonesDataName, fromTextureAtlasName, skinName) { - if (fromDragonBonesDataName === void 0) { fromDragonBonesDataName = null; } - if (fromTextureAtlasName === void 0) { fromTextureAtlasName = null; } - if (skinName === void 0) { skinName = null; } - var buildArmatureDataPackage = new BuildArmatureDataPackage(); - this.fillBuildArmatureDataPackageArmatureInfo(armatureName, fromDragonBonesDataName, buildArmatureDataPackage); - if (fromTextureAtlasName == null) { - fromTextureAtlasName = buildArmatureDataPackage.dragonBonesDataName; - } - var dragonBonesData = buildArmatureDataPackage.dragonBonesData; - var armatureData = buildArmatureDataPackage.armatureData; - if (!armatureData) { - return null; - } - return this.buildFastArmatureUsingArmatureDataFromTextureAtlas(dragonBonesData, armatureData, fromTextureAtlasName, skinName); - }; - p.buildArmatureUsingArmatureDataFromTextureAtlas = function (dragonBonesData, armatureData, textureAtlasName, skinName) { - if (skinName === void 0) { skinName = null; } - var outputArmature = this._generateArmature(); - outputArmature.name = armatureData.name; - outputArmature.__dragonBonesData = dragonBonesData; - outputArmature._armatureData = armatureData; - outputArmature.animation.animationDataList = armatureData.animationDataList; - this._buildBones(outputArmature); - this._buildSlots(outputArmature, skinName, textureAtlasName); - outputArmature.advanceTime(0); - return outputArmature; - }; - p.buildFastArmatureUsingArmatureDataFromTextureAtlas = function (dragonBonesData, armatureData, textureAtlasName, skinName) { - if (skinName === void 0) { skinName = null; } - var outputArmature = this._generateFastArmature(); - outputArmature.name = armatureData.name; - outputArmature.__dragonBonesData = dragonBonesData; - outputArmature._armatureData = armatureData; - outputArmature.animation.animationDataList = armatureData.animationDataList; - this._buildFastBones(outputArmature); - this._buildFastSlots(outputArmature, skinName, textureAtlasName); - outputArmature.advanceTime(0); - return outputArmature; - }; - p.copyAnimationsToArmature = function (toArmature, fromArmatreName, fromDragonBonesDataName, ifRemoveOriginalAnimationList) { - if (fromDragonBonesDataName === void 0) { fromDragonBonesDataName = null; } - if (ifRemoveOriginalAnimationList === void 0) { ifRemoveOriginalAnimationList = true; } - var buildArmatureDataPackage = {}; - if (!this.fillBuildArmatureDataPackageArmatureInfo(fromArmatreName, fromDragonBonesDataName, buildArmatureDataPackage)) { - return false; - } - var fromArmatureData = buildArmatureDataPackage.armatureData; - toArmature.animation.animationDataList = fromArmatureData.animationDataList; - var fromSkinData = fromArmatureData.getSkinData(""); - var fromSlotData; - var fromDisplayData; - var toSlotList = toArmature.getSlots(false); - var toSlot; - var toSlotDisplayList; - var toSlotDisplayListLength = 0; - var toDisplayObject; - var toChildArmature; - var length1 = toSlotList.length; - for (var i1 = 0; i1 < length1; i1++) { - toSlot = toSlotList[i1]; - toSlotDisplayList = toSlot.displayList; - toSlotDisplayListLength = toSlotDisplayList.length; - for (var i = 0; i < toSlotDisplayListLength; i++) { - toDisplayObject = toSlotDisplayList[i]; - if (toDisplayObject instanceof dragonBones.Armature) { - toChildArmature = toDisplayObject; - fromSlotData = fromSkinData.getSlotData(toSlot.name); - fromDisplayData = fromSlotData.displayDataList[i]; - if (fromDisplayData.type == dragonBones.DisplayData.ARMATURE) { - this.copyAnimationsToArmature(toChildArmature, fromDisplayData.name, buildArmatureDataPackage.dragonBonesDataName, ifRemoveOriginalAnimationList); - } - } - } - } - return true; - }; - p.fillBuildArmatureDataPackageArmatureInfo = function (armatureName, dragonBonesDataName, outputBuildArmatureDataPackage) { - if (dragonBonesDataName) { - outputBuildArmatureDataPackage.dragonBonesDataName = dragonBonesDataName; - outputBuildArmatureDataPackage.dragonBonesData = this.dragonBonesDataDic[dragonBonesDataName]; - outputBuildArmatureDataPackage.armatureData = outputBuildArmatureDataPackage.dragonBonesData.getArmatureDataByName(armatureName); - return true; - } - else { - for (dragonBonesDataName in this.dragonBonesDataDic) { - outputBuildArmatureDataPackage.dragonBonesData = this.dragonBonesDataDic[dragonBonesDataName]; - outputBuildArmatureDataPackage.armatureData = outputBuildArmatureDataPackage.dragonBonesData.getArmatureDataByName(armatureName); - if (outputBuildArmatureDataPackage.armatureData) { - outputBuildArmatureDataPackage.dragonBonesDataName = dragonBonesDataName; - return true; - } - } - } - return false; - }; - p.fillBuildArmatureDataPackageTextureInfo = function (fromTextureAtlasName, outputBuildArmatureDataPackage) { - outputBuildArmatureDataPackage.textureAtlas = this.textureAtlasDic[fromTextureAtlasName ? fromTextureAtlasName : outputBuildArmatureDataPackage.dragonBonesDataName]; - }; - p.findFirstDragonBonesData = function () { - for (var key in this.dragonBonesDataDic) { - var outputDragonBonesData = this.dragonBonesDataDic[key]; - if (outputDragonBonesData) { - return outputDragonBonesData; - } - } - return null; - }; - p.findFirstTextureAtlas = function () { - for (var key in this.textureAtlasDic) { - var outputTextureAtlas = this.textureAtlasDic[key]; - if (outputTextureAtlas) { - return outputTextureAtlas; - } - } - return null; - }; - p._buildBones = function (armature) { - var boneDataList = armature.armatureData.boneDataList; - var boneData; - var bone; - var parent; - for (var i = 0; i < boneDataList.length; i++) { - boneData = boneDataList[i]; - bone = dragonBones.Bone.initWithBoneData(boneData); - parent = boneData.parent; - if (parent && armature.armatureData.getBoneData(parent) == null) { - parent = null; - } - armature.addBone(bone, parent, true); - } - armature._updateAnimationAfterBoneListChanged(); - }; - p._buildSlots = function (armature, skinName, textureAtlasName) { - var skinData = armature.armatureData.getSkinData(skinName); - if (!skinData) { - return; - } - armature.armatureData.setSkinData(skinName); - var displayList = []; - var slotDataList = armature.armatureData.slotDataList; - var slotData; - var slot; - var bone; - for (var i = 0; i < slotDataList.length; i++) { - slotData = slotDataList[i]; - bone = armature.getBone(slotData.parent); - if (!bone) { - continue; - } - slot = this._generateSlot(); - slot.initWithSlotData(slotData); - bone.addSlot(slot); - displayList.length = 0; - var l = slotData.displayDataList.length; - while (l--) { - var displayData = slotData.displayDataList[l]; - switch (displayData.type) { - case dragonBones.DisplayData.ARMATURE: - var childArmature = this.buildArmatureUsingArmatureDataFromTextureAtlas(armature.__dragonBonesData, armature.__dragonBonesData.getArmatureDataByName(displayData.name), textureAtlasName, skinName); - displayList[l] = childArmature; - break; - case dragonBones.DisplayData.IMAGE: - default: - displayList[l] = this.getTextureDisplay(displayData.name, textureAtlasName, displayData.pivot.x, displayData.pivot.y); - break; - } - } - for (var j = 0, jLen = displayList.length; j < jLen; j++) { - var displayObject = displayList[j]; - if (!displayObject) { - continue; - } - if (displayObject instanceof dragonBones.Armature) { - displayObject = displayObject.display; - } - if (displayObject.hasOwnProperty("name")) { - try { - displayObject["name"] = slot.name; - } - catch (err) { - } - } - } - slot.displayList = displayList; - slot._changeDisplay(slotData.displayIndex); - } - }; - p._buildFastBones = function (armature) { - var boneDataList = armature.armatureData.boneDataList; - var boneData; - var bone; - for (var i = 0; i < boneDataList.length; i++) { - boneData = boneDataList[i]; - bone = dragonBones.FastBone.initWithBoneData(boneData); - armature.addBone(bone, boneData.parent); - } - }; - p._buildFastSlots = function (armature, skinName, textureAtlasName) { - var skinData = armature.armatureData.getSkinData(skinName); - if (!skinData) { - return; - } - armature.armatureData.setSkinData(skinName); - var displayList = []; - var slotDataList = armature.armatureData.slotDataList; - var slotData; - var slot; - for (var i = 0; i < slotDataList.length; i++) { - displayList.length = 0; - slotData = slotDataList[i]; - slot = this._generateFastSlot(); - slot.initWithSlotData(slotData); - var l = slotData.displayDataList.length; - while (l--) { - var displayData = slotData.displayDataList[l]; - switch (displayData.type) { - case dragonBones.DisplayData.ARMATURE: - var childArmature = this.buildFastArmatureUsingArmatureDataFromTextureAtlas(armature.__dragonBonesData, armature.__dragonBonesData.getArmatureDataByName(displayData.name), textureAtlasName, skinName); - displayList[l] = childArmature; - slot.hasChildArmature = true; - break; - case dragonBones.DisplayData.IMAGE: - default: - displayList[l] = this.getTextureDisplay(displayData.name, textureAtlasName, displayData.pivot.x, displayData.pivot.y); - break; - } - } - var length1 = displayList.length; - for (var i1 = 0; i1 < length1; i1++) { - var displayObject = displayList[i1]; - if (!displayObject) { - continue; - } - if (displayObject instanceof dragonBones.FastArmature) { - displayObject = displayObject.display; - } - if (displayObject.hasOwnProperty("name")) { - try { - displayObject["name"] = slot.name; - } - catch (err) { - } - } - } - slot.initDisplayList(displayList.concat()); - armature.addSlot(slot, slotData.parent); - slot._changeDisplayIndex(slotData.displayIndex); - } - }; - p._generateArmature = function () { - return null; - }; - p._generateSlot = function () { - return null; - }; - p._generateFastArmature = function () { - return null; - }; - p._generateFastSlot = function () { - return null; - }; - p._generateDisplay = function (textureAtlas, fullName, pivotX, pivotY) { - return null; - }; - BaseFactory._helpMatrix = new dragonBones.Matrix(); - return BaseFactory; - })(dragonBones.EventDispatcher); - dragonBones.BaseFactory = BaseFactory; - egret.registerClass(BaseFactory,'dragonBones.BaseFactory'); - var BuildArmatureDataPackage = (function () { - function BuildArmatureDataPackage() { - } - var d = __define,c=BuildArmatureDataPackage,p=c.prototype; - return BuildArmatureDataPackage; - })(); - dragonBones.BuildArmatureDataPackage = BuildArmatureDataPackage; - egret.registerClass(BuildArmatureDataPackage,'dragonBones.BuildArmatureDataPackage'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var FastArmature = (function (_super) { - __extends(FastArmature, _super); - function FastArmature(display) { - _super.call(this); - this.isCacheManagerExclusive = false; - this._enableEventDispatch = true; - this.useCache = true; - this._display = display; - this._animation = new dragonBones.FastAnimation(this); - this._slotsZOrderChanged = false; - this._armatureData = null; - this.boneList = []; - this._boneDic = {}; - this.slotList = []; - this._slotDic = {}; - this.slotHasChildArmatureList = []; - this._eventList = []; - this._delayDispose = false; - this._lockDispose = false; - } - var d = __define,c=FastArmature,p=c.prototype; - p.dispose = function () { - this._delayDispose = true; - if (!this._animation || this._lockDispose) { - return; - } - this.userData = null; - this._animation.dispose(); - var i = this.slotList.length; - while (i--) { - this.slotList[i].dispose(); - } - i = this.boneList.length; - while (i--) { - this.boneList[i].dispose(); - } - this.slotList.length = 0; - this.boneList.length = 0; - this._armatureData = null; - this._animation = null; - this.slotList = null; - this.boneList = null; - this._eventList = null; - }; - p.advanceTime = function (passedTime) { - this._lockDispose = true; - this._animation.advanceTime(passedTime); - var bone; - var slot; - var i = 0; - if (this._animation.animationState.isUseCache()) { - if (!this.useCache) { - this.useCache = true; - } - i = this.slotList.length; - while (i--) { - slot = this.slotList[i]; - slot.updateByCache(); - } - } - else { - if (this.useCache) { - this.useCache = false; - i = this.slotList.length; - while (i--) { - slot = this.slotList[i]; - slot.switchTransformToBackup(); - } - } - i = this.boneList.length; - while (i--) { - bone = this.boneList[i]; - bone.update(); - } - i = this.slotList.length; - while (i--) { - slot = this.slotList[i]; - slot._update(); - } - } - i = this.slotHasChildArmatureList.length; - while (i--) { - slot = this.slotHasChildArmatureList[i]; - var childArmature = slot.childArmature; - if (childArmature) { - childArmature.advanceTime(passedTime); - } - } - if (this._slotsZOrderChanged) { - this.updateSlotsZOrder(); - } - while (this._eventList.length > 0) { - this.dispatchEvent(this._eventList.shift()); - } - this._lockDispose = false; - if (this._delayDispose) { - this.dispose(); - } - }; - p.enableAnimationCache = function (frameRate, animationList, loop) { - if (animationList === void 0) { animationList = null; } - if (loop === void 0) { loop = true; } - var animationCacheManager = dragonBones.AnimationCacheManager.initWithArmatureData(this.armatureData, frameRate); - if (animationList) { - var length = animationList.length; - for (var i = 0; i < length; i++) { - var animationName = animationList[i]; - animationCacheManager.initAnimationCache(animationName); - } - } - else { - animationCacheManager.initAllAnimationCache(); - } - animationCacheManager.setCacheGeneratorArmature(this); - animationCacheManager.generateAllAnimationCache(loop); - animationCacheManager.bindCacheUserArmature(this); - this.enableCache = true; - return animationCacheManager; - }; - p.getBone = function (boneName) { - return this._boneDic[boneName]; - }; - p.getSlot = function (slotName) { - return this._slotDic[slotName]; - }; - p.getBoneByDisplay = function (display) { - var slot = this.getSlotByDisplay(display); - return slot ? slot.parent : null; - }; - p.getSlotByDisplay = function (displayObj) { - if (displayObj) { - for (var i = 0, len = this.slotList.length; i < len; i++) { - if (this.slotList[i].display == displayObj) { - return this.slotList[i]; - } - } - } - return null; - }; - p.getSlots = function (returnCopy) { - if (returnCopy === void 0) { returnCopy = true; } - return returnCopy ? this.slotList.concat() : this.slotList; - }; - p._updateBonesByCache = function () { - var i = this.boneList.length; - var bone; - while (i--) { - bone = this.boneList[i]; - bone.update(); - } - }; - p.addBone = function (bone, parentName) { - if (parentName === void 0) { parentName = null; } - var parentBone; - if (parentName) { - parentBone = this.getBone(parentName); - parentBone.boneList.push(bone); - } - bone.armature = this; - bone.setParent(parentBone); - this.boneList.unshift(bone); - this._boneDic[bone.name] = bone; - }; - p.addSlot = function (slot, parentBoneName) { - var bone = this.getBone(parentBoneName); - if (bone) { - slot.armature = this; - slot.setParent(bone); - bone.slotList.push(slot); - slot._addDisplayToContainer(this.display); - this.slotList.push(slot); - this._slotDic[slot.name] = slot; - if (slot.hasChildArmature) { - this.slotHasChildArmatureList.push(slot); - } - } - else { - throw new Error(); - } - }; - p.updateSlotsZOrder = function () { - this.slotList.sort(this.sortSlot); - var i = this.slotList.length; - while (i--) { - var slot = this.slotList[i]; - if ((slot._frameCache && (slot._frameCache).displayIndex >= 0) - || (!slot._frameCache && slot.displayIndex >= 0)) { - slot._addDisplayToContainer(this._display); - } - } - this._slotsZOrderChanged = false; - }; - p.sortBoneList = function () { - var i = this.boneList.length; - if (i == 0) { - return; - } - var helpArray = []; - while (i--) { - var level = 0; - var bone = this.boneList[i]; - var boneParent = bone; - while (boneParent) { - level++; - boneParent = boneParent.parent; - } - helpArray[i] = [level, bone]; - } - helpArray.sort(dragonBones.ArmatureData.sortBoneDataHelpArrayDescending); - i = helpArray.length; - while (i--) { - this.boneList[i] = helpArray[i][1]; - } - helpArray.length = 0; - }; - p.arriveAtFrame = function (frame, animationState) { - if (frame.event && this.hasEventListener(dragonBones.FrameEvent.ANIMATION_FRAME_EVENT)) { - var frameEvent = new dragonBones.FrameEvent(dragonBones.FrameEvent.ANIMATION_FRAME_EVENT); - frameEvent.animationState = animationState; - frameEvent.frameLabel = frame.event; - this._addEvent(frameEvent); - } - if (frame.action) { - this.animation.gotoAndPlay(frame.action); - } - }; - p.invalidUpdate = function (boneName) { - if (boneName === void 0) { boneName = null; } - if (boneName) { - var bone = this.getBone(boneName); - if (bone) { - bone.invalidUpdate(); - } - } - else { - var i = this.boneList.length; - while (i--) { - this.boneList[i].invalidUpdate(); - } - } - }; - p.resetAnimation = function () { - this.animation.animationState._resetTimelineStateList(); - var length = this.boneList.length; - for (var i = 0; i < length; i++) { - var boneItem = this.boneList[i]; - boneItem._timelineState = null; - } - this.animation.stop(); - }; - p.sortSlot = function (slot1, slot2) { - return slot1.zOrder < slot2.zOrder ? 1 : -1; - }; - p.getAnimation = function () { - return this._animation; - }; - d(p, "armatureData" - ,function () { - return this._armatureData; - } - ); - d(p, "animation" - ,function () { - return this._animation; - } - ); - d(p, "display" - ,function () { - return this._display; - } - ); - d(p, "enableCache" - ,function () { - return this._enableCache; - } - ,function (value) { - this._enableCache = value; - } - ); - d(p, "enableEventDispatch" - ,function () { - return this._enableEventDispatch; - } - ,function (value) { - this._enableEventDispatch = value; - } - ); - p._addEvent = function (event) { - if (this._enableEventDispatch) { - this._eventList.push(event); - } - }; - return FastArmature; - })(dragonBones.EventDispatcher); - dragonBones.FastArmature = FastArmature; - egret.registerClass(FastArmature,'dragonBones.FastArmature',["dragonBones.ICacheableArmature","dragonBones.IArmature","dragonBones.IAnimatable"]); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var FastDBObject = (function () { - function FastDBObject() { - this._globalTransformMatrix = new dragonBones.Matrix(); - this._global = new dragonBones.DBTransform(); - this._origin = new dragonBones.DBTransform(); - this._visible = true; - this.armature = null; - this._parent = null; - this.userData = null; - this.inheritRotation = true; - this.inheritScale = true; - this.inheritTranslation = true; - } - var d = __define,c=FastDBObject,p=c.prototype; - p.updateByCache = function () { - this._global = this._frameCache.globalTransform; - this._globalTransformMatrix = this._frameCache.globalTransformMatrix; - }; - p.switchTransformToBackup = function () { - if (!this._globalBackup) { - this._globalBackup = new dragonBones.DBTransform(); - this._globalTransformMatrixBackup = new dragonBones.Matrix(); - } - this._global = this._globalBackup; - this._globalTransformMatrix = this._globalTransformMatrixBackup; - }; - p.setParent = function (value) { - this._parent = value; - }; - p.dispose = function () { - this.userData = null; - this._globalTransformMatrix = null; - this._global = null; - this._origin = null; - this.armature = null; - this._parent = null; - }; - p._calculateParentTransform = function () { - if (this.parent && (this.inheritTranslation || this.inheritRotation || this.inheritScale)) { - var parentGlobalTransform = this._parent._global; - var parentGlobalTransformMatrix = this._parent._globalTransformMatrix; - if (!this.inheritTranslation && (parentGlobalTransform.x != 0 || parentGlobalTransform.y != 0) || - !this.inheritRotation && (parentGlobalTransform.skewX != 0 || parentGlobalTransform.skewY != 0) || - !this.inheritScale && (parentGlobalTransform.scaleX != 1 || parentGlobalTransform.scaleY != 1)) { - parentGlobalTransform = FastDBObject._tempParentGlobalTransform; - parentGlobalTransform.copy(this._parent._global); - if (!this.inheritTranslation) { - parentGlobalTransform.x = 0; - parentGlobalTransform.y = 0; - } - if (!this.inheritScale) { - parentGlobalTransform.scaleX = 1; - parentGlobalTransform.scaleY = 1; - } - if (!this.inheritRotation) { - parentGlobalTransform.skewX = 0; - parentGlobalTransform.skewY = 0; - } - parentGlobalTransformMatrix = dragonBones.DBObject._tempParentGlobalTransformMatrix; - dragonBones.TransformUtil.transformToMatrix(parentGlobalTransform, parentGlobalTransformMatrix); - } - FastDBObject.tempOutputObj.parentGlobalTransform = parentGlobalTransform; - FastDBObject.tempOutputObj.parentGlobalTransformMatrix = parentGlobalTransformMatrix; - return FastDBObject.tempOutputObj; - } - return null; - }; - p._updateGlobal = function () { - this._calculateRelativeParentTransform(); - var output = this._calculateParentTransform(); - if (output != null) { - var parentMatrix = output.parentGlobalTransformMatrix; - var parentGlobalTransform = output.parentGlobalTransform; - var x = this._global.x; - var y = this._global.y; - this._global.x = parentMatrix.a * x + parentMatrix.c * y + parentMatrix.tx; - this._global.y = parentMatrix.d * y + parentMatrix.b * x + parentMatrix.ty; - if (this.inheritRotation) { - this._global.skewX += parentGlobalTransform.skewX; - this._global.skewY += parentGlobalTransform.skewY; - } - if (this.inheritScale) { - this._global.scaleX *= parentGlobalTransform.scaleX; - this._global.scaleY *= parentGlobalTransform.scaleY; - } - } - dragonBones.TransformUtil.transformToMatrix(this._global, this._globalTransformMatrix, true); - return output; - }; - p._calculateRelativeParentTransform = function () { - }; - d(p, "name" - ,function () { - return this._name; - } - ,function (value) { - this._name = value; - } - ); - d(p, "global" - ,function () { - return this._global; - } - ); - d(p, "globalTransformMatrix" - ,function () { - return this._globalTransformMatrix; - } - ); - d(p, "origin" - ,function () { - return this._origin; - } - ); - d(p, "parent" - ,function () { - return this._parent; - } - ); - d(p, "visible" - ,function () { - return this._visible; - } - ,function (value) { - this._visible = value; - } - ); - d(p, "frameCache",undefined - ,function (cache) { - this._frameCache = cache; - } - ); - FastDBObject._tempParentGlobalTransform = new dragonBones.DBTransform(); - FastDBObject.tempOutputObj = {}; - return FastDBObject; - })(); - dragonBones.FastDBObject = FastDBObject; - egret.registerClass(FastDBObject,'dragonBones.FastDBObject'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var FastBone = (function (_super) { - __extends(FastBone, _super); - function FastBone() { - _super.call(this); - this.slotList = []; - this.boneList = []; - this._needUpdate = 0; - this._needUpdate = 2; - this._tweenPivot = new dragonBones.Point(); - } - var d = __define,c=FastBone,p=c.prototype; - FastBone.initWithBoneData = function (boneData) { - var outputBone = new FastBone(); - outputBone.name = boneData.name; - outputBone.inheritRotation = boneData.inheritRotation; - outputBone.inheritScale = boneData.inheritScale; - outputBone.origin.copy(boneData.transform); - return outputBone; - }; - p.getBones = function (returnCopy) { - if (returnCopy === void 0) { returnCopy = true; } - return returnCopy ? this.boneList.concat() : this.boneList; - }; - p.getSlots = function (returnCopy) { - if (returnCopy === void 0) { returnCopy = true; } - return returnCopy ? this.slotList.concat() : this.slotList; - }; - p.dispose = function () { - _super.prototype.dispose.call(this); - this._timelineState = null; - this._tweenPivot = null; - }; - p.invalidUpdate = function () { - this._needUpdate = 2; - }; - p._calculateRelativeParentTransform = function () { - this._global.copy(this._origin); - if (this._timelineState) { - this._global.add(this._timelineState._transform); - } - }; - p.updateByCache = function () { - _super.prototype.updateByCache.call(this); - this._global = this._frameCache.globalTransform; - this._globalTransformMatrix = this._frameCache.globalTransformMatrix; - }; - p.update = function (needUpdate) { - if (needUpdate === void 0) { needUpdate = false; } - this._needUpdate--; - if (needUpdate || this._needUpdate > 0 || (this._parent && this._parent._needUpdate > 0)) { - this._needUpdate = 1; - } - else { - return; - } - this.blendingTimeline(); - this._updateGlobal(); - }; - p._hideSlots = function () { - var length = this.slotList.length; - for (var i = 0; i < length; i++) { - var childSlot = this.slotList[i]; - childSlot.hideSlots(); - } - }; - p.blendingTimeline = function () { - if (this._timelineState) { - this._tweenPivot.x = this._timelineState._pivot.x; - this._tweenPivot.y = this._timelineState._pivot.y; - } - }; - p.arriveAtFrame = function (frame, animationState) { - var childSlot; - if (frame.event && this.armature.hasEventListener(dragonBones.FrameEvent.BONE_FRAME_EVENT)) { - var frameEvent = new dragonBones.FrameEvent(dragonBones.FrameEvent.BONE_FRAME_EVENT); - frameEvent.bone = this; - frameEvent.animationState = animationState; - frameEvent.frameLabel = frame.event; - this.armature._addEvent(frameEvent); - } - }; - d(p, "childArmature" - ,function () { - var s = this.slot; - if (s) { - return s.childArmature; - } - return null; - } - ); - d(p, "display" - ,function () { - var s = this.slot; - if (s) { - return s.display; - } - return null; - } - ,function (value) { - var s = this.slot; - if (s) { - s.display = value; - } - } - ); - d(p, "visible",undefined - ,function (value) { - if (this._visible != value) { - this._visible = value; - for (var i = 0, len = this.armature.slotList.length; i < len; i++) { - if (this.armature.slotList[i].parent == this) { - this.armature.slotList[i]._updateDisplayVisible(this._visible); - } - } - } - } - ); - d(p, "slot" - ,function () { - return this.slotList.length > 0 ? this.slotList[0] : null; - } - ); - return FastBone; - })(dragonBones.FastDBObject); - dragonBones.FastBone = FastBone; - egret.registerClass(FastBone,'dragonBones.FastBone'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var FastSlot = (function (_super) { - __extends(FastSlot, _super); - function FastSlot(self) { - _super.call(this); - this._currentDisplayIndex = 0; - if (self != this) { - throw new Error("Abstract class can not be instantiated!"); - } - this.hasChildArmature = false; - this._currentDisplayIndex = -1; - this._originZOrder = 0; - this._tweenZOrder = 0; - this._offsetZOrder = 0; - this._colorTransform = new dragonBones.ColorTransform(); - this._isColorChanged = false; - this._displayDataList = null; - this._currentDisplay = null; - this.inheritRotation = true; - this.inheritScale = true; - } - var d = __define,c=FastSlot,p=c.prototype; - p.initWithSlotData = function (slotData) { - this.name = slotData.name; - this.blendMode = slotData.blendMode; - this._originZOrder = slotData.zOrder; - this._displayDataList = slotData.displayDataList; - this._originDisplayIndex = slotData.displayIndex; - }; - p.dispose = function () { - if (!this._displayList) { - return; - } - _super.prototype.dispose.call(this); - this._displayDataList = null; - this._displayList = null; - this._currentDisplay = null; - }; - p.updateByCache = function () { - _super.prototype.updateByCache.call(this); - this._updateTransform(); - var cacheColor = (this._frameCache).colorTransform; - var cacheColorChanged = cacheColor != null; - if (this.colorChanged != cacheColorChanged || - (this.colorChanged && cacheColorChanged && !dragonBones.ColorTransformUtil.isEqual(this._colorTransform, cacheColor))) { - cacheColor = cacheColor || dragonBones.ColorTransformUtil.originalColor; - this._updateDisplayColor(cacheColor.alphaOffset, cacheColor.redOffset, cacheColor.greenOffset, cacheColor.blueOffset, cacheColor.alphaMultiplier, cacheColor.redMultiplier, cacheColor.greenMultiplier, cacheColor.blueMultiplier, cacheColorChanged); - } - this._changeDisplayIndex((this._frameCache).displayIndex); - }; - p._update = function () { - if (this._parent._needUpdate <= 0) { - return; - } - this._updateGlobal(); - this._updateTransform(); - }; - p._calculateRelativeParentTransform = function () { - this._global.copy(this._origin); - this._global.x += this._parent._tweenPivot.x; - this._global.y += this._parent._tweenPivot.y; - }; - p.initDisplayList = function (newDisplayList) { - this._displayList = newDisplayList; - }; - p.clearCurrentDisplay = function () { - if (this.hasChildArmature) { - var targetArmature = this.childArmature; - if (targetArmature) { - targetArmature.resetAnimation(); - } - } - var slotIndex = this._getDisplayIndex(); - this._removeDisplayFromContainer(); - return slotIndex; - }; - p._changeDisplayIndex = function (displayIndex) { - if (displayIndex === void 0) { displayIndex = 0; } - if (this._currentDisplayIndex == displayIndex) { - return; - } - var slotIndex = -1; - if (this._currentDisplayIndex >= 0) { - slotIndex = this.clearCurrentDisplay(); - } - this._currentDisplayIndex = displayIndex; - if (this._currentDisplayIndex >= 0) { - this._origin.copy(this._displayDataList[this._currentDisplayIndex].transform); - this.initCurrentDisplay(slotIndex); - } - }; - p.changeSlotDisplay = function (value) { - var slotIndex = this.clearCurrentDisplay(); - this._displayList[this._currentDisplayIndex] = value; - this.initCurrentDisplay(slotIndex); - }; - p.initCurrentDisplay = function (slotIndex) { - if (slotIndex === void 0) { slotIndex = 0; } - var display = this._displayList[this._currentDisplayIndex]; - if (display) { - if (display instanceof dragonBones.FastArmature) { - this._currentDisplay = display.display; - } - else { - this._currentDisplay = display; - } - } - else { - this._currentDisplay = null; - } - this._updateDisplay(this._currentDisplay); - if (this._currentDisplay) { - if (slotIndex != -1) { - this._addDisplayToContainer(this.armature.display, slotIndex); - } - else { - this.armature._slotsZOrderChanged = true; - this._addDisplayToContainer(this.armature.display); - } - if (this._blendMode) { - this._updateDisplayBlendMode(this._blendMode); - } - if (this._isColorChanged) { - this._updateDisplayColor(this._colorTransform.alphaOffset, this._colorTransform.redOffset, this._colorTransform.greenOffset, this._colorTransform.blueOffset, this._colorTransform.alphaMultiplier, this._colorTransform.redMultiplier, this._colorTransform.greenMultiplier, this._colorTransform.blueMultiplier, true); - } - this._updateTransform(); - if (display instanceof dragonBones.FastArmature) { - var targetArmature = (display); - if (this.armature && - this.armature.animation.animationState && - targetArmature.animation.hasAnimation(this.armature.animation.animationState.name)) { - targetArmature.animation.gotoAndPlay(this.armature.animation.animationState.name); - } - else { - targetArmature.animation.play(); - } - } - } - }; - d(p, "visible",undefined - ,function (value) { - if (this._visible != value) { - this._visible = value; - this._updateDisplayVisible(this._visible); - } - } - ); - d(p, "displayList" - ,function () { - return this._displayList; - } - ,function (value) { - if (!value) { - throw new Error(); - } - var newDisplay = value[this._currentDisplayIndex]; - var displayChanged = this._currentDisplayIndex >= 0 && this._displayList[this._currentDisplayIndex] != newDisplay; - this._displayList = value; - if (displayChanged) { - this.changeSlotDisplay(newDisplay); - } - } - ); - d(p, "display" - ,function () { - return this._currentDisplay; - } - ,function (value) { - if (this._currentDisplayIndex < 0) { - return; - } - if (this._displayList[this._currentDisplayIndex] == value) { - return; - } - this.changeSlotDisplay(value); - } - ); - d(p, "childArmature" - ,function () { - return (this._displayList[this._currentDisplayIndex] instanceof dragonBones.Armature - || this._displayList[this._currentDisplayIndex] instanceof dragonBones.FastArmature) ? this._displayList[this._currentDisplayIndex] : null; - } - ,function (value) { - this.display = value; - } - ); - d(p, "zOrder" - ,function () { - return this._originZOrder + this._tweenZOrder + this._offsetZOrder; - } - ,function (value) { - if (this.zOrder != value) { - this._offsetZOrder = value - this._originZOrder - this._tweenZOrder; - if (this.armature) { - this.armature._slotsZOrderChanged = true; - } - } - } - ); - d(p, "blendMode" - ,function () { - return this._blendMode; - } - ,function (value) { - if (this._blendMode != value) { - this._blendMode = value; - this._updateDisplayBlendMode(this._blendMode); - } - } - ); - d(p, "colorTransform" - ,function () { - return this._colorTransform; - } - ); - d(p, "displayIndex" - ,function () { - return this._currentDisplayIndex; - } - ); - d(p, "colorChanged" - ,function () { - return this._isColorChanged; - } - ); - p._updateDisplay = function (value) { - throw new Error("Abstract method needs to be implemented in subclass!"); - }; - p._getDisplayIndex = function () { - throw new Error("Abstract method needs to be implemented in subclass!"); - }; - p._addDisplayToContainer = function (container, index) { - if (index === void 0) { index = -1; } - throw new Error("Abstract method needs to be implemented in subclass!"); - }; - p._removeDisplayFromContainer = function () { - throw new Error("Abstract method needs to be implemented in subclass!"); - }; - p._updateTransform = function () { - throw new Error("Abstract method needs to be implemented in subclass!"); - }; - p._updateDisplayVisible = function (value) { - throw new Error("Abstract method needs to be implemented in subclass!"); - }; - p._updateDisplayColor = function (aOffset, rOffset, gOffset, bOffset, aMultiplier, rMultiplier, gMultiplier, bMultiplier, colorChanged) { - if (colorChanged === void 0) { colorChanged = false; } - this._colorTransform.alphaOffset = aOffset; - this._colorTransform.redOffset = rOffset; - this._colorTransform.greenOffset = gOffset; - this._colorTransform.blueOffset = bOffset; - this._colorTransform.alphaMultiplier = aMultiplier; - this._colorTransform.redMultiplier = rMultiplier; - this._colorTransform.greenMultiplier = gMultiplier; - this._colorTransform.blueMultiplier = bMultiplier; - this._isColorChanged = colorChanged; - }; - p._updateDisplayBlendMode = function (value) { - throw new Error("Abstract method needs to be implemented in subclass!"); - }; - p._arriveAtFrame = function (frame, animationState) { - var slotFrame = frame; - var displayIndex = slotFrame.displayIndex; - this._changeDisplayIndex(displayIndex); - this._updateDisplayVisible(slotFrame.visible); - if (displayIndex >= 0) { - if (!isNaN(slotFrame.zOrder) && slotFrame.zOrder != this._tweenZOrder) { - this._tweenZOrder = slotFrame.zOrder; - this.armature._slotsZOrderChanged = true; - } - } - if (frame.action) { - var targetArmature = this.childArmature; - if (targetArmature) { - targetArmature.getAnimation().gotoAndPlay(frame.action); - } - } - }; - p.hideSlots = function () { - this._changeDisplayIndex(-1); - this._removeDisplayFromContainer(); - if (this._frameCache) { - this._frameCache.clear(); - } - }; - p._updateGlobal = function () { - this._calculateRelativeParentTransform(); - dragonBones.TransformUtil.transformToMatrix(this._global, this._globalTransformMatrix, true); - var output = this._calculateParentTransform(); - if (output) { - this._globalTransformMatrix.concat(output.parentGlobalTransformMatrix); - dragonBones.TransformUtil.matrixToTransform(this._globalTransformMatrix, this._global, this._global.scaleX * output.parentGlobalTransform.scaleX >= 0, this._global.scaleY * output.parentGlobalTransform.scaleY >= 0); - } - return output; - }; - p._resetToOrigin = function () { - this._changeDisplayIndex(this._originDisplayIndex); - this._updateDisplayColor(0, 0, 0, 0, 1, 1, 1, 1, true); - }; - return FastSlot; - })(dragonBones.FastDBObject); - dragonBones.FastSlot = FastSlot; - egret.registerClass(FastSlot,'dragonBones.FastSlot',["dragonBones.ISlotCacheGenerator","dragonBones.ICacheUser"]); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var Point = (function () { - function Point(x, y) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - this.x = x; - this.y = y; - } - var d = __define,c=Point,p=c.prototype; - p.toString = function () { - return "[Point (x=" + this.x + " y=" + this.y + ")]"; - }; - return Point; - })(); - dragonBones.Point = Point; - egret.registerClass(Point,'dragonBones.Point'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var Rectangle = (function () { - function Rectangle(x, y, width, height) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - if (width === void 0) { width = 0; } - if (height === void 0) { height = 0; } - this.x = x; - this.y = y; - this.width = width; - this.height = height; - } - var d = __define,c=Rectangle,p=c.prototype; - return Rectangle; - })(); - dragonBones.Rectangle = Rectangle; - egret.registerClass(Rectangle,'dragonBones.Rectangle'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var Data3Parser = (function () { - function Data3Parser() { - } - var d = __define,c=Data3Parser,p=c.prototype; - Data3Parser.parseDragonBonesData = function (rawDataToParse) { - if (!rawDataToParse) { - throw new Error(); - } - var version = rawDataToParse[dragonBones.ConstValues.A_VERSION]; - version = version.toString(); - if (version.toString() != dragonBones.DragonBones.DATA_VERSION && - version.toString() != dragonBones.DragonBones.PARENT_COORDINATE_DATA_VERSION && - version.toString() != "2.3") { - throw new Error("Nonsupport version!"); - } - var frameRate = Data3Parser.getNumber(rawDataToParse, dragonBones.ConstValues.A_FRAME_RATE, 0) || 0; - var outputDragonBonesData = new dragonBones.DragonBonesData(); - outputDragonBonesData.name = rawDataToParse[dragonBones.ConstValues.A_NAME]; - outputDragonBonesData.isGlobal = rawDataToParse[dragonBones.ConstValues.A_IS_GLOBAL] == "0" ? false : true; - Data3Parser.tempDragonBonesData = outputDragonBonesData; - var armatureList = rawDataToParse[dragonBones.ConstValues.ARMATURE]; - for (var i = 0, len = armatureList.length; i < len; i++) { - var armatureObject = armatureList[i]; - outputDragonBonesData.addArmatureData(Data3Parser.parseArmatureData(armatureObject, frameRate)); - } - Data3Parser.tempDragonBonesData = null; - return outputDragonBonesData; - }; - Data3Parser.parseArmatureData = function (armatureDataToParse, frameRate) { - var outputArmatureData = new dragonBones.ArmatureData(); - outputArmatureData.name = armatureDataToParse[dragonBones.ConstValues.A_NAME]; - var i; - var len; - var boneList = armatureDataToParse[dragonBones.ConstValues.BONE]; - for (i = 0, len = boneList.length; i < len; i++) { - var boneObject = boneList[i]; - outputArmatureData.addBoneData(Data3Parser.parseBoneData(boneObject)); - } - var skinList = armatureDataToParse[dragonBones.ConstValues.SKIN]; - for (i = 0, len = skinList.length; i < len; i++) { - var skinSlotList = skinList[i]; - var skinSlotObject = skinSlotList[dragonBones.ConstValues.SLOT]; - for (var j = 0, jLen = skinSlotObject.length; j < jLen; j++) { - var slotObject = skinSlotObject[j]; - outputArmatureData.addSlotData(Data3Parser.parseSlotData(slotObject)); - } - } - for (i = 0, len = skinList.length; i < len; i++) { - var skinObject = skinList[i]; - outputArmatureData.addSkinData(Data3Parser.parseSkinData(skinObject)); - } - if (Data3Parser.tempDragonBonesData.isGlobal) { - dragonBones.DBDataUtil.transformArmatureData(outputArmatureData); - } - outputArmatureData.sortBoneDataList(); - var animationList = armatureDataToParse[dragonBones.ConstValues.ANIMATION]; - for (i = 0, len = animationList.length; i < len; i++) { - var animationObject = animationList[i]; - var animationData = Data3Parser.parseAnimationData(animationObject, frameRate); - dragonBones.DBDataUtil.addHideTimeline(animationData, outputArmatureData); - dragonBones.DBDataUtil.transformAnimationData(animationData, outputArmatureData, Data3Parser.tempDragonBonesData.isGlobal); - outputArmatureData.addAnimationData(animationData); - } - return outputArmatureData; - }; - Data3Parser.parseBoneData = function (boneObject) { - var boneData = new dragonBones.BoneData(); - boneData.name = boneObject[dragonBones.ConstValues.A_NAME]; - boneData.parent = boneObject[dragonBones.ConstValues.A_PARENT]; - boneData.length = Number(boneObject[dragonBones.ConstValues.A_LENGTH]) || 0; - boneData.inheritRotation = Data3Parser.getBoolean(boneObject, dragonBones.ConstValues.A_INHERIT_ROTATION, true); - boneData.inheritScale = Data3Parser.getBoolean(boneObject, dragonBones.ConstValues.A_INHERIT_SCALE, true); - Data3Parser.parseTransform(boneObject[dragonBones.ConstValues.TRANSFORM], boneData.transform); - if (Data3Parser.tempDragonBonesData.isGlobal) { - boneData.global.copy(boneData.transform); - } - return boneData; - }; - Data3Parser.parseSkinData = function (skinObject) { - var skinData = new dragonBones.SkinData(); - skinData.name = skinObject[dragonBones.ConstValues.A_NAME]; - var slotList = skinObject[dragonBones.ConstValues.SLOT]; - for (var i = 0, len = slotList.length; i < len; i++) { - var slotObject = slotList[i]; - skinData.addSlotData(Data3Parser.parseSkinSlotData(slotObject)); - } - return skinData; - }; - Data3Parser.parseSkinSlotData = function (slotObject) { - var slotData = new dragonBones.SlotData(); - slotData.name = slotObject[dragonBones.ConstValues.A_NAME]; - slotData.parent = slotObject[dragonBones.ConstValues.A_PARENT]; - slotData.zOrder = (slotObject[dragonBones.ConstValues.A_Z_ORDER]); - slotData.zOrder = Data3Parser.getNumber(slotObject, dragonBones.ConstValues.A_Z_ORDER, 0) || 0; - slotData.blendMode = slotObject[dragonBones.ConstValues.A_BLENDMODE]; - var displayList = slotObject[dragonBones.ConstValues.DISPLAY]; - if (displayList) { - for (var i = 0, len = displayList.length; i < len; i++) { - var displayObject = displayList[i]; - slotData.addDisplayData(Data3Parser.parseDisplayData(displayObject)); - } - } - return slotData; - }; - Data3Parser.parseSlotData = function (slotObject) { - var slotData = new dragonBones.SlotData(); - slotData.name = slotObject[dragonBones.ConstValues.A_NAME]; - slotData.parent = slotObject[dragonBones.ConstValues.A_PARENT]; - slotData.zOrder = (slotObject[dragonBones.ConstValues.A_Z_ORDER]); - slotData.zOrder = Data3Parser.getNumber(slotObject, dragonBones.ConstValues.A_Z_ORDER, 0) || 0; - slotData.blendMode = slotObject[dragonBones.ConstValues.A_BLENDMODE]; - slotData.displayIndex = 0; - return slotData; - }; - Data3Parser.parseDisplayData = function (displayObject) { - var displayData = new dragonBones.DisplayData(); - displayData.name = displayObject[dragonBones.ConstValues.A_NAME]; - displayData.type = displayObject[dragonBones.ConstValues.A_TYPE]; - Data3Parser.parseTransform(displayObject[dragonBones.ConstValues.TRANSFORM], displayData.transform, displayData.pivot); - if (Data3Parser.tempDragonBonesData != null) { - Data3Parser.tempDragonBonesData.addDisplayData(displayData); - } - return displayData; - }; - Data3Parser.parseAnimationData = function (animationObject, frameRate) { - var animationData = new dragonBones.AnimationData(); - animationData.name = animationObject[dragonBones.ConstValues.A_NAME]; - animationData.frameRate = frameRate; - animationData.duration = Math.round((Data3Parser.getNumber(animationObject, dragonBones.ConstValues.A_DURATION, 1) || 1) * 1000 / frameRate); - animationData.playTimes = Data3Parser.getNumber(animationObject, dragonBones.ConstValues.A_LOOP, 1); - animationData.playTimes = animationData.playTimes != NaN ? animationData.playTimes : 1; - animationData.fadeTime = Data3Parser.getNumber(animationObject, dragonBones.ConstValues.A_FADE_IN_TIME, 0) || 0; - animationData.scale = Data3Parser.getNumber(animationObject, dragonBones.ConstValues.A_SCALE, 1) || 0; - animationData.tweenEasing = Data3Parser.getNumber(animationObject, dragonBones.ConstValues.A_TWEEN_EASING, NaN); - animationData.autoTween = Data3Parser.getBoolean(animationObject, dragonBones.ConstValues.A_AUTO_TWEEN, true); - var frameObjectList = animationObject[dragonBones.ConstValues.FRAME]; - var i = 0; - var len = 0; - if (frameObjectList) { - for (i = 0, len = frameObjectList.length; i < len; i++) { - var frameObject = frameObjectList[i]; - var frame = Data3Parser.parseTransformFrame(frameObject, null, frameRate); - animationData.addFrame(frame); - } - } - Data3Parser.parseTimeline(animationObject, animationData); - var lastFrameDuration = animationData.duration; - var displayIndexChangeSlotTimelines = []; - var displayIndexChangeTimelines = []; - var timelineObjectList = animationObject[dragonBones.ConstValues.TIMELINE]; - var displayIndexChange; - if (timelineObjectList) { - for (i = 0, len = timelineObjectList.length; i < len; i++) { - var timelineObject = timelineObjectList[i]; - var timeline = Data3Parser.parseTransformTimeline(timelineObject, animationData.duration, frameRate); - timeline = Data3Parser.parseTransformTimeline(timelineObject, animationData.duration, frameRate); - lastFrameDuration = Math.min(lastFrameDuration, timeline.frameList[timeline.frameList.length - 1].duration); - animationData.addTimeline(timeline); - var slotTimeline = Data3Parser.parseSlotTimeline(timelineObject, animationData.duration, frameRate); - animationData.addSlotTimeline(slotTimeline); - if (animationData.autoTween && !displayIndexChange) { - var slotFrame; - for (var j = 0, jlen = slotTimeline.frameList.length; j < jlen; j++) { - slotFrame = slotTimeline.frameList[j]; - if (slotFrame && slotFrame.displayIndex < 0) { - displayIndexChange = true; - break; - } - } - } - } - var animationTween = animationData.tweenEasing; - if (displayIndexChange) { - len = animationData.slotTimelineList.length; - for (i = 0; i < len; i++) { - slotTimeline = animationData.slotTimelineList[i]; - timeline = animationData.timelineList[i]; - var curFrame; - var curSlotFrame; - var nextSlotFrame; - for (j = 0, jlen = slotTimeline.frameList.length; j < jlen; j++) { - curSlotFrame = slotTimeline.frameList[j]; - curFrame = timeline.frameList[j]; - nextSlotFrame = (j == jlen - 1) ? slotTimeline.frameList[0] : slotTimeline.frameList[j + 1]; - if (curSlotFrame.displayIndex < 0 || nextSlotFrame.displayIndex < 0) { - curFrame.tweenEasing = curSlotFrame.tweenEasing = NaN; - } - else if (animationTween == 10) { - curFrame.tweenEasing = curSlotFrame.tweenEasing = 0; - } - else if (!isNaN(animationTween)) { - curFrame.tweenEasing = curSlotFrame.tweenEasing = animationTween; - } - else if (curFrame.tweenEasing == 10) { - curFrame.tweenEasing = 0; - } - } - } - animationData.autoTween = false; - } - } - if (animationData.frameList.length > 0) { - lastFrameDuration = Math.min(lastFrameDuration, animationData.frameList[animationData.frameList.length - 1].duration); - } - animationData.lastFrameDuration = lastFrameDuration; - return animationData; - }; - Data3Parser.parseSlotTimeline = function (timelineObject, duration, frameRate) { - var outputTimeline = new dragonBones.SlotTimeline(); - outputTimeline.name = timelineObject[dragonBones.ConstValues.A_NAME]; - outputTimeline.scale = Data3Parser.getNumber(timelineObject, dragonBones.ConstValues.A_SCALE, 1) || 0; - outputTimeline.offset = Data3Parser.getNumber(timelineObject, dragonBones.ConstValues.A_OFFSET, 0) || 0; - outputTimeline.duration = duration; - var frameList = timelineObject[dragonBones.ConstValues.FRAME]; - for (var i = 0, len = frameList.length; i < len; i++) { - var frameObject = frameList[i]; - var frame = Data3Parser.parseSlotFrame(frameObject, frameRate); - outputTimeline.addFrame(frame); - } - Data3Parser.parseTimeline(timelineObject, outputTimeline); - return outputTimeline; - }; - Data3Parser.parseSlotFrame = function (frameObject, frameRate) { - var outputFrame = new dragonBones.SlotFrame(); - Data3Parser.parseFrame(frameObject, outputFrame, frameRate); - outputFrame.visible = !Data3Parser.getBoolean(frameObject, dragonBones.ConstValues.A_HIDE, false); - outputFrame.tweenEasing = Data3Parser.getNumber(frameObject, dragonBones.ConstValues.A_TWEEN_EASING, 10); - outputFrame.displayIndex = Math.floor(Data3Parser.getNumber(frameObject, dragonBones.ConstValues.A_DISPLAY_INDEX, 0) || 0); - outputFrame.zOrder = Data3Parser.getNumber(frameObject, dragonBones.ConstValues.A_Z_ORDER, Data3Parser.tempDragonBonesData.isGlobal ? NaN : 0); - var colorTransformObject = frameObject[dragonBones.ConstValues.COLOR_TRANSFORM]; - if (colorTransformObject) { - outputFrame.color = new dragonBones.ColorTransform(); - Data3Parser.parseColorTransform(colorTransformObject, outputFrame.color); - } - return outputFrame; - }; - Data3Parser.parseTransformTimeline = function (timelineObject, duration, frameRate) { - var outputTimeline = new dragonBones.TransformTimeline(); - outputTimeline.name = timelineObject[dragonBones.ConstValues.A_NAME]; - outputTimeline.scale = Data3Parser.getNumber(timelineObject, dragonBones.ConstValues.A_SCALE, 1) || 0; - outputTimeline.offset = Data3Parser.getNumber(timelineObject, dragonBones.ConstValues.A_OFFSET, 0) || 0; - outputTimeline.originPivot.x = Data3Parser.getNumber(timelineObject, dragonBones.ConstValues.A_PIVOT_X, 0) || 0; - outputTimeline.originPivot.y = Data3Parser.getNumber(timelineObject, dragonBones.ConstValues.A_PIVOT_Y, 0) || 0; - outputTimeline.duration = duration; - var frameList = timelineObject[dragonBones.ConstValues.FRAME]; - var nextFrameObject; - for (var i = 0, len = frameList.length; i < len; i++) { - var frameObject = frameList[i]; - if (i < len - 1) { - nextFrameObject = frameList[i + 1]; - } - else if (i != 0) { - nextFrameObject = frameList[0]; - } - else { - nextFrameObject = null; - } - var frame = Data3Parser.parseTransformFrame(frameObject, nextFrameObject, frameRate); - outputTimeline.addFrame(frame); - } - Data3Parser.parseTimeline(timelineObject, outputTimeline); - return outputTimeline; - }; - Data3Parser.parseTransformFrame = function (frameObject, nextFrameObject, frameRate) { - var outputFrame = new dragonBones.TransformFrame(); - Data3Parser.parseFrame(frameObject, outputFrame, frameRate); - outputFrame.visible = !Data3Parser.getBoolean(frameObject, dragonBones.ConstValues.A_HIDE, false); - outputFrame.tweenEasing = Data3Parser.getNumber(frameObject, dragonBones.ConstValues.A_TWEEN_EASING, 10); - outputFrame.tweenRotate = Math.floor(Data3Parser.getNumber(frameObject, dragonBones.ConstValues.A_TWEEN_ROTATE, 0) || 0); - outputFrame.tweenScale = Data3Parser.getBoolean(frameObject, dragonBones.ConstValues.A_TWEEN_SCALE, true); - if (nextFrameObject && Math.floor(Data3Parser.getNumber(nextFrameObject, dragonBones.ConstValues.A_DISPLAY_INDEX, 0) || 0) == -1) { - outputFrame.tweenEasing = NaN; - } - Data3Parser.parseTransform(frameObject[dragonBones.ConstValues.TRANSFORM], outputFrame.transform, outputFrame.pivot); - if (Data3Parser.tempDragonBonesData.isGlobal) { - outputFrame.global.copy(outputFrame.transform); - } - outputFrame.scaleOffset.x = Data3Parser.getNumber(frameObject, dragonBones.ConstValues.A_SCALE_X_OFFSET, 0) || 0; - outputFrame.scaleOffset.y = Data3Parser.getNumber(frameObject, dragonBones.ConstValues.A_SCALE_Y_OFFSET, 0) || 0; - return outputFrame; - }; - Data3Parser.parseTimeline = function (timelineObject, outputTimeline) { - var position = 0; - var frame; - var frameList = outputTimeline.frameList; - for (var i = 0, len = frameList.length; i < len; i++) { - frame = frameList[i]; - frame.position = position; - position += frame.duration; - } - if (frame) { - frame.duration = outputTimeline.duration - frame.position; - } - }; - Data3Parser.parseFrame = function (frameObject, outputFrame, frameRate) { - if (frameRate === void 0) { frameRate = 0; } - outputFrame.duration = Math.round(((frameObject[dragonBones.ConstValues.A_DURATION]) || 1) * 1000 / frameRate); - outputFrame.action = frameObject[dragonBones.ConstValues.A_ACTION]; - outputFrame.event = frameObject[dragonBones.ConstValues.A_EVENT]; - outputFrame.sound = frameObject[dragonBones.ConstValues.A_SOUND]; - }; - Data3Parser.parseTransform = function (transformObject, transform, pivot) { - if (pivot === void 0) { pivot = null; } - if (transformObject) { - if (transform) { - transform.x = Data3Parser.getNumber(transformObject, dragonBones.ConstValues.A_X, 0) || 0; - transform.y = Data3Parser.getNumber(transformObject, dragonBones.ConstValues.A_Y, 0) || 0; - transform.skewX = Data3Parser.getNumber(transformObject, dragonBones.ConstValues.A_SKEW_X, 0) * dragonBones.ConstValues.ANGLE_TO_RADIAN || 0; - transform.skewY = Data3Parser.getNumber(transformObject, dragonBones.ConstValues.A_SKEW_Y, 0) * dragonBones.ConstValues.ANGLE_TO_RADIAN || 0; - transform.scaleX = Data3Parser.getNumber(transformObject, dragonBones.ConstValues.A_SCALE_X, 1) || 0; - transform.scaleY = Data3Parser.getNumber(transformObject, dragonBones.ConstValues.A_SCALE_Y, 1) || 0; - } - if (pivot) { - pivot.x = Data3Parser.getNumber(transformObject, dragonBones.ConstValues.A_PIVOT_X, 0) || 0; - pivot.y = Data3Parser.getNumber(transformObject, dragonBones.ConstValues.A_PIVOT_Y, 0) || 0; - } - } - }; - Data3Parser.parseColorTransform = function (colorTransformObject, colorTransform) { - if (colorTransformObject) { - if (colorTransform) { - colorTransform.alphaOffset = Data3Parser.getNumber(colorTransformObject, dragonBones.ConstValues.A_ALPHA_OFFSET, 0); - colorTransform.redOffset = Data3Parser.getNumber(colorTransformObject, dragonBones.ConstValues.A_RED_OFFSET, 0); - colorTransform.greenOffset = Data3Parser.getNumber(colorTransformObject, dragonBones.ConstValues.A_GREEN_OFFSET, 0); - colorTransform.blueOffset = Data3Parser.getNumber(colorTransformObject, dragonBones.ConstValues.A_BLUE_OFFSET, 0); - colorTransform.alphaMultiplier = Data3Parser.getNumber(colorTransformObject, dragonBones.ConstValues.A_ALPHA_MULTIPLIER, 100) * 0.01; - colorTransform.redMultiplier = Data3Parser.getNumber(colorTransformObject, dragonBones.ConstValues.A_RED_MULTIPLIER, 100) * 0.01; - colorTransform.greenMultiplier = Data3Parser.getNumber(colorTransformObject, dragonBones.ConstValues.A_GREEN_MULTIPLIER, 100) * 0.01; - colorTransform.blueMultiplier = Data3Parser.getNumber(colorTransformObject, dragonBones.ConstValues.A_BLUE_MULTIPLIER, 100) * 0.01; - } - } - }; - Data3Parser.getBoolean = function (data, key, defaultValue) { - if (data && key in data) { - switch (String(data[key])) { - case "0": - case "NaN": - case "": - case "false": - case "null": - case "undefined": - return false; - case "1": - case "true": - default: - return true; - } - } - return defaultValue; - }; - Data3Parser.getNumber = function (data, key, defaultValue) { - if (data && key in data) { - switch (String(data[key])) { - case "NaN": - case "": - case "false": - case "null": - case "undefined": - return NaN; - default: - return Number(data[key]); - } - } - return defaultValue; - }; - return Data3Parser; - })(); - dragonBones.Data3Parser = Data3Parser; - egret.registerClass(Data3Parser,'dragonBones.Data3Parser'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var DataParser = (function () { - function DataParser() { - } - var d = __define,c=DataParser,p=c.prototype; - DataParser.parseTextureAtlasData = function (rawData, scale) { - if (scale === void 0) { scale = 1; } - var textureAtlasData = {}; - var subTextureFrame; - var subTextureList = rawData[dragonBones.ConstValues.SUB_TEXTURE]; - for (var i = 0, len = subTextureList.length; i < len; i++) { - var subTextureObject = subTextureList[i]; - var subTextureName = subTextureObject[dragonBones.ConstValues.A_NAME]; - var subTextureRegion = new dragonBones.Rectangle(); - subTextureRegion.x = DataParser.getNumber(subTextureObject, dragonBones.ConstValues.A_X, 0) / scale; - subTextureRegion.y = DataParser.getNumber(subTextureObject, dragonBones.ConstValues.A_Y, 0) / scale; - subTextureRegion.width = DataParser.getNumber(subTextureObject, dragonBones.ConstValues.A_WIDTH, 0) / scale; - subTextureRegion.height = DataParser.getNumber(subTextureObject, dragonBones.ConstValues.A_HEIGHT, 0) / scale; - var rotated = subTextureObject[dragonBones.ConstValues.A_ROTATED] == "true"; - var frameWidth = DataParser.getNumber(subTextureObject, dragonBones.ConstValues.A_FRAME_WIDTH, 0) / scale; - var frameHeight = DataParser.getNumber(subTextureObject, dragonBones.ConstValues.A_FRAME_HEIGHT, 0) / scale; - if (frameWidth > 0 && frameHeight > 0) { - subTextureFrame = new dragonBones.Rectangle(); - subTextureFrame.x = DataParser.getNumber(subTextureObject, dragonBones.ConstValues.A_FRAME_X, 0) / scale; - subTextureFrame.y = DataParser.getNumber(subTextureObject, dragonBones.ConstValues.A_FRAME_Y, 0) / scale; - subTextureFrame.width = frameWidth; - subTextureFrame.height = frameHeight; - } - else { - subTextureFrame = null; - } - textureAtlasData[subTextureName] = new dragonBones.TextureData(subTextureRegion, subTextureFrame, rotated); - } - return textureAtlasData; - }; - DataParser.parseDragonBonesData = function (rawDataToParse) { - if (!rawDataToParse) { - throw new Error(); - } - var version = rawDataToParse[dragonBones.ConstValues.A_VERSION]; - version = version.toString(); - if (version.toString() == dragonBones.DragonBones.PARENT_COORDINATE_DATA_VERSION || - version.toString() == "2.3") { - return dragonBones.Data3Parser.parseDragonBonesData(rawDataToParse); - } - var frameRate = DataParser.getNumber(rawDataToParse, dragonBones.ConstValues.A_FRAME_RATE, 0) || 0; - var outputDragonBonesData = new dragonBones.DragonBonesData(); - outputDragonBonesData.name = rawDataToParse[dragonBones.ConstValues.A_NAME]; - outputDragonBonesData.isGlobal = rawDataToParse[dragonBones.ConstValues.A_IS_GLOBAL] == "0" ? false : true; - DataParser.tempDragonBonesData = outputDragonBonesData; - var armatureList = rawDataToParse[dragonBones.ConstValues.ARMATURE]; - for (var i = 0, len = armatureList.length; i < len; i++) { - var armatureObject = armatureList[i]; - outputDragonBonesData.addArmatureData(DataParser.parseArmatureData(armatureObject, frameRate)); - } - DataParser.tempDragonBonesData = null; - return outputDragonBonesData; - }; - DataParser.parseArmatureData = function (armatureDataToParse, frameRate) { - var outputArmatureData = new dragonBones.ArmatureData(); - outputArmatureData.name = armatureDataToParse[dragonBones.ConstValues.A_NAME]; - var boneList = armatureDataToParse[dragonBones.ConstValues.BONE]; - var i; - var len; - for (i = 0, len = boneList.length; i < len; i++) { - var boneObject = boneList[i]; - outputArmatureData.addBoneData(DataParser.parseBoneData(boneObject)); - } - var slotList = armatureDataToParse[dragonBones.ConstValues.SLOT]; - for (i = 0, len = slotList.length; i < len; i++) { - var slotObject = slotList[i]; - outputArmatureData.addSlotData(DataParser.parseSlotData(slotObject)); - } - var skinList = armatureDataToParse[dragonBones.ConstValues.SKIN]; - for (i = 0, len = skinList.length; i < len; i++) { - var skinObject = skinList[i]; - outputArmatureData.addSkinData(DataParser.parseSkinData(skinObject)); - } - if (DataParser.tempDragonBonesData.isGlobal) { - dragonBones.DBDataUtil.transformArmatureData(outputArmatureData); - } - outputArmatureData.sortBoneDataList(); - var animationList = armatureDataToParse[dragonBones.ConstValues.ANIMATION]; - for (i = 0, len = animationList.length; i < len; i++) { - var animationObject = animationList[i]; - var animationData = DataParser.parseAnimationData(animationObject, frameRate); - dragonBones.DBDataUtil.addHideTimeline(animationData, outputArmatureData, true); - dragonBones.DBDataUtil.transformAnimationData(animationData, outputArmatureData, DataParser.tempDragonBonesData.isGlobal); - outputArmatureData.addAnimationData(animationData); - } - return outputArmatureData; - }; - DataParser.parseBoneData = function (boneObject) { - var boneData = new dragonBones.BoneData(); - boneData.name = boneObject[dragonBones.ConstValues.A_NAME]; - boneData.parent = boneObject[dragonBones.ConstValues.A_PARENT]; - boneData.length = Number(boneObject[dragonBones.ConstValues.A_LENGTH]) || 0; - boneData.inheritRotation = DataParser.getBoolean(boneObject, dragonBones.ConstValues.A_INHERIT_ROTATION, true); - boneData.inheritScale = DataParser.getBoolean(boneObject, dragonBones.ConstValues.A_INHERIT_SCALE, true); - DataParser.parseTransform(boneObject[dragonBones.ConstValues.TRANSFORM], boneData.transform); - if (DataParser.tempDragonBonesData.isGlobal) { - boneData.global.copy(boneData.transform); - } - return boneData; - }; - DataParser.parseSkinData = function (skinObject) { - var skinData = new dragonBones.SkinData(); - skinData.name = skinObject[dragonBones.ConstValues.A_NAME]; - var slotList = skinObject[dragonBones.ConstValues.SLOT]; - for (var i = 0, len = slotList.length; i < len; i++) { - var slotObject = slotList[i]; - skinData.addSlotData(DataParser.parseSlotDisplayData(slotObject)); - } - return skinData; - }; - DataParser.parseSlotData = function (slotObject) { - var slotData = new dragonBones.SlotData(); - slotData.name = slotObject[dragonBones.ConstValues.A_NAME]; - slotData.parent = slotObject[dragonBones.ConstValues.A_PARENT]; - slotData.zOrder = DataParser.getNumber(slotObject, dragonBones.ConstValues.A_Z_ORDER, 0) || 0; - slotData.displayIndex = DataParser.getNumber(slotObject, dragonBones.ConstValues.A_DISPLAY_INDEX, 0); - slotData.blendMode = slotObject[dragonBones.ConstValues.A_BLENDMODE]; - return slotData; - }; - DataParser.parseSlotDisplayData = function (slotObject) { - var slotData = new dragonBones.SlotData(); - slotData.name = slotObject[dragonBones.ConstValues.A_NAME]; - slotData.parent = slotObject[dragonBones.ConstValues.A_PARENT]; - slotData.zOrder = DataParser.getNumber(slotObject, dragonBones.ConstValues.A_Z_ORDER, 0) || 0; - var displayList = slotObject[dragonBones.ConstValues.DISPLAY]; - if (displayList) { - for (var i = 0, len = displayList.length; i < len; i++) { - var displayObject = displayList[i]; - slotData.addDisplayData(DataParser.parseDisplayData(displayObject)); - } - } - return slotData; - }; - DataParser.parseDisplayData = function (displayObject) { - var displayData = new dragonBones.DisplayData(); - displayData.name = displayObject[dragonBones.ConstValues.A_NAME]; - displayData.type = displayObject[dragonBones.ConstValues.A_TYPE]; - DataParser.parseTransform(displayObject[dragonBones.ConstValues.TRANSFORM], displayData.transform, displayData.pivot); - displayData.pivot.x = NaN; - displayData.pivot.y = NaN; - if (DataParser.tempDragonBonesData != null) { - DataParser.tempDragonBonesData.addDisplayData(displayData); - } - return displayData; - }; - DataParser.parseAnimationData = function (animationObject, frameRate) { - var animationData = new dragonBones.AnimationData(); - animationData.name = animationObject[dragonBones.ConstValues.A_NAME]; - animationData.frameRate = frameRate; - animationData.duration = Math.ceil((DataParser.getNumber(animationObject, dragonBones.ConstValues.A_DURATION, 1) || 1) * 1000 / frameRate); - animationData.playTimes = DataParser.getNumber(animationObject, dragonBones.ConstValues.A_PLAY_TIMES, 1); - animationData.playTimes = animationData.playTimes != NaN ? animationData.playTimes : 1; - animationData.fadeTime = DataParser.getNumber(animationObject, dragonBones.ConstValues.A_FADE_IN_TIME, 0) || 0; - animationData.scale = DataParser.getNumber(animationObject, dragonBones.ConstValues.A_SCALE, 1) || 0; - animationData.tweenEasing = DataParser.getNumber(animationObject, dragonBones.ConstValues.A_TWEEN_EASING, NaN); - animationData.autoTween = DataParser.getBoolean(animationObject, dragonBones.ConstValues.A_AUTO_TWEEN, true); - var frameObjectList = animationObject[dragonBones.ConstValues.FRAME]; - var i = 0; - var len = 0; - if (frameObjectList) { - for (i = 0, len = frameObjectList.length; i < len; i++) { - var frameObject = frameObjectList[i]; - var frame = DataParser.parseTransformFrame(frameObject, frameRate); - animationData.addFrame(frame); - } - } - DataParser.parseTimeline(animationObject, animationData); - var lastFrameDuration = animationData.duration; - var timelineObjectList = animationObject[dragonBones.ConstValues.BONE]; - if (timelineObjectList) { - for (i = 0, len = timelineObjectList.length; i < len; i++) { - var timelineObject = timelineObjectList[i]; - if (timelineObject) { - var timeline = DataParser.parseTransformTimeline(timelineObject, animationData.duration, frameRate); - if (timeline.frameList.length > 0) { - lastFrameDuration = Math.min(lastFrameDuration, timeline.frameList[timeline.frameList.length - 1].duration); - } - animationData.addTimeline(timeline); - } - } - } - var slotTimelineObjectList = animationObject[dragonBones.ConstValues.SLOT]; - if (slotTimelineObjectList) { - for (i = 0, len = slotTimelineObjectList.length; i < len; i++) { - var slotTimelineObject = slotTimelineObjectList[i]; - if (slotTimelineObject) { - var slotTimeline = DataParser.parseSlotTimeline(slotTimelineObject, animationData.duration, frameRate); - if (slotTimeline.frameList.length > 0) { - lastFrameDuration = Math.min(lastFrameDuration, slotTimeline.frameList[slotTimeline.frameList.length - 1].duration); - animationData.addSlotTimeline(slotTimeline); - } - } - } - } - if (animationData.frameList.length > 0) { - lastFrameDuration = Math.min(lastFrameDuration, animationData.frameList[animationData.frameList.length - 1].duration); - } - animationData.lastFrameDuration = lastFrameDuration; - return animationData; - }; - DataParser.parseTransformTimeline = function (timelineObject, duration, frameRate) { - var outputTimeline = new dragonBones.TransformTimeline(); - outputTimeline.name = timelineObject[dragonBones.ConstValues.A_NAME]; - outputTimeline.scale = DataParser.getNumber(timelineObject, dragonBones.ConstValues.A_SCALE, 1) || 0; - outputTimeline.offset = DataParser.getNumber(timelineObject, dragonBones.ConstValues.A_OFFSET, 0) || 0; - outputTimeline.originPivot.x = DataParser.getNumber(timelineObject, dragonBones.ConstValues.A_PIVOT_X, 0) || 0; - outputTimeline.originPivot.y = DataParser.getNumber(timelineObject, dragonBones.ConstValues.A_PIVOT_Y, 0) || 0; - outputTimeline.duration = duration; - var frameList = timelineObject[dragonBones.ConstValues.FRAME]; - for (var i = 0, len = frameList.length; i < len; i++) { - var frameObject = frameList[i]; - var frame = DataParser.parseTransformFrame(frameObject, frameRate); - outputTimeline.addFrame(frame); - } - DataParser.parseTimeline(timelineObject, outputTimeline); - return outputTimeline; - }; - DataParser.parseSlotTimeline = function (timelineObject, duration, frameRate) { - var outputTimeline = new dragonBones.SlotTimeline(); - outputTimeline.name = timelineObject[dragonBones.ConstValues.A_NAME]; - outputTimeline.scale = DataParser.getNumber(timelineObject, dragonBones.ConstValues.A_SCALE, 1) || 0; - outputTimeline.offset = DataParser.getNumber(timelineObject, dragonBones.ConstValues.A_OFFSET, 0) || 0; - outputTimeline.duration = duration; - var frameList = timelineObject[dragonBones.ConstValues.FRAME]; - for (var i = 0, len = frameList.length; i < len; i++) { - var frameObject = frameList[i]; - var frame = DataParser.parseSlotFrame(frameObject, frameRate); - outputTimeline.addFrame(frame); - } - DataParser.parseTimeline(timelineObject, outputTimeline); - return outputTimeline; - }; - DataParser.parseTransformFrame = function (frameObject, frameRate) { - var outputFrame = new dragonBones.TransformFrame(); - DataParser.parseFrame(frameObject, outputFrame, frameRate); - outputFrame.visible = !DataParser.getBoolean(frameObject, dragonBones.ConstValues.A_HIDE, false); - outputFrame.tweenEasing = DataParser.getNumber(frameObject, dragonBones.ConstValues.A_TWEEN_EASING, 10); - outputFrame.tweenRotate = Math.floor(DataParser.getNumber(frameObject, dragonBones.ConstValues.A_TWEEN_ROTATE, 0) || 0); - outputFrame.tweenScale = DataParser.getBoolean(frameObject, dragonBones.ConstValues.A_TWEEN_SCALE, true); - outputFrame.displayIndex = Math.floor(DataParser.getNumber(frameObject, dragonBones.ConstValues.A_DISPLAY_INDEX, 0) || 0); - DataParser.parseTransform(frameObject[dragonBones.ConstValues.TRANSFORM], outputFrame.transform, outputFrame.pivot); - if (DataParser.tempDragonBonesData.isGlobal) { - outputFrame.global.copy(outputFrame.transform); - } - outputFrame.scaleOffset.x = DataParser.getNumber(frameObject, dragonBones.ConstValues.A_SCALE_X_OFFSET, 0) || 0; - outputFrame.scaleOffset.y = DataParser.getNumber(frameObject, dragonBones.ConstValues.A_SCALE_Y_OFFSET, 0) || 0; - return outputFrame; - }; - DataParser.parseSlotFrame = function (frameObject, frameRate) { - var outputFrame = new dragonBones.SlotFrame(); - DataParser.parseFrame(frameObject, outputFrame, frameRate); - outputFrame.visible = !DataParser.getBoolean(frameObject, dragonBones.ConstValues.A_HIDE, false); - outputFrame.tweenEasing = DataParser.getNumber(frameObject, dragonBones.ConstValues.A_TWEEN_EASING, 10); - outputFrame.displayIndex = Math.floor(DataParser.getNumber(frameObject, dragonBones.ConstValues.A_DISPLAY_INDEX, 0) || 0); - outputFrame.zOrder = DataParser.getNumber(frameObject, dragonBones.ConstValues.A_Z_ORDER, DataParser.tempDragonBonesData.isGlobal ? NaN : 0); - var colorTransformObject = frameObject[dragonBones.ConstValues.COLOR]; - if (colorTransformObject) { - outputFrame.color = new dragonBones.ColorTransform(); - DataParser.parseColorTransform(colorTransformObject, outputFrame.color); - } - return outputFrame; - }; - DataParser.parseTimeline = function (timelineObject, outputTimeline) { - var position = 0; - var frame; - var frameList = outputTimeline.frameList; - for (var i = 0, len = frameList.length; i < len; i++) { - frame = frameList[i]; - frame.position = position; - position += frame.duration; - } - if (frame) { - frame.duration = outputTimeline.duration - frame.position; - } - }; - DataParser.parseFrame = function (frameObject, outputFrame, frameRate) { - if (frameRate === void 0) { frameRate = 0; } - outputFrame.duration = Math.round(((frameObject[dragonBones.ConstValues.A_DURATION]) || 1) * 1000 / frameRate); - outputFrame.action = frameObject[dragonBones.ConstValues.A_ACTION]; - outputFrame.event = frameObject[dragonBones.ConstValues.A_EVENT]; - outputFrame.sound = frameObject[dragonBones.ConstValues.A_SOUND]; - var curve = frameObject[dragonBones.ConstValues.A_CURVE]; - if (curve != null && curve.length == 4) { - outputFrame.curve = new dragonBones.CurveData(); - outputFrame.curve.pointList = [new dragonBones.Point(curve[0], curve[1]), - new dragonBones.Point(curve[2], curve[3])]; - } - }; - DataParser.parseTransform = function (transformObject, transform, pivot) { - if (pivot === void 0) { pivot = null; } - if (transformObject) { - if (transform) { - transform.x = DataParser.getNumber(transformObject, dragonBones.ConstValues.A_X, 0) || 0; - transform.y = DataParser.getNumber(transformObject, dragonBones.ConstValues.A_Y, 0) || 0; - transform.skewX = DataParser.getNumber(transformObject, dragonBones.ConstValues.A_SKEW_X, 0) * dragonBones.ConstValues.ANGLE_TO_RADIAN || 0; - transform.skewY = DataParser.getNumber(transformObject, dragonBones.ConstValues.A_SKEW_Y, 0) * dragonBones.ConstValues.ANGLE_TO_RADIAN || 0; - transform.scaleX = DataParser.getNumber(transformObject, dragonBones.ConstValues.A_SCALE_X, 1) || 0; - transform.scaleY = DataParser.getNumber(transformObject, dragonBones.ConstValues.A_SCALE_Y, 1) || 0; - } - if (pivot) { - pivot.x = DataParser.getNumber(transformObject, dragonBones.ConstValues.A_PIVOT_X, 0) || 0; - pivot.y = DataParser.getNumber(transformObject, dragonBones.ConstValues.A_PIVOT_Y, 0) || 0; - } - } - }; - DataParser.parseColorTransform = function (colorTransformObject, colorTransform) { - if (colorTransform) { - colorTransform.alphaOffset = DataParser.getNumber(colorTransformObject, dragonBones.ConstValues.A_ALPHA_OFFSET, 0); - colorTransform.redOffset = DataParser.getNumber(colorTransformObject, dragonBones.ConstValues.A_RED_OFFSET, 0); - colorTransform.greenOffset = DataParser.getNumber(colorTransformObject, dragonBones.ConstValues.A_GREEN_OFFSET, 0); - colorTransform.blueOffset = DataParser.getNumber(colorTransformObject, dragonBones.ConstValues.A_BLUE_OFFSET, 0); - colorTransform.alphaMultiplier = DataParser.getNumber(colorTransformObject, dragonBones.ConstValues.A_ALPHA_MULTIPLIER, 100) * 0.01; - colorTransform.redMultiplier = DataParser.getNumber(colorTransformObject, dragonBones.ConstValues.A_RED_MULTIPLIER, 100) * 0.01; - colorTransform.greenMultiplier = DataParser.getNumber(colorTransformObject, dragonBones.ConstValues.A_GREEN_MULTIPLIER, 100) * 0.01; - colorTransform.blueMultiplier = DataParser.getNumber(colorTransformObject, dragonBones.ConstValues.A_BLUE_MULTIPLIER, 100) * 0.01; - } - }; - DataParser.getBoolean = function (data, key, defaultValue) { - if (data && key in data) { - switch (String(data[key])) { - case "0": - case "NaN": - case "": - case "false": - case "null": - case "undefined": - return false; - case "1": - case "true": - default: - return true; - } - } - return defaultValue; - }; - DataParser.getNumber = function (data, key, defaultValue) { - if (data && key in data) { - switch (String(data[key])) { - case "NaN": - case "": - case "false": - case "null": - case "undefined": - return NaN; - default: - return Number(data[key]); - } - } - return defaultValue; - }; - return DataParser; - })(); - dragonBones.DataParser = DataParser; - egret.registerClass(DataParser,'dragonBones.DataParser'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var Timeline = (function () { - function Timeline() { - this.duration = 0; - this._frameList = []; - this.duration = 0; - this.scale = 1; - } - var d = __define,c=Timeline,p=c.prototype; - p.dispose = function () { - var i = this._frameList.length; - while (i--) { - this._frameList[i].dispose(); - } - this._frameList = null; - }; - p.addFrame = function (frame) { - if (!frame) { - throw new Error(); - } - if (this._frameList.indexOf(frame) < 0) { - this._frameList[this._frameList.length] = frame; - } - else { - throw new Error(); - } - }; - d(p, "frameList" - ,function () { - return this._frameList; - } - ); - return Timeline; - })(); - dragonBones.Timeline = Timeline; - egret.registerClass(Timeline,'dragonBones.Timeline'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var AnimationData = (function (_super) { - __extends(AnimationData, _super); - function AnimationData() { - _super.call(this); - this.frameRate = 0; - this.playTimes = 0; - this.lastFrameDuration = 0; - this.fadeTime = 0; - this.playTimes = 0; - this.autoTween = true; - this.tweenEasing = NaN; - this.hideTimelineNameMap = []; - this.hideSlotTimelineNameMap = []; - this._timelineList = []; - this._slotTimelineList = []; - } - var d = __define,c=AnimationData,p=c.prototype; - d(p, "timelineList" - ,function () { - return this._timelineList; - } - ); - d(p, "slotTimelineList" - ,function () { - return this._slotTimelineList; - } - ); - p.dispose = function () { - _super.prototype.dispose.call(this); - this.hideTimelineNameMap = null; - var i = 0; - var len = 0; - for (i = 0, len = this._timelineList.length; i < len; i++) { - var timeline = this._timelineList[i]; - timeline.dispose(); - } - this._timelineList = null; - for (i = 0, len = this._slotTimelineList.length; i < len; i++) { - var slotTimeline = this._slotTimelineList[i]; - slotTimeline.dispose(); - } - this._slotTimelineList = null; - }; - p.getTimeline = function (timelineName) { - var i = this._timelineList.length; - while (i--) { - if (this._timelineList[i].name == timelineName) { - return this._timelineList[i]; - } - } - return null; - }; - p.addTimeline = function (timeline) { - if (!timeline) { - throw new Error(); - } - if (this._timelineList.indexOf(timeline) < 0) { - this._timelineList[this._timelineList.length] = timeline; - } - }; - p.getSlotTimeline = function (timelineName) { - var i = this._slotTimelineList.length; - while (i--) { - if (this._slotTimelineList[i].name == timelineName) { - return this._slotTimelineList[i]; - } - } - return null; - }; - p.addSlotTimeline = function (timeline) { - if (!timeline) { - throw new Error(); - } - if (this._slotTimelineList.indexOf(timeline) < 0) { - this._slotTimelineList[this._slotTimelineList.length] = timeline; - } - }; - return AnimationData; - })(dragonBones.Timeline); - dragonBones.AnimationData = AnimationData; - egret.registerClass(AnimationData,'dragonBones.AnimationData'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var ArmatureData = (function () { - function ArmatureData() { - this._boneDataList = []; - this._skinDataList = []; - this._slotDataList = []; - this._animationDataList = []; - } - var d = __define,c=ArmatureData,p=c.prototype; - ArmatureData.sortBoneDataHelpArray = function (object1, object2) { - return object1[0] > object2[0] ? 1 : -1; - }; - ArmatureData.sortBoneDataHelpArrayDescending = function (object1, object2) { - return object1[0] > object2[0] ? -1 : 1; - }; - p.setSkinData = function (skinName) { - var i = 0; - var len = this._slotDataList.length; - for (i = 0; i < len; i++) { - this._slotDataList[i].dispose(); - } - var skinData; - if (!skinName && this._skinDataList.length > 0) { - skinData = this._skinDataList[0]; - } - else { - i = 0, - len = this._skinDataList.length; - for (; i < len; i++) { - if (this._skinDataList[i].name == skinName) { - skinData = this._skinDataList[i]; - break; - } - } - } - if (skinData) { - var slotData; - i = 0, len = skinData.slotDataList.length; - for (i = 0; i < len; i++) { - slotData = this.getSlotData(skinData.slotDataList[i].name); - if (slotData) { - var j = 0; - var jLen = skinData.slotDataList[i].displayDataList.length; - for (j = 0; j < jLen; j++) { - slotData.addDisplayData(skinData.slotDataList[i].displayDataList[j]); - } - } - } - } - }; - p.dispose = function () { - var i = this._boneDataList.length; - while (i--) { - this._boneDataList[i].dispose(); - } - i = this._skinDataList.length; - while (i--) { - this._skinDataList[i].dispose(); - } - i = this._slotDataList.length; - while (i--) { - this._slotDataList[i].dispose(); - } - i = this._animationDataList.length; - while (i--) { - this._animationDataList[i].dispose(); - } - this._boneDataList = null; - this._slotDataList = null; - this._skinDataList = null; - this._animationDataList = null; - }; - p.getBoneData = function (boneName) { - var i = this._boneDataList.length; - while (i--) { - if (this._boneDataList[i].name == boneName) { - return this._boneDataList[i]; - } - } - return null; - }; - p.getSlotData = function (slotName) { - var i = this._slotDataList.length; - while (i--) { - if (this._slotDataList[i].name == slotName) { - return this._slotDataList[i]; - } - } - return null; - }; - p.getSkinData = function (skinName) { - if (!skinName && this._skinDataList.length > 0) { - return this._skinDataList[0]; - } - var i = this._skinDataList.length; - while (i--) { - if (this._skinDataList[i].name == skinName) { - return this._skinDataList[i]; - } - } - return null; - }; - p.getAnimationData = function (animationName) { - var i = this._animationDataList.length; - while (i--) { - if (this._animationDataList[i].name == animationName) { - return this._animationDataList[i]; - } - } - return null; - }; - p.addBoneData = function (boneData) { - if (!boneData) { - throw new Error(); - } - if (this._boneDataList.indexOf(boneData) < 0) { - this._boneDataList[this._boneDataList.length] = boneData; - } - else { - throw new Error(); - } - }; - p.addSlotData = function (slotData) { - if (!slotData) { - throw new Error(); - } - if (this._slotDataList.indexOf(slotData) < 0) { - this._slotDataList[this._slotDataList.length] = slotData; - } - else { - throw new Error(); - } - }; - p.addSkinData = function (skinData) { - if (!skinData) { - throw new Error(); - } - if (this._skinDataList.indexOf(skinData) < 0) { - this._skinDataList[this._skinDataList.length] = skinData; - } - else { - throw new Error(); - } - }; - p.addAnimationData = function (animationData) { - if (!animationData) { - throw new Error(); - } - if (this._animationDataList.indexOf(animationData) < 0) { - this._animationDataList[this._animationDataList.length] = animationData; - } - }; - p.sortBoneDataList = function () { - var i = this._boneDataList.length; - if (i == 0) { - return; - } - var helpArray = []; - while (i--) { - var boneData = this._boneDataList[i]; - var level = 0; - var parentData = boneData; - while (parentData) { - level++; - parentData = this.getBoneData(parentData.parent); - } - helpArray[i] = [level, boneData]; - } - helpArray.sort(ArmatureData.sortBoneDataHelpArray); - i = helpArray.length; - while (i--) { - this._boneDataList[i] = helpArray[i][1]; - } - }; - d(p, "boneDataList" - ,function () { - return this._boneDataList; - } - ); - d(p, "slotDataList" - ,function () { - return this._slotDataList; - } - ); - d(p, "skinDataList" - ,function () { - return this._skinDataList; - } - ); - d(p, "animationDataList" - ,function () { - return this._animationDataList; - } - ); - return ArmatureData; - })(); - dragonBones.ArmatureData = ArmatureData; - egret.registerClass(ArmatureData,'dragonBones.ArmatureData'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var BoneData = (function () { - function BoneData() { - this.length = 0; - this.global = new dragonBones.DBTransform(); - this.transform = new dragonBones.DBTransform(); - this.inheritRotation = true; - this.inheritScale = false; - } - var d = __define,c=BoneData,p=c.prototype; - p.dispose = function () { - this.global = null; - this.transform = null; - }; - return BoneData; - })(); - dragonBones.BoneData = BoneData; - egret.registerClass(BoneData,'dragonBones.BoneData'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var ColorTransform = (function () { - function ColorTransform() { - this.alphaMultiplier = 1; - this.alphaOffset = 0; - this.blueMultiplier = 1; - this.blueOffset = 0; - this.greenMultiplier = 1; - this.greenOffset = 0; - this.redMultiplier = 1; - this.redOffset = 0; - } - var d = __define,c=ColorTransform,p=c.prototype; - return ColorTransform; - })(); - dragonBones.ColorTransform = ColorTransform; - egret.registerClass(ColorTransform,'dragonBones.ColorTransform'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var CurveData = (function () { - function CurveData() { - this._dataChanged = false; - this._pointList = []; - this.sampling = new Array(CurveData.SamplingTimes); - for (var i = 0; i < CurveData.SamplingTimes - 1; i++) { - this.sampling[i] = new dragonBones.Point(); - } - } - var d = __define,c=CurveData,p=c.prototype; - p.getValueByProgress = function (progress) { - if (this._dataChanged) { - this.refreshSampling(); - } - for (var i = 0; i < CurveData.SamplingTimes - 1; i++) { - var point = this.sampling[i]; - if (point.x >= progress) { - if (i == 0) { - return point.y * progress / point.x; - } - else { - var prevPoint = this.sampling[i - 1]; - return prevPoint.y + (point.y - prevPoint.y) * (progress - prevPoint.x) / (point.x - prevPoint.x); - } - } - } - return point.y + (1 - point.y) * (progress - point.x) / (1 - point.x); - }; - p.refreshSampling = function () { - for (var i = 0; i < CurveData.SamplingTimes - 1; i++) { - this.bezierCurve(CurveData.SamplingStep * (i + 1), this.sampling[i]); - } - this._dataChanged = false; - }; - p.bezierCurve = function (t, outputPoint) { - var l_t = 1 - t; - outputPoint.x = 3 * this.point1.x * t * l_t * l_t + 3 * this.point2.x * t * t * l_t + Math.pow(t, 3); - outputPoint.y = 3 * this.point1.y * t * l_t * l_t + 3 * this.point2.y * t * t * l_t + Math.pow(t, 3); - }; - d(p, "pointList" - ,function () { - return this._pointList; - } - ,function (value) { - this._pointList = value; - this._dataChanged = true; - } - ); - p.isCurve = function () { - return this.point1.x != 0 || this.point1.y != 0 || this.point2.x != 1 || this.point2.y != 1; - }; - d(p, "point1" - ,function () { - return this.pointList[0]; - } - ); - d(p, "point2" - ,function () { - return this.pointList[1]; - } - ); - CurveData.SamplingTimes = 20; - CurveData.SamplingStep = 0.05; - return CurveData; - })(); - dragonBones.CurveData = CurveData; - egret.registerClass(CurveData,'dragonBones.CurveData'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var DisplayData = (function () { - function DisplayData() { - this.transform = new dragonBones.DBTransform(); - this.pivot = new dragonBones.Point(); - } - var d = __define,c=DisplayData,p=c.prototype; - p.dispose = function () { - this.transform = null; - this.pivot = null; - }; - DisplayData.ARMATURE = "armature"; - DisplayData.IMAGE = "image"; - return DisplayData; - })(); - dragonBones.DisplayData = DisplayData; - egret.registerClass(DisplayData,'dragonBones.DisplayData'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var DragonBonesData = (function () { - function DragonBonesData() { - this._armatureDataList = []; - this._displayDataDictionary = {}; - } - var d = __define,c=DragonBonesData,p=c.prototype; - p.dispose = function () { - for (var i = 0, len = this._armatureDataList.length; i < len; i++) { - var armatureData = this._armatureDataList[i]; - armatureData.dispose(); - } - this._armatureDataList = null; - this.removeAllDisplayData(); - this._displayDataDictionary = null; - }; - d(p, "armatureDataList" - ,function () { - return this._armatureDataList; - } - ); - p.getArmatureDataByName = function (armatureName) { - var i = this._armatureDataList.length; - while (i--) { - if (this._armatureDataList[i].name == armatureName) { - return this._armatureDataList[i]; - } - } - return null; - }; - p.addArmatureData = function (armatureData) { - if (!armatureData) { - throw new Error(); - } - if (this._armatureDataList.indexOf(armatureData) < 0) { - this._armatureDataList[this._armatureDataList.length] = armatureData; - } - else { - throw new Error(); - } - }; - p.removeArmatureData = function (armatureData) { - var index = this._armatureDataList.indexOf(armatureData); - if (index >= 0) { - this._armatureDataList.splice(index, 1); - } - }; - p.removeArmatureDataByName = function (armatureName) { - var i = this._armatureDataList.length; - while (i--) { - if (this._armatureDataList[i].name == armatureName) { - this._armatureDataList.splice(i, 1); - } - } - }; - p.getDisplayDataByName = function (name) { - return this._displayDataDictionary[name]; - }; - p.addDisplayData = function (displayData) { - this._displayDataDictionary[displayData.name] = displayData; - }; - p.removeDisplayDataByName = function (name) { - delete this._displayDataDictionary[name]; - }; - p.removeAllDisplayData = function () { - for (var name in this._displayDataDictionary) { - delete this._displayDataDictionary[name]; - } - }; - return DragonBonesData; - })(); - dragonBones.DragonBonesData = DragonBonesData; - egret.registerClass(DragonBonesData,'dragonBones.DragonBonesData'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var Frame = (function () { - function Frame() { - this.position = 0; - this.duration = 0; - this.position = 0; - this.duration = 0; - } - var d = __define,c=Frame,p=c.prototype; - p.dispose = function () { - }; - return Frame; - })(); - dragonBones.Frame = Frame; - egret.registerClass(Frame,'dragonBones.Frame'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var SkinData = (function () { - function SkinData() { - this._slotDataList = []; - } - var d = __define,c=SkinData,p=c.prototype; - p.dispose = function () { - var i = this._slotDataList.length; - while (i--) { - this._slotDataList[i].dispose(); - } - this._slotDataList = null; - }; - p.getSlotData = function (slotName) { - var i = this._slotDataList.length; - while (i--) { - if (this._slotDataList[i].name == slotName) { - return this._slotDataList[i]; - } - } - return null; - }; - p.addSlotData = function (slotData) { - if (!slotData) { - throw new Error(); - } - if (this._slotDataList.indexOf(slotData) < 0) { - this._slotDataList[this._slotDataList.length] = slotData; - } - else { - throw new Error(); - } - }; - d(p, "slotDataList" - ,function () { - return this._slotDataList; - } - ); - return SkinData; - })(); - dragonBones.SkinData = SkinData; - egret.registerClass(SkinData,'dragonBones.SkinData'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var SlotData = (function () { - function SlotData() { - this._displayDataList = []; - this.zOrder = 0; - } - var d = __define,c=SlotData,p=c.prototype; - p.dispose = function () { - this._displayDataList.length = 0; - }; - p.addDisplayData = function (displayData) { - if (!displayData) { - throw new Error(); - } - if (this._displayDataList.indexOf(displayData) < 0) { - this._displayDataList[this._displayDataList.length] = displayData; - } - else { - throw new Error(); - } - }; - p.getDisplayData = function (displayName) { - var i = this._displayDataList.length; - while (i--) { - if (this._displayDataList[i].name == displayName) { - return this._displayDataList[i]; - } - } - return null; - }; - d(p, "displayDataList" - ,function () { - return this._displayDataList; - } - ); - return SlotData; - })(); - dragonBones.SlotData = SlotData; - egret.registerClass(SlotData,'dragonBones.SlotData'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var SlotFrame = (function (_super) { - __extends(SlotFrame, _super); - function SlotFrame() { - _super.call(this); - this.displayIndex = 0; - this.tweenEasing = 10; - this.displayIndex = 0; - this.visible = true; - this.zOrder = NaN; - } - var d = __define,c=SlotFrame,p=c.prototype; - p.dispose = function () { - _super.prototype.dispose.call(this); - this.color = null; - }; - return SlotFrame; - })(dragonBones.Frame); - dragonBones.SlotFrame = SlotFrame; - egret.registerClass(SlotFrame,'dragonBones.SlotFrame'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var SlotTimeline = (function (_super) { - __extends(SlotTimeline, _super); - function SlotTimeline() { - _super.call(this); - this.offset = 0; - } - var d = __define,c=SlotTimeline,p=c.prototype; - p.dispose = function () { - _super.prototype.dispose.call(this); - }; - return SlotTimeline; - })(dragonBones.Timeline); - dragonBones.SlotTimeline = SlotTimeline; - egret.registerClass(SlotTimeline,'dragonBones.SlotTimeline'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var TransformFrame = (function (_super) { - __extends(TransformFrame, _super); - function TransformFrame() { - _super.call(this); - this.tweenRotate = 0; - this.displayIndex = 0; - this.tweenEasing = 10; - this.tweenRotate = 0; - this.tweenScale = true; - this.displayIndex = 0; - this.visible = true; - this.zOrder = NaN; - this.global = new dragonBones.DBTransform(); - this.transform = new dragonBones.DBTransform(); - this.pivot = new dragonBones.Point(); - this.scaleOffset = new dragonBones.Point(); - } - var d = __define,c=TransformFrame,p=c.prototype; - p.dispose = function () { - _super.prototype.dispose.call(this); - this.global = null; - this.transform = null; - this.pivot = null; - this.scaleOffset = null; - this.color = null; - }; - return TransformFrame; - })(dragonBones.Frame); - dragonBones.TransformFrame = TransformFrame; - egret.registerClass(TransformFrame,'dragonBones.TransformFrame'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var TransformTimeline = (function (_super) { - __extends(TransformTimeline, _super); - function TransformTimeline() { - _super.call(this); - this.originTransform = new dragonBones.DBTransform(); - this.originTransform.scaleX = 1; - this.originTransform.scaleY = 1; - this.originPivot = new dragonBones.Point(); - this.offset = 0; - } - var d = __define,c=TransformTimeline,p=c.prototype; - p.dispose = function () { - _super.prototype.dispose.call(this); - this.originTransform = null; - this.originPivot = null; - }; - return TransformTimeline; - })(dragonBones.Timeline); - dragonBones.TransformTimeline = TransformTimeline; - egret.registerClass(TransformTimeline,'dragonBones.TransformTimeline'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var TextureData = (function () { - function TextureData(region, frame, rotated) { - this.region = region; - this.frame = frame; - this.rotated = rotated; - } - var d = __define,c=TextureData,p=c.prototype; - return TextureData; - })(); - dragonBones.TextureData = TextureData; - egret.registerClass(TextureData,'dragonBones.TextureData'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var ColorTransformUtil = (function () { - function ColorTransformUtil() { - } - var d = __define,c=ColorTransformUtil,p=c.prototype; - ColorTransformUtil.cloneColor = function (color) { - var c = new dragonBones.ColorTransform(); - c.redMultiplier = color.redMultiplier; - c.greenMultiplier = color.greenMultiplier; - c.blueMultiplier = color.blueMultiplier; - c.alphaMultiplier = color.alphaMultiplier; - c.redOffset = color.redOffset; - c.greenOffset = color.greenOffset; - c.blueOffset = color.blueOffset; - c.alphaOffset = color.alphaOffset; - return c; - }; - ColorTransformUtil.isEqual = function (color1, color2) { - return color1.alphaOffset == color2.alphaOffset && - color1.redOffset == color2.redOffset && - color1.greenOffset == color2.greenOffset && - color1.blueOffset == color2.blueOffset && - color1.alphaMultiplier == color2.alphaMultiplier && - color1.redMultiplier == color2.redMultiplier && - color1.greenMultiplier == color2.greenMultiplier && - color1.blueMultiplier == color2.blueMultiplier; - }; - ColorTransformUtil.minus = function (color1, color2, outputColor) { - outputColor.alphaOffset = color1.alphaOffset - color2.alphaOffset; - outputColor.redOffset = color1.redOffset - color2.redOffset; - outputColor.greenOffset = color1.greenOffset - color2.greenOffset; - outputColor.blueOffset = color1.blueOffset - color2.blueOffset; - outputColor.alphaMultiplier = color1.alphaMultiplier - color2.alphaMultiplier; - outputColor.redMultiplier = color1.redMultiplier - color2.redMultiplier; - outputColor.greenMultiplier = color1.greenMultiplier - color2.greenMultiplier; - outputColor.blueMultiplier = color1.blueMultiplier - color2.blueMultiplier; - }; - ColorTransformUtil.originalColor = new dragonBones.ColorTransform(); - return ColorTransformUtil; - })(); - dragonBones.ColorTransformUtil = ColorTransformUtil; - egret.registerClass(ColorTransformUtil,'dragonBones.ColorTransformUtil'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var ConstValues = (function () { - function ConstValues() { - } - var d = __define,c=ConstValues,p=c.prototype; - ConstValues.ANGLE_TO_RADIAN = Math.PI / 180; - ConstValues.RADIAN_TO_ANGLE = 180 / Math.PI; - ConstValues.DRAGON_BONES = "dragonBones"; - ConstValues.ARMATURE = "armature"; - ConstValues.SKIN = "skin"; - ConstValues.BONE = "bone"; - ConstValues.SLOT = "slot"; - ConstValues.DISPLAY = "display"; - ConstValues.ANIMATION = "animation"; - ConstValues.TIMELINE = "timeline"; - ConstValues.FRAME = "frame"; - ConstValues.TRANSFORM = "transform"; - ConstValues.COLOR_TRANSFORM = "colorTransform"; - ConstValues.COLOR = "color"; - ConstValues.RECTANGLE = "rectangle"; - ConstValues.ELLIPSE = "ellipse"; - ConstValues.TEXTURE_ATLAS = "TextureAtlas"; - ConstValues.SUB_TEXTURE = "SubTexture"; - ConstValues.A_ROTATED = "rotated"; - ConstValues.A_FRAME_X = "frameX"; - ConstValues.A_FRAME_Y = "frameY"; - ConstValues.A_FRAME_WIDTH = "frameWidth"; - ConstValues.A_FRAME_HEIGHT = "frameHeight"; - ConstValues.A_VERSION = "version"; - ConstValues.A_IMAGE_PATH = "imagePath"; - ConstValues.A_FRAME_RATE = "frameRate"; - ConstValues.A_NAME = "name"; - ConstValues.A_IS_GLOBAL = "isGlobal"; - ConstValues.A_PARENT = "parent"; - ConstValues.A_LENGTH = "length"; - ConstValues.A_TYPE = "type"; - ConstValues.A_FADE_IN_TIME = "fadeInTime"; - ConstValues.A_DURATION = "duration"; - ConstValues.A_SCALE = "scale"; - ConstValues.A_OFFSET = "offset"; - ConstValues.A_LOOP = "loop"; - ConstValues.A_PLAY_TIMES = "playTimes"; - ConstValues.A_EVENT = "event"; - ConstValues.A_EVENT_PARAMETERS = "eventParameters"; - ConstValues.A_SOUND = "sound"; - ConstValues.A_ACTION = "action"; - ConstValues.A_HIDE = "hide"; - ConstValues.A_AUTO_TWEEN = "autoTween"; - ConstValues.A_TWEEN_EASING = "tweenEasing"; - ConstValues.A_TWEEN_ROTATE = "tweenRotate"; - ConstValues.A_TWEEN_SCALE = "tweenScale"; - ConstValues.A_DISPLAY_INDEX = "displayIndex"; - ConstValues.A_Z_ORDER = "z"; - ConstValues.A_BLENDMODE = "blendMode"; - ConstValues.A_WIDTH = "width"; - ConstValues.A_HEIGHT = "height"; - ConstValues.A_INHERIT_SCALE = "inheritScale"; - ConstValues.A_INHERIT_ROTATION = "inheritRotation"; - ConstValues.A_X = "x"; - ConstValues.A_Y = "y"; - ConstValues.A_SKEW_X = "skX"; - ConstValues.A_SKEW_Y = "skY"; - ConstValues.A_SCALE_X = "scX"; - ConstValues.A_SCALE_Y = "scY"; - ConstValues.A_PIVOT_X = "pX"; - ConstValues.A_PIVOT_Y = "pY"; - ConstValues.A_ALPHA_OFFSET = "aO"; - ConstValues.A_RED_OFFSET = "rO"; - ConstValues.A_GREEN_OFFSET = "gO"; - ConstValues.A_BLUE_OFFSET = "bO"; - ConstValues.A_ALPHA_MULTIPLIER = "aM"; - ConstValues.A_RED_MULTIPLIER = "rM"; - ConstValues.A_GREEN_MULTIPLIER = "gM"; - ConstValues.A_BLUE_MULTIPLIER = "bM"; - ConstValues.A_CURVE = "curve"; - ConstValues.A_SCALE_X_OFFSET = "scXOffset"; - ConstValues.A_SCALE_Y_OFFSET = "scYOffset"; - ConstValues.A_SCALE_MODE = "scaleMode"; - ConstValues.A_FIXED_ROTATION = "fixedRotation"; - return ConstValues; - })(); - dragonBones.ConstValues = ConstValues; - egret.registerClass(ConstValues,'dragonBones.ConstValues'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var DBDataUtil = (function () { - function DBDataUtil() { - } - var d = __define,c=DBDataUtil,p=c.prototype; - DBDataUtil.transformArmatureData = function (armatureData) { - var boneDataList = armatureData.boneDataList; - var i = boneDataList.length; - while (i--) { - var boneData = boneDataList[i]; - if (boneData.parent) { - var parentBoneData = armatureData.getBoneData(boneData.parent); - if (parentBoneData) { - boneData.transform.copy(boneData.global); - dragonBones.TransformUtil.globalToLocal(boneData.transform, parentBoneData.global); - } - } - } - }; - DBDataUtil.transformArmatureDataAnimations = function (armatureData) { - var animationDataList = armatureData.animationDataList; - var i = animationDataList.length; - while (i--) { - DBDataUtil.transformAnimationData(animationDataList[i], armatureData, false); - } - }; - DBDataUtil.transformRelativeAnimationData = function (animationData, armatureData) { - }; - DBDataUtil.transformAnimationData = function (animationData, armatureData, isGlobalData) { - if (!isGlobalData) { - DBDataUtil.transformRelativeAnimationData(animationData, armatureData); - return; - } - var skinData = armatureData.getSkinData(null); - var boneDataList = armatureData.boneDataList; - var slotDataList; - if (skinData) { - slotDataList = skinData.slotDataList; - } - for (var i = 0; i < boneDataList.length; i++) { - var boneData = boneDataList[i]; - var timeline = animationData.getTimeline(boneData.name); - var slotTimeline = animationData.getSlotTimeline(boneData.name); - if (!timeline && !slotTimeline) { - continue; - } - var slotData = null; - if (slotDataList) { - for (var j = 0, jLen = slotDataList.length; j < jLen; j++) { - slotData = slotDataList[j]; - if (slotData.parent == boneData.name) { - break; - } - } - } - var frameList = timeline.frameList; - if (slotTimeline) { - var slotFrameList = slotTimeline.frameList; - } - var originTransform = null; - var originPivot = null; - var prevFrame = null; - var frameListLength = frameList.length; - for (var j = 0; j < frameListLength; j++) { - var frame = (frameList[j]); - DBDataUtil.setFrameTransform(animationData, armatureData, boneData, frame); - frame.transform.x -= boneData.transform.x; - frame.transform.y -= boneData.transform.y; - frame.transform.skewX -= boneData.transform.skewX; - frame.transform.skewY -= boneData.transform.skewY; - frame.transform.scaleX /= boneData.transform.scaleX; - frame.transform.scaleY /= boneData.transform.scaleY; - if (prevFrame) { - var dLX = frame.transform.skewX - prevFrame.transform.skewX; - if (prevFrame.tweenRotate) { - if (prevFrame.tweenRotate > 0) { - if (dLX < 0) { - frame.transform.skewX += Math.PI * 2; - frame.transform.skewY += Math.PI * 2; - } - if (prevFrame.tweenRotate > 1) { - frame.transform.skewX += Math.PI * 2 * (prevFrame.tweenRotate - 1); - frame.transform.skewY += Math.PI * 2 * (prevFrame.tweenRotate - 1); - } - } - else { - if (dLX > 0) { - frame.transform.skewX -= Math.PI * 2; - frame.transform.skewY -= Math.PI * 2; - } - if (prevFrame.tweenRotate < 1) { - frame.transform.skewX += Math.PI * 2 * (prevFrame.tweenRotate + 1); - frame.transform.skewY += Math.PI * 2 * (prevFrame.tweenRotate + 1); - } - } - } - else { - frame.transform.skewX = prevFrame.transform.skewX + dragonBones.TransformUtil.formatRadian(frame.transform.skewX - prevFrame.transform.skewX); - frame.transform.skewY = prevFrame.transform.skewY + dragonBones.TransformUtil.formatRadian(frame.transform.skewY - prevFrame.transform.skewY); - } - } - prevFrame = frame; - } - if (slotTimeline && slotFrameList) { - frameListLength = slotFrameList.length; - for (var j = 0; j < frameListLength; j++) { - var slotFrame = slotFrameList[j]; - if (!slotTimeline.transformed) { - if (slotData) { - slotFrame.zOrder -= slotData.zOrder; - } - } - } - slotTimeline.transformed = true; - } - timeline.transformed = true; - } - }; - DBDataUtil.setFrameTransform = function (animationData, armatureData, boneData, frame) { - frame.transform.copy(frame.global); - var parentData = armatureData.getBoneData(boneData.parent); - if (parentData) { - var parentTimeline = animationData.getTimeline(parentData.name); - if (parentTimeline) { - var parentTimelineList = []; - var parentDataList = []; - while (parentTimeline) { - parentTimelineList.push(parentTimeline); - parentDataList.push(parentData); - parentData = armatureData.getBoneData(parentData.parent); - if (parentData) { - parentTimeline = animationData.getTimeline(parentData.name); - } - else { - parentTimeline = null; - } - } - var i = parentTimelineList.length; - var globalTransform; - var globalTransformMatrix = new dragonBones.Matrix(); - var currentTransform = new dragonBones.DBTransform(); - var currentTransformMatrix = new dragonBones.Matrix(); - while (i--) { - parentTimeline = parentTimelineList[i]; - parentData = parentDataList[i]; - DBDataUtil.getTimelineTransform(parentTimeline, frame.position, currentTransform, !globalTransform); - if (!globalTransform) { - globalTransform = new dragonBones.DBTransform(); - globalTransform.copy(currentTransform); - } - else { - currentTransform.x += parentTimeline.originTransform.x + parentData.transform.x; - currentTransform.y += parentTimeline.originTransform.y + parentData.transform.y; - currentTransform.skewX += parentTimeline.originTransform.skewX + parentData.transform.skewX; - currentTransform.skewY += parentTimeline.originTransform.skewY + parentData.transform.skewY; - currentTransform.scaleX *= parentTimeline.originTransform.scaleX * parentData.transform.scaleX; - currentTransform.scaleY *= parentTimeline.originTransform.scaleY * parentData.transform.scaleY; - dragonBones.TransformUtil.transformToMatrix(currentTransform, currentTransformMatrix, true); - currentTransformMatrix.concat(globalTransformMatrix); - dragonBones.TransformUtil.matrixToTransform(currentTransformMatrix, globalTransform, currentTransform.scaleX * globalTransform.scaleX >= 0, currentTransform.scaleY * globalTransform.scaleY >= 0); - } - dragonBones.TransformUtil.transformToMatrix(globalTransform, globalTransformMatrix, true); - } - dragonBones.TransformUtil.globalToLocal(frame.transform, globalTransform); - } - } - }; - DBDataUtil.getTimelineTransform = function (timeline, position, retult, isGlobal) { - var frameList = timeline.frameList; - var i = frameList.length; - while (i--) { - var currentFrame = (frameList[i]); - if (currentFrame.position <= position && currentFrame.position + currentFrame.duration > position) { - if (i == frameList.length - 1 || position == currentFrame.position) { - retult.copy(isGlobal ? currentFrame.global : currentFrame.transform); - } - else { - var tweenEasing = currentFrame.tweenEasing; - var progress = (position - currentFrame.position) / currentFrame.duration; - if (tweenEasing && tweenEasing != 10) { - progress = dragonBones.MathUtil.getEaseValue(progress, tweenEasing); - } - var nextFrame = frameList[i + 1]; - var currentTransform = isGlobal ? currentFrame.global : currentFrame.transform; - var nextTransform = isGlobal ? nextFrame.global : nextFrame.transform; - retult.x = currentTransform.x + (nextTransform.x - currentTransform.x) * progress; - retult.y = currentTransform.y + (nextTransform.y - currentTransform.y) * progress; - retult.skewX = dragonBones.TransformUtil.formatRadian(currentTransform.skewX + (nextTransform.skewX - currentTransform.skewX) * progress); - retult.skewY = dragonBones.TransformUtil.formatRadian(currentTransform.skewY + (nextTransform.skewY - currentTransform.skewY) * progress); - retult.scaleX = currentTransform.scaleX + (nextTransform.scaleX - currentTransform.scaleX) * progress; - retult.scaleY = currentTransform.scaleY + (nextTransform.scaleY - currentTransform.scaleY) * progress; - } - break; - } - } - }; - DBDataUtil.addHideTimeline = function (animationData, armatureData, addHideSlot) { - if (addHideSlot === void 0) { addHideSlot = false; } - var boneDataList = armatureData.boneDataList; - var slotDataList = armatureData.slotDataList; - var i = boneDataList.length; - while (i--) { - var boneData = boneDataList[i]; - var boneName = boneData.name; - if (!animationData.getTimeline(boneName)) { - if (animationData.hideTimelineNameMap.indexOf(boneName) < 0) { - animationData.hideTimelineNameMap.push(boneName); - } - } - } - if (addHideSlot) { - i = slotDataList.length; - var slotData; - var slotName; - while (i--) { - slotData = slotDataList[i]; - slotName = slotData.name; - if (!animationData.getSlotTimeline(slotName)) { - if (animationData.hideSlotTimelineNameMap.indexOf(slotName) < 0) { - animationData.hideSlotTimelineNameMap.push(slotName); - } - } - } - } - }; - return DBDataUtil; - })(); - dragonBones.DBDataUtil = DBDataUtil; - egret.registerClass(DBDataUtil,'dragonBones.DBDataUtil'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var MathUtil = (function () { - function MathUtil() { - } - var d = __define,c=MathUtil,p=c.prototype; - MathUtil.getEaseValue = function (value, easing) { - var valueEase = 1; - if (easing > 1) { - valueEase = 0.5 * (1 - MathUtil.cos(value * Math.PI)); - easing -= 1; - } - else if (easing > 0) { - valueEase = 1 - Math.pow(1 - value, 2); - } - else if (easing < 0) { - easing *= -1; - valueEase = Math.pow(value, 2); - } - return (valueEase - value) * easing + value; - }; - MathUtil.isNumber = function (value) { - return typeof (value) === "number" && !isNaN(value); - }; - MathUtil.sin = function (value) { - value *= MathUtil.RADIAN_TO_ANGLE; - var valueFloor = Math.floor(value); - var valueCeil = valueFloor + 1; - var resultFloor = MathUtil.sinInt(valueFloor); - var resultCeil = MathUtil.sinInt(valueCeil); - return (value - valueFloor) * resultCeil + (valueCeil - value) * resultFloor; - }; - MathUtil.sinInt = function (value) { - value = value % 360; - if (value < 0) { - value += 360; - } - if (value < 90) { - return db_sin_map[value]; - } - if (value < 180) { - return db_sin_map[180 - value]; - } - if (value < 270) { - return -db_sin_map[value - 180]; - } - return -db_sin_map[360 - value]; - }; - MathUtil.cos = function (value) { - return MathUtil.sin(Math.PI / 2 - value); - }; - MathUtil.ANGLE_TO_RADIAN = Math.PI / 180; - MathUtil.RADIAN_TO_ANGLE = 180 / Math.PI; - return MathUtil; - })(); - dragonBones.MathUtil = MathUtil; - egret.registerClass(MathUtil,'dragonBones.MathUtil'); -})(dragonBones || (dragonBones = {})); -var db_sin_map = {}; -for (var dbMathIndex = 0; dbMathIndex <= 90; dbMathIndex++) { - db_sin_map[dbMathIndex] = Math.sin(dbMathIndex * dragonBones.MathUtil.ANGLE_TO_RADIAN); -} -var dragonBones; -(function (dragonBones) { - var TransformUtil = (function () { - function TransformUtil() { - } - var d = __define,c=TransformUtil,p=c.prototype; - TransformUtil.globalToLocal = function (transform, parent) { - TransformUtil.transformToMatrix(transform, TransformUtil._helpTransformMatrix, true); - TransformUtil.transformToMatrix(parent, TransformUtil._helpParentTransformMatrix, true); - TransformUtil._helpParentTransformMatrix.invert(); - TransformUtil._helpTransformMatrix.concat(TransformUtil._helpParentTransformMatrix); - TransformUtil.matrixToTransform(TransformUtil._helpTransformMatrix, transform, transform.scaleX * parent.scaleX >= 0, transform.scaleY * parent.scaleY >= 0); - }; - TransformUtil.transformToMatrix = function (transform, matrix, keepScale) { - if (keepScale === void 0) { keepScale = false; } - if (keepScale) { - matrix.a = transform.scaleX * dragonBones.MathUtil.cos(transform.skewY); - matrix.b = transform.scaleX * dragonBones.MathUtil.sin(transform.skewY); - matrix.c = -transform.scaleY * dragonBones.MathUtil.sin(transform.skewX); - matrix.d = transform.scaleY * dragonBones.MathUtil.cos(transform.skewX); - matrix.tx = transform.x; - matrix.ty = transform.y; - } - else { - matrix.a = dragonBones.MathUtil.cos(transform.skewY); - matrix.b = dragonBones.MathUtil.sin(transform.skewY); - matrix.c = -dragonBones.MathUtil.sin(transform.skewX); - matrix.d = dragonBones.MathUtil.cos(transform.skewX); - matrix.tx = transform.x; - matrix.ty = transform.y; - } - }; - TransformUtil.matrixToTransform = function (matrix, transform, scaleXF, scaleYF) { - transform.x = matrix.tx; - transform.y = matrix.ty; - transform.scaleX = Math.sqrt(matrix.a * matrix.a + matrix.b * matrix.b) * (scaleXF ? 1 : -1); - transform.scaleY = Math.sqrt(matrix.d * matrix.d + matrix.c * matrix.c) * (scaleYF ? 1 : -1); - var skewXArray = []; - skewXArray[0] = Math.acos(matrix.d / transform.scaleY); - skewXArray[1] = -skewXArray[0]; - skewXArray[2] = Math.asin(-matrix.c / transform.scaleY); - skewXArray[3] = skewXArray[2] >= 0 ? Math.PI - skewXArray[2] : skewXArray[2] - Math.PI; - if (Number(skewXArray[0]).toFixed(4) == Number(skewXArray[2]).toFixed(4) || Number(skewXArray[0]).toFixed(4) == Number(skewXArray[3]).toFixed(4)) { - transform.skewX = skewXArray[0]; - } - else { - transform.skewX = skewXArray[1]; - } - var skewYArray = []; - skewYArray[0] = Math.acos(matrix.a / transform.scaleX); - skewYArray[1] = -skewYArray[0]; - skewYArray[2] = Math.asin(matrix.b / transform.scaleX); - skewYArray[3] = skewYArray[2] >= 0 ? Math.PI - skewYArray[2] : skewYArray[2] - Math.PI; - if (Number(skewYArray[0]).toFixed(4) == Number(skewYArray[2]).toFixed(4) || Number(skewYArray[0]).toFixed(4) == Number(skewYArray[3]).toFixed(4)) { - transform.skewY = skewYArray[0]; - } - else { - transform.skewY = skewYArray[1]; - } - }; - TransformUtil.formatRadian = function (radian) { - if (radian > Math.PI) { - radian -= TransformUtil.DOUBLE_PI; - } - if (radian < -Math.PI) { - radian += TransformUtil.DOUBLE_PI; - } - return radian; - }; - TransformUtil.normalizeRotation = function (rotation) { - rotation = (rotation + Math.PI) % (2 * Math.PI); - rotation = rotation > 0 ? rotation : 2 * Math.PI + rotation; - return rotation - Math.PI; - }; - TransformUtil.HALF_PI = Math.PI * 0.5; - TransformUtil.DOUBLE_PI = Math.PI * 2; - TransformUtil._helpTransformMatrix = new dragonBones.Matrix(); - TransformUtil._helpParentTransformMatrix = new dragonBones.Matrix(); - return TransformUtil; - })(); - dragonBones.TransformUtil = TransformUtil; - egret.registerClass(TransformUtil,'dragonBones.TransformUtil'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var FastAnimation = (function () { - function FastAnimation(armature) { - this.animationState = new dragonBones.FastAnimationState(); - this._armature = armature; - this.animationState._armature = armature; - this.animationList = []; - this._animationDataObj = {}; - this._isPlaying = false; - this._timeScale = 1; - } - var d = __define,c=FastAnimation,p=c.prototype; - p.dispose = function () { - if (!this._armature) { - return; - } - this._armature = null; - this._animationDataList = null; - this.animationList = null; - this.animationState = null; - }; - p.gotoAndPlay = function (animationName, fadeInTime, duration, playTimes) { - if (fadeInTime === void 0) { fadeInTime = -1; } - if (duration === void 0) { duration = -1; } - if (playTimes === void 0) { playTimes = NaN; } - if (!this._animationDataList) { - return null; - } - var animationData = this._animationDataObj[animationName]; - if (!animationData) { - return null; - } - this._isPlaying = true; - fadeInTime = fadeInTime < 0 ? (animationData.fadeTime < 0 ? 0.3 : animationData.fadeTime) : fadeInTime; - var durationScale; - if (duration < 0) { - durationScale = animationData.scale < 0 ? 1 : animationData.scale; - } - else { - durationScale = duration * 1000 / animationData.duration; - } - playTimes = isNaN(playTimes) ? animationData.playTimes : playTimes; - this.animationState._fadeIn(animationData, playTimes, 1 / durationScale, fadeInTime); - if (this._armature.enableCache && this.animationCacheManager) { - this.animationState.animationCache = this.animationCacheManager.getAnimationCache(animationName); - } - var i = this._armature.slotHasChildArmatureList.length; - while (i--) { - var slot = this._armature.slotHasChildArmatureList[i]; - var childArmature = slot.childArmature; - if (childArmature) { - childArmature.getAnimation().gotoAndPlay(animationName); - } - } - return this.animationState; - }; - p.gotoAndStop = function (animationName, time, normalizedTime, fadeInTime, duration) { - if (normalizedTime === void 0) { normalizedTime = -1; } - if (fadeInTime === void 0) { fadeInTime = 0; } - if (duration === void 0) { duration = -1; } - if (this.animationState.name != animationName) { - this.gotoAndPlay(animationName, fadeInTime, duration); - } - if (normalizedTime >= 0) { - this.animationState.setCurrentTime(this.animationState.totalTime * normalizedTime); - } - else { - this.animationState.setCurrentTime(time); - } - this.animationState.stop(); - return this.animationState; - }; - p.play = function () { - if (!this._animationDataList) { - return; - } - if (!this.animationState.name) { - this.gotoAndPlay(this._animationDataList[0].name); - } - else if (!this._isPlaying) { - this._isPlaying = true; - } - else { - this.gotoAndPlay(this.animationState.name); - } - }; - p.stop = function () { - this._isPlaying = false; - }; - p.advanceTime = function (passedTime) { - if (!this._isPlaying) { - return; - } - this.animationState._advanceTime(passedTime * this._timeScale); - }; - p.hasAnimation = function (animationName) { - return this._animationDataObj[animationName] != null; - }; - d(p, "timeScale" - ,function () { - return this._timeScale; - } - ,function (value) { - if (isNaN(value) || value < 0) { - value = 1; - } - this._timeScale = value; - } - ); - d(p, "animationDataList" - ,function () { - return this._animationDataList; - } - ,function (value) { - this._animationDataList = value; - this.animationList.length = 0; - var length = this._animationDataList.length; - for (var i = 0; i < length; i++) { - var animationData = this._animationDataList[i]; - this.animationList.push(animationData.name); - this._animationDataObj[animationData.name] = animationData; - } - } - ); - d(p, "movementList" - ,function () { - return this.animationList; - } - ); - d(p, "movementID" - ,function () { - return this.lastAnimationName; - } - ); - p.isPlaying = function () { - return this._isPlaying && !this.isComplete; - }; - d(p, "isComplete" - ,function () { - return this.animationState.isComplete; - } - ); - d(p, "lastAnimationState" - ,function () { - return this.animationState; - } - ); - d(p, "lastAnimationName" - ,function () { - return this.animationState ? this.animationState.name : null; - } - ); - return FastAnimation; - })(); - dragonBones.FastAnimation = FastAnimation; - egret.registerClass(FastAnimation,'dragonBones.FastAnimation'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var FastAnimationState = (function () { - function FastAnimationState() { - this._boneTimelineStateList = []; - this._slotTimelineStateList = []; - this._currentFrameIndex = 0; - this._currentFramePosition = 0; - this._currentFrameDuration = 0; - this._currentPlayTimes = 0; - this._totalTime = 0; - this._currentTime = 0; - this._lastTime = 0; - this._playTimes = 0; - this._fading = false; - } - var d = __define,c=FastAnimationState,p=c.prototype; - p.dispose = function () { - this._resetTimelineStateList(); - this._armature = null; - }; - p.play = function () { - this._isPlaying = true; - return this; - }; - p.stop = function () { - this._isPlaying = false; - return this; - }; - p.setCurrentTime = function (value) { - if (value < 0 || isNaN(value)) { - value = 0; - } - this._time = value; - this._currentTime = this._time * 1000; - return this; - }; - p._resetTimelineStateList = function () { - var i = this._boneTimelineStateList.length; - while (i--) { - dragonBones.FastBoneTimelineState.returnObject(this._boneTimelineStateList[i]); - } - this._boneTimelineStateList.length = 0; - i = this._slotTimelineStateList.length; - while (i--) { - dragonBones.FastSlotTimelineState.returnObject(this._slotTimelineStateList[i]); - } - this._slotTimelineStateList.length = 0; - this.name = null; - }; - p._fadeIn = function (aniData, playTimes, timeScale, fadeTotalTime) { - this.animationData = aniData; - this.name = this.animationData.name; - this._totalTime = this.animationData.duration; - this.autoTween = aniData.autoTween; - this.setTimeScale(timeScale); - this.setPlayTimes(playTimes); - this._isComplete = false; - this._currentFrameIndex = -1; - this._currentPlayTimes = -1; - if (Math.round(this._totalTime * this.animationData.frameRate * 0.001) < 2) { - this._currentTime = this._totalTime; - } - else { - this._currentTime = -1; - } - this._fadeTotalTime = fadeTotalTime * this._timeScale; - this._fading = this._fadeTotalTime > 0; - this._isPlaying = true; - if (this._armature.enableCache && this.animationCache && this._fading && this._boneTimelineStateList) { - this.updateTransformTimeline(this.progress); - } - this._time = 0; - this._progress = 0; - this._updateTimelineStateList(); - this.hideBones(); - return; - }; - p._updateTimelineStateList = function () { - this._resetTimelineStateList(); - var timelineName; - var length = this.animationData.timelineList.length; - for (var i = 0; i < length; i++) { - var boneTimeline = this.animationData.timelineList[i]; - timelineName = boneTimeline.name; - var bone = this._armature.getBone(timelineName); - if (bone) { - var boneTimelineState = dragonBones.FastBoneTimelineState.borrowObject(); - boneTimelineState.fadeIn(bone, this, boneTimeline); - this._boneTimelineStateList.push(boneTimelineState); - } - } - var length1 = this.animationData.slotTimelineList.length; - for (var i1 = 0; i1 < length1; i1++) { - var slotTimeline = this.animationData.slotTimelineList[i1]; - timelineName = slotTimeline.name; - var slot = this._armature.getSlot(timelineName); - if (slot && slot.displayList.length > 0) { - var slotTimelineState = dragonBones.FastSlotTimelineState.borrowObject(); - slotTimelineState.fadeIn(slot, this, slotTimeline); - this._slotTimelineStateList.push(slotTimelineState); - } - } - }; - p._advanceTime = function (passedTime) { - passedTime *= this._timeScale; - if (this._fading) { - this._time += passedTime; - this._progress = this._time / this._fadeTotalTime; - if (this._progress >= 1) { - this._progress = 0; - this._time = 0; - this._fading = false; - } - } - if (this._fading) { - var length = this._boneTimelineStateList.length; - for (var i = 0; i < length; i++) { - var timeline = this._boneTimelineStateList[i]; - timeline.updateFade(this.progress); - } - var length1 = this._slotTimelineStateList.length; - for (var i1 = 0; i1 < length1; i1++) { - var slotTimeline = this._slotTimelineStateList[i1]; - slotTimeline.updateFade(this.progress); - } - } - else { - this.advanceTimelinesTime(passedTime); - } - }; - p.advanceTimelinesTime = function (passedTime) { - if (this._isPlaying) { - this._time += passedTime; - } - var startFlg = false; - var loopCompleteFlg = false; - var completeFlg = false; - var isThisComplete = false; - var currentPlayTimes = 0; - var currentTime = this._time * 1000; - if (this._playTimes == 0 || - currentTime < this._playTimes * this._totalTime) { - isThisComplete = false; - this._progress = currentTime / this._totalTime; - currentPlayTimes = Math.ceil(this.progress) || 1; - this._progress -= Math.floor(this.progress); - currentTime %= this._totalTime; - } - else { - currentPlayTimes = this._playTimes; - currentTime = this._totalTime; - isThisComplete = true; - this._progress = 1; - } - this._isComplete = isThisComplete; - if (this.isUseCache()) { - this.animationCache.update(this.progress); - } - else { - this.updateTransformTimeline(this.progress); - } - if (this._currentTime != currentTime) { - if (this._currentPlayTimes != currentPlayTimes) { - if (this._currentPlayTimes > 0 && currentPlayTimes > 1) { - loopCompleteFlg = true; - } - this._currentPlayTimes = currentPlayTimes; - } - if (this._currentTime < 0) { - startFlg = true; - } - if (this._isComplete) { - completeFlg = true; - } - this._lastTime = this._currentTime; - this._currentTime = currentTime; - this.updateMainTimeline(isThisComplete); - } - var event; - if (startFlg) { - if (this._armature.hasEventListener(dragonBones.AnimationEvent.START)) { - event = new dragonBones.AnimationEvent(dragonBones.AnimationEvent.START); - event.animationState = this; - this._armature._addEvent(event); - } - } - if (completeFlg) { - if (this._armature.hasEventListener(dragonBones.AnimationEvent.COMPLETE)) { - event = new dragonBones.AnimationEvent(dragonBones.AnimationEvent.COMPLETE); - event.animationState = this; - this._armature._addEvent(event); - } - } - else if (loopCompleteFlg) { - if (this._armature.hasEventListener(dragonBones.AnimationEvent.LOOP_COMPLETE)) { - event = new dragonBones.AnimationEvent(dragonBones.AnimationEvent.LOOP_COMPLETE); - event.animationState = this; - this._armature._addEvent(event); - } - } - }; - p.updateTransformTimeline = function (progress) { - var i = this._boneTimelineStateList.length; - var boneTimeline; - var slotTimeline; - if (this._isComplete) { - while (i--) { - boneTimeline = this._boneTimelineStateList[i]; - boneTimeline.update(progress); - this._isComplete = boneTimeline._isComplete && this._isComplete; - } - i = this._slotTimelineStateList.length; - while (i--) { - slotTimeline = this._slotTimelineStateList[i]; - slotTimeline.update(progress); - this._isComplete = slotTimeline._isComplete && this._isComplete; - } - } - else { - while (i--) { - boneTimeline = this._boneTimelineStateList[i]; - boneTimeline.update(progress); - } - i = this._slotTimelineStateList.length; - while (i--) { - slotTimeline = this._slotTimelineStateList[i]; - slotTimeline.update(progress); - } - } - }; - p.updateMainTimeline = function (isThisComplete) { - var frameList = this.animationData.frameList; - if (frameList.length > 0) { - var prevFrame; - var currentFrame; - for (var i = 0, l = this.animationData.frameList.length; i < l; ++i) { - if (this._currentFrameIndex < 0) { - this._currentFrameIndex = 0; - } - else if (this._currentTime < this._currentFramePosition || this._currentTime >= this._currentFramePosition + this._currentFrameDuration || this._currentTime < this._lastTime) { - this._lastTime = this._currentTime; - this._currentFrameIndex++; - if (this._currentFrameIndex >= frameList.length) { - if (isThisComplete) { - this._currentFrameIndex--; - break; - } - else { - this._currentFrameIndex = 0; - } - } - } - else { - break; - } - currentFrame = frameList[this._currentFrameIndex]; - if (prevFrame) { - this._armature.arriveAtFrame(prevFrame, this); - } - this._currentFrameDuration = currentFrame.duration; - this._currentFramePosition = currentFrame.position; - prevFrame = currentFrame; - } - if (currentFrame) { - this._armature.arriveAtFrame(currentFrame, this); - } - } - }; - p.setTimeScale = function (value) { - if (isNaN(value) || value == Infinity) { - value = 1; - } - this._timeScale = value; - return this; - }; - p.setPlayTimes = function (value) { - if (value === void 0) { value = 0; } - if (Math.round(this._totalTime * 0.001 * this.animationData.frameRate) < 2) { - this._playTimes = 1; - } - else { - this._playTimes = value; - } - return this; - }; - d(p, "playTimes" - ,function () { - return this._playTimes; - } - ); - d(p, "currentPlayTimes" - ,function () { - return this._currentPlayTimes < 0 ? 0 : this._currentPlayTimes; - } - ); - d(p, "isComplete" - ,function () { - return this._isComplete; - } - ); - d(p, "isPlaying" - ,function () { - return (this._isPlaying && !this._isComplete); - } - ); - d(p, "totalTime" - ,function () { - return this._totalTime * 0.001; - } - ); - d(p, "currentTime" - ,function () { - return this._currentTime < 0 ? 0 : this._currentTime * 0.001; - } - ); - p.isUseCache = function () { - return this._armature.enableCache && this.animationCache && !this._fading; - }; - p.hideBones = function () { - var length = this.animationData.hideTimelineNameMap.length; - for (var i = 0; i < length; i++) { - var timelineName = this.animationData.hideTimelineNameMap[i]; - var bone = this._armature.getBone(timelineName); - if (bone) { - bone._hideSlots(); - } - } - var slotTimelineName; - for (i = 0, length = this.animationData.hideSlotTimelineNameMap.length; i < length; i++) { - slotTimelineName = this.animationData.hideSlotTimelineNameMap[i]; - var slot = this._armature.getSlot(slotTimelineName); - if (slot) { - slot._resetToOrigin(); - } - } - }; - d(p, "progress" - ,function () { - return this._progress; - } - ); - return FastAnimationState; - })(); - dragonBones.FastAnimationState = FastAnimationState; - egret.registerClass(FastAnimationState,'dragonBones.FastAnimationState',["dragonBones.IAnimationState"]); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var FastBoneTimelineState = (function () { - function FastBoneTimelineState() { - this._totalTime = 0; - this._currentTime = 0; - this._lastTime = 0; - this._currentFrameIndex = 0; - this._currentFramePosition = 0; - this._currentFrameDuration = 0; - this._updateMode = 0; - this._transform = new dragonBones.DBTransform(); - this._durationTransform = new dragonBones.DBTransform(); - this._transformToFadein = new dragonBones.DBTransform(); - this._pivot = new dragonBones.Point(); - this._durationPivot = new dragonBones.Point(); - } - var d = __define,c=FastBoneTimelineState,p=c.prototype; - FastBoneTimelineState.borrowObject = function () { - if (FastBoneTimelineState._pool.length == 0) { - return new FastBoneTimelineState(); - } - return FastBoneTimelineState._pool.pop(); - }; - FastBoneTimelineState.returnObject = function (timeline) { - if (FastBoneTimelineState._pool.indexOf(timeline) < 0) { - FastBoneTimelineState._pool[FastBoneTimelineState._pool.length] = timeline; - } - timeline.clear(); - }; - FastBoneTimelineState.clear = function () { - var i = FastBoneTimelineState._pool.length; - while (i--) { - FastBoneTimelineState._pool[i].clear(); - } - FastBoneTimelineState._pool.length = 0; - }; - p.clear = function () { - if (this._bone) { - this._bone._timelineState = null; - this._bone = null; - } - this._animationState = null; - this._timelineData = null; - this._originPivot = null; - }; - p.fadeIn = function (bone, animationState, timelineData) { - this._bone = bone; - this._animationState = animationState; - this._timelineData = timelineData; - this.name = timelineData.name; - this._totalTime = this._timelineData.duration; - this._isComplete = false; - this._tweenTransform = false; - this._currentFrameIndex = -1; - this._currentTime = -1; - this._tweenEasing = NaN; - this._durationPivot.x = 0; - this._durationPivot.y = 0; - this._pivot.x = 0; - this._pivot.y = 0; - this._originPivot = this._timelineData.originPivot; - switch (this._timelineData.frameList.length) { - case 0: - this._updateMode = 0; - break; - case 1: - this._updateMode = 1; - break; - default: - this._updateMode = -1; - break; - } - if (animationState._fadeTotalTime > 0) { - var pivotToFadein; - if (this._bone._timelineState) { - this._transformToFadein.copy(this._bone._timelineState._transform); - } - else { - this._transformToFadein = new dragonBones.DBTransform(); - } - var firstFrame = (this._timelineData.frameList[0]); - this._durationTransform.copy(firstFrame.transform); - this._durationTransform.minus(this._transformToFadein); - } - this._bone._timelineState = this; - }; - p.updateFade = function (progress) { - this._transform.x = this._transformToFadein.x + this._durationTransform.x * progress; - this._transform.y = this._transformToFadein.y + this._durationTransform.y * progress; - this._transform.scaleX = this._transformToFadein.scaleX * (1 + (this._durationTransform.scaleX - 1) * progress); - this._transform.scaleY = this._transformToFadein.scaleX * (1 + (this._durationTransform.scaleY - 1) * progress); - this._transform.rotation = this._transformToFadein.rotation + this._durationTransform.rotation * progress; - this._bone.invalidUpdate(); - }; - p.update = function (progress) { - if (this._updateMode == 1) { - this._updateMode = 0; - this.updateSingleFrame(); - } - else if (this._updateMode == -1) { - this.updateMultipleFrame(progress); - } - }; - p.updateSingleFrame = function () { - var currentFrame = (this._timelineData.frameList[0]); - this._bone.arriveAtFrame(currentFrame, this._animationState); - this._isComplete = true; - this._tweenEasing = NaN; - this._tweenTransform = false; - this._pivot.x = this._originPivot.x + currentFrame.pivot.x; - this._pivot.y = this._originPivot.y + currentFrame.pivot.y; - this._transform.copy(currentFrame.transform); - this._bone.invalidUpdate(); - }; - p.updateMultipleFrame = function (progress) { - var currentPlayTimes = 0; - progress /= this._timelineData.scale; - progress += this._timelineData.offset; - var currentTime = this._totalTime * progress; - var playTimes = this._animationState.playTimes; - if (playTimes == 0) { - this._isComplete = false; - currentPlayTimes = Math.ceil(Math.abs(currentTime) / this._totalTime) || 1; - currentTime -= Math.floor(currentTime / this._totalTime) * this._totalTime; - if (currentTime < 0) { - currentTime += this._totalTime; - } - } - else { - var totalTimes = playTimes * this._totalTime; - if (currentTime >= totalTimes) { - currentTime = totalTimes; - this._isComplete = true; - } - else if (currentTime <= -totalTimes) { - currentTime = -totalTimes; - this._isComplete = true; - } - else { - this._isComplete = false; - } - if (currentTime < 0) { - currentTime += totalTimes; - } - currentPlayTimes = Math.ceil(currentTime / this._totalTime) || 1; - if (this._isComplete) { - currentTime = this._totalTime; - } - else { - currentTime -= Math.floor(currentTime / this._totalTime) * this._totalTime; - } - } - if (this._currentTime != currentTime) { - this._lastTime = this._currentTime; - this._currentTime = currentTime; - var frameList = this._timelineData.frameList; - var prevFrame; - var currentFrame; - for (var i = 0, l = this._timelineData.frameList.length; i < l; ++i) { - if (this._currentFrameIndex < 0) { - this._currentFrameIndex = 0; - } - else if (this._currentTime < this._currentFramePosition || this._currentTime >= this._currentFramePosition + this._currentFrameDuration || this._currentTime < this._lastTime) { - this._currentFrameIndex++; - this._lastTime = this._currentTime; - if (this._currentFrameIndex >= frameList.length) { - if (this._isComplete) { - this._currentFrameIndex--; - break; - } - else { - this._currentFrameIndex = 0; - } - } - } - else { - break; - } - currentFrame = (frameList[this._currentFrameIndex]); - if (prevFrame) { - this._bone.arriveAtFrame(prevFrame, this._animationState); - } - this._currentFrameDuration = currentFrame.duration; - this._currentFramePosition = currentFrame.position; - prevFrame = currentFrame; - } - if (currentFrame) { - this._bone.arriveAtFrame(currentFrame, this._animationState); - this.updateToNextFrame(currentPlayTimes); - } - if (this._tweenTransform) { - this.updateTween(); - } - } - }; - p.updateToNextFrame = function (currentPlayTimes) { - if (currentPlayTimes === void 0) { currentPlayTimes = 0; } - var nextFrameIndex = this._currentFrameIndex + 1; - if (nextFrameIndex >= this._timelineData.frameList.length) { - nextFrameIndex = 0; - } - var currentFrame = (this._timelineData.frameList[this._currentFrameIndex]); - var nextFrame = (this._timelineData.frameList[nextFrameIndex]); - var tweenEnabled = false; - if (nextFrameIndex == 0 && (this._animationState.playTimes && - this._animationState.currentPlayTimes >= this._animationState.playTimes && - ((this._currentFramePosition + this._currentFrameDuration) / this._totalTime + currentPlayTimes - this._timelineData.offset) * this._timelineData.scale > 0.999999)) { - this._tweenEasing = NaN; - tweenEnabled = false; - } - else if (this._animationState.autoTween) { - this._tweenEasing = this._animationState.animationData.tweenEasing; - if (isNaN(this._tweenEasing)) { - this._tweenEasing = currentFrame.tweenEasing; - this._tweenCurve = currentFrame.curve; - if (isNaN(this._tweenEasing) && this._tweenCurve == null) { - tweenEnabled = false; - } - else { - if (this._tweenEasing == 10) { - this._tweenEasing = 0; - } - tweenEnabled = true; - } - } - else { - tweenEnabled = true; - } - } - else { - this._tweenEasing = currentFrame.tweenEasing; - this._tweenCurve = currentFrame.curve; - if ((isNaN(this._tweenEasing) || this._tweenEasing == 10) && this._tweenCurve == null) { - this._tweenEasing = NaN; - tweenEnabled = false; - } - else { - tweenEnabled = true; - } - } - if (tweenEnabled) { - this._durationTransform.x = nextFrame.transform.x - currentFrame.transform.x; - this._durationTransform.y = nextFrame.transform.y - currentFrame.transform.y; - this._durationTransform.skewX = nextFrame.transform.skewX - currentFrame.transform.skewX; - this._durationTransform.skewY = nextFrame.transform.skewY - currentFrame.transform.skewY; - this._durationTransform.scaleX = nextFrame.transform.scaleX - currentFrame.transform.scaleX + nextFrame.scaleOffset.x; - this._durationTransform.scaleY = nextFrame.transform.scaleY - currentFrame.transform.scaleY + nextFrame.scaleOffset.y; - this._durationPivot.x = nextFrame.pivot.x - currentFrame.pivot.x; - this._durationPivot.y = nextFrame.pivot.y - currentFrame.pivot.y; - this._durationTransform.normalizeRotation(); - if (nextFrameIndex == 0) { - this._durationTransform.skewX = dragonBones.TransformUtil.formatRadian(this._durationTransform.skewX); - this._durationTransform.skewY = dragonBones.TransformUtil.formatRadian(this._durationTransform.skewY); - } - if (this._durationTransform.x || - this._durationTransform.y || - this._durationTransform.skewX || - this._durationTransform.skewY || - this._durationTransform.scaleX != 1 || - this._durationTransform.scaleY != 1 || - this._durationPivot.x || - this._durationPivot.y) { - this._tweenTransform = true; - } - else { - this._tweenTransform = false; - } - } - else { - this._tweenTransform = false; - } - if (!this._tweenTransform) { - this._transform.copy(currentFrame.transform); - this._pivot.x = this._originPivot.x + currentFrame.pivot.x; - this._pivot.y = this._originPivot.y + currentFrame.pivot.y; - this._bone.invalidUpdate(); - } - }; - p.updateTween = function () { - var progress = (this._currentTime - this._currentFramePosition) / this._currentFrameDuration; - if (this._tweenCurve) { - progress = this._tweenCurve.getValueByProgress(progress); - } - else if (this._tweenEasing) { - progress = dragonBones.MathUtil.getEaseValue(progress, this._tweenEasing); - } - var currentFrame = (this._timelineData.frameList[this._currentFrameIndex]); - var currentTransform = currentFrame.transform; - var currentPivot = currentFrame.pivot; - this._transform.x = currentTransform.x + this._durationTransform.x * progress; - this._transform.y = currentTransform.y + this._durationTransform.y * progress; - this._transform.skewX = currentTransform.skewX + this._durationTransform.skewX * progress; - this._transform.skewY = currentTransform.skewY + this._durationTransform.skewY * progress; - this._transform.scaleX = currentTransform.scaleX + this._durationTransform.scaleX * progress; - this._transform.scaleY = currentTransform.scaleY + this._durationTransform.scaleY * progress; - this._pivot.x = currentPivot.x + this._durationPivot.x * progress; - this._pivot.y = currentPivot.y + this._durationPivot.y * progress; - this._bone.invalidUpdate(); - }; - FastBoneTimelineState._pool = []; - return FastBoneTimelineState; - })(); - dragonBones.FastBoneTimelineState = FastBoneTimelineState; - egret.registerClass(FastBoneTimelineState,'dragonBones.FastBoneTimelineState'); -})(dragonBones || (dragonBones = {})); -var dragonBones; -(function (dragonBones) { - var FastSlotTimelineState = (function () { - function FastSlotTimelineState() { - this._totalTime = 0; - this._currentTime = 0; - this._currentFrameIndex = 0; - this._currentFramePosition = 0; - this._currentFrameDuration = 0; - this._updateMode = 0; - this._durationColor = new dragonBones.ColorTransform(); - } - var d = __define,c=FastSlotTimelineState,p=c.prototype; - FastSlotTimelineState.borrowObject = function () { - if (FastSlotTimelineState._pool.length == 0) { - return new FastSlotTimelineState(); - } - return FastSlotTimelineState._pool.pop(); - }; - FastSlotTimelineState.returnObject = function (timeline) { - if (FastSlotTimelineState._pool.indexOf(timeline) < 0) { - FastSlotTimelineState._pool[FastSlotTimelineState._pool.length] = timeline; - } - timeline.clear(); - }; - FastSlotTimelineState.clear = function () { - var i = FastSlotTimelineState._pool.length; - while (i--) { - FastSlotTimelineState._pool[i].clear(); - } - FastSlotTimelineState._pool.length = 0; - }; - p.clear = function () { - this._slot = null; - this._armature = null; - this._animation = null; - this._animationState = null; - this._timelineData = null; - }; - p.fadeIn = function (slot, animationState, timelineData) { - this._slot = slot; - this._armature = this._slot.armature; - this._animation = this._armature.animation; - this._animationState = animationState; - this._timelineData = timelineData; - this.name = timelineData.name; - this._totalTime = this._timelineData.duration; - this._isComplete = false; - this._blendEnabled = false; - this._tweenColor = false; - this._currentFrameIndex = -1; - this._currentTime = -1; - this._tweenEasing = NaN; - this._weight = 1; - switch (this._timelineData.frameList.length) { - case 0: - this._updateMode = 0; - break; - case 1: - this._updateMode = 1; - break; - default: - this._updateMode = -1; - break; - } - }; - p.updateFade = function (progress) { - }; - p.update = function (progress) { - if (this._updateMode == -1) { - this.updateMultipleFrame(progress); - } - else if (this._updateMode == 1) { - this._updateMode = 0; - this.updateSingleFrame(); - } - }; - p.updateMultipleFrame = function (progress) { - var currentPlayTimes = 0; - progress /= this._timelineData.scale; - progress += this._timelineData.offset; - var currentTime = this._totalTime * progress; - var playTimes = this._animationState.playTimes; - if (playTimes == 0) { - this._isComplete = false; - currentPlayTimes = Math.ceil(Math.abs(currentTime) / this._totalTime) || 1; - currentTime -= Math.floor(currentTime / this._totalTime) * this._totalTime; - if (currentTime < 0) { - currentTime += this._totalTime; - } - } - else { - var totalTimes = playTimes * this._totalTime; - if (currentTime >= totalTimes) { - currentTime = totalTimes; - this._isComplete = true; - } - else if (currentTime <= -totalTimes) { - currentTime = -totalTimes; - this._isComplete = true; - } - else { - this._isComplete = false; - } - if (currentTime < 0) { - currentTime += totalTimes; - } - currentPlayTimes = Math.ceil(currentTime / this._totalTime) || 1; - if (this._isComplete) { - currentTime = this._totalTime; - } - else { - currentTime -= Math.floor(currentTime / this._totalTime) * this._totalTime; - } - } - if (this._currentTime != currentTime) { - this._currentTime = currentTime; - var frameList = this._timelineData.frameList; - var prevFrame; - var currentFrame; - for (var i = 0, l = this._timelineData.frameList.length; i < l; ++i) { - if (this._currentFrameIndex < 0) { - this._currentFrameIndex = 0; - } - else if (this._currentTime < this._currentFramePosition || this._currentTime >= this._currentFramePosition + this._currentFrameDuration) { - this._currentFrameIndex++; - if (this._currentFrameIndex >= frameList.length) { - if (this._isComplete) { - this._currentFrameIndex--; - break; - } - else { - this._currentFrameIndex = 0; - } - } - } - else { - break; - } - currentFrame = (frameList[this._currentFrameIndex]); - if (prevFrame) { - this._slot._arriveAtFrame(prevFrame, this._animationState); - } - this._currentFrameDuration = currentFrame.duration; - this._currentFramePosition = currentFrame.position; - prevFrame = currentFrame; - } - if (currentFrame) { - this._slot._arriveAtFrame(currentFrame, this._animationState); - this._blendEnabled = currentFrame.displayIndex >= 0; - if (this._blendEnabled) { - this.updateToNextFrame(currentPlayTimes); - } - else { - this._tweenEasing = NaN; - this._tweenColor = false; - } - } - if (this._blendEnabled) { - this.updateTween(); - } - } - }; - p.updateToNextFrame = function (currentPlayTimes) { - if (currentPlayTimes === void 0) { currentPlayTimes = 0; } - var nextFrameIndex = this._currentFrameIndex + 1; - if (nextFrameIndex >= this._timelineData.frameList.length) { - nextFrameIndex = 0; - } - var currentFrame = (this._timelineData.frameList[this._currentFrameIndex]); - var nextFrame = (this._timelineData.frameList[nextFrameIndex]); - var tweenEnabled = false; - if (nextFrameIndex == 0 && - (this._animationState.playTimes && - this._animationState.currentPlayTimes >= this._animationState.playTimes && - ((this._currentFramePosition + this._currentFrameDuration) / this._totalTime + currentPlayTimes - this._timelineData.offset) * this._timelineData.scale > 0.999999)) { - this._tweenEasing = NaN; - tweenEnabled = false; - } - else if (currentFrame.displayIndex < 0 || nextFrame.displayIndex < 0) { - this._tweenEasing = NaN; - tweenEnabled = false; - } - else if (this._animationState.autoTween) { - this._tweenEasing = this._animationState.animationData.tweenEasing; - if (isNaN(this._tweenEasing)) { - this._tweenEasing = currentFrame.tweenEasing; - this._tweenCurve = currentFrame.curve; - if (isNaN(this._tweenEasing) && this._tweenCurve == null) { - tweenEnabled = false; - } - else { - if (this._tweenEasing == 10) { - this._tweenEasing = 0; - } - tweenEnabled = true; - } - } - else { - tweenEnabled = true; - } - } - else { - this._tweenEasing = currentFrame.tweenEasing; - this._tweenCurve = currentFrame.curve; - if ((isNaN(this._tweenEasing) || this._tweenEasing == 10) && this._tweenCurve == null) { - this._tweenEasing = NaN; - tweenEnabled = false; - } - else { - tweenEnabled = true; - } - } - if (tweenEnabled) { - if (currentFrame.color || nextFrame.color) { - dragonBones.ColorTransformUtil.minus(nextFrame.color || dragonBones.ColorTransformUtil.originalColor, currentFrame.color || dragonBones.ColorTransformUtil.originalColor, this._durationColor); - this._tweenColor = this._durationColor.alphaOffset != 0 || - this._durationColor.redOffset != 0 || - this._durationColor.greenOffset != 0 || - this._durationColor.blueOffset != 0 || - this._durationColor.alphaMultiplier != 0 || - this._durationColor.redMultiplier != 0 || - this._durationColor.greenMultiplier != 0 || - this._durationColor.blueMultiplier != 0; - } - else { - this._tweenColor = false; - } - } - else { - this._tweenColor = false; - } - if (!this._tweenColor) { - var targetColor; - var colorChanged; - if (currentFrame.color) { - targetColor = currentFrame.color; - colorChanged = true; - } - else { - targetColor = dragonBones.ColorTransformUtil.originalColor; - colorChanged = false; - } - if ((this._slot._isColorChanged || colorChanged)) { - if (!dragonBones.ColorTransformUtil.isEqual(this._slot._colorTransform, targetColor)) { - this._slot._updateDisplayColor(targetColor.alphaOffset, targetColor.redOffset, targetColor.greenOffset, targetColor.blueOffset, targetColor.alphaMultiplier, targetColor.redMultiplier, targetColor.greenMultiplier, targetColor.blueMultiplier, colorChanged); - } - } - } - }; - p.updateTween = function () { - var currentFrame = (this._timelineData.frameList[this._currentFrameIndex]); - if (this._tweenColor) { - var progress = (this._currentTime - this._currentFramePosition) / this._currentFrameDuration; - if (this._tweenCurve != null) { - progress = this._tweenCurve.getValueByProgress(progress); - } - else if (this._tweenEasing) { - progress = dragonBones.MathUtil.getEaseValue(progress, this._tweenEasing); - } - if (currentFrame.color) { - this._slot._updateDisplayColor(currentFrame.color.alphaOffset + this._durationColor.alphaOffset * progress, currentFrame.color.redOffset + this._durationColor.redOffset * progress, currentFrame.color.greenOffset + this._durationColor.greenOffset * progress, currentFrame.color.blueOffset + this._durationColor.blueOffset * progress, currentFrame.color.alphaMultiplier + this._durationColor.alphaMultiplier * progress, currentFrame.color.redMultiplier + this._durationColor.redMultiplier * progress, currentFrame.color.greenMultiplier + this._durationColor.greenMultiplier * progress, currentFrame.color.blueMultiplier + this._durationColor.blueMultiplier * progress, true); - } - else { - this._slot._updateDisplayColor(this._durationColor.alphaOffset * progress, this._durationColor.redOffset * progress, this._durationColor.greenOffset * progress, this._durationColor.blueOffset * progress, this._durationColor.alphaMultiplier * progress + 1, this._durationColor.redMultiplier * progress + 1, this._durationColor.greenMultiplier * progress + 1, this._durationColor.blueMultiplier * progress + 1, true); - } - } - }; - p.updateSingleFrame = function () { - var currentFrame = (this._timelineData.frameList[0]); - this._slot._arriveAtFrame(currentFrame, this._animationState); - this._isComplete = true; - this._tweenEasing = NaN; - this._tweenColor = false; - this._blendEnabled = currentFrame.displayIndex >= 0; - if (this._blendEnabled) { - var targetColor; - var colorChanged; - if (currentFrame.color) { - targetColor = currentFrame.color; - colorChanged = true; - } - else { - targetColor = dragonBones.ColorTransformUtil.originalColor; - colorChanged = false; - } - if ((this._slot._isColorChanged || colorChanged)) { - if (!dragonBones.ColorTransformUtil.isEqual(this._slot._colorTransform, targetColor)) { - this._slot._updateDisplayColor(targetColor.alphaOffset, targetColor.redOffset, targetColor.greenOffset, targetColor.blueOffset, targetColor.alphaMultiplier, targetColor.redMultiplier, targetColor.greenMultiplier, targetColor.blueMultiplier, colorChanged); - } - } - } - }; - FastSlotTimelineState.HALF_PI = Math.PI * 0.5; - FastSlotTimelineState.DOUBLE_PI = Math.PI * 2; - FastSlotTimelineState._pool = []; - return FastSlotTimelineState; - })(); - dragonBones.FastSlotTimelineState = FastSlotTimelineState; - egret.registerClass(FastSlotTimelineState,'dragonBones.FastSlotTimelineState'); -})(dragonBones || (dragonBones = {})); - -(function(){ - var DataParser = dragonBones.DataParser; - var TextureData = dragonBones.TextureData; - - var TextureAtlas = function(texture, textureAtlasRawData, scale){ - this._textureDatas = {}; - this.scale = scale||1; - this.texture = texture; - this.name = textureAtlasRawData.name; - - this.parseData(textureAtlasRawData); - }; - - TextureAtlas.rotatedDic = {}; - - TextureAtlas.prototype = { - constructor:TextureAtlas, - getTexture:function(fullName){ - var data = this._textureDatas[fullName]; - if(data){ - data.texture = this.texture; - if(data.rotated) - { - TextureAtlas.rotatedDic[fullName] = 1; - } - } - return data; - }, - dispose:function(){ - this.texture = null; - this._textureDatas = {}; - }, - getRegion:function(subTextureName){ - var textureData = this._textureDatas[subTextureName]; - if(textureData && textureData instanceof TextureData){ - return textureData.region; - } - return null; - }, - getFrame:function(subTextureName){ - var textureData = this._textureDatas[subTextureName]; - if(textureData && textureData instanceof TextureData) - { - return textureData.frame; - } - return null; - }, - parseData:function(textureAtlasRawData){ - this._textureDatas = DataParser.parseTextureAtlasData(textureAtlasRawData, this.scale); - } - }; - dragonBones.TextureAtlas = TextureAtlas; -})(); - -/** - * Hilo - * Copyright 2015 alibaba.com - * Licensed under the MIT License - */ - -/** - * HiloSlot - */ -(function(superClass) { - var RAD2DEG = 180/Math.PI; - var TextureAtlas = dragonBones.TextureAtlas; - var HiloSlot = function() { - superClass.call(this, this); - this._display = null; - }; - - __extends(HiloSlot, superClass, { - dispose: function() { - if (this._displayList) { - var length = this._displayList.length; - for (var i = 0; i < length; i++) { - var content = this._displayList[i]; - if (content instanceof Armature) { - content.dispose(); - } - } - } - - superClass.prototype.dispose(); - this._display = null; - }, - _updateDisplay: function(value) { - this._display = value; - }, - _getDisplayIndex: function() { - if (this._display && this._display.parent) { - return this._display.parent.getChildIndex(this._display); - } - return -1; - }, - _addDisplayToContainer: function(container, index) { - if (this._display && container) { - if(index){ - container.addChildAt(this._display, index); - } - else{ - container.addChild(this._display); - } - } - }, - _removeDisplayFromContainer: function() { - if (this._display && this._display.parent) { - this._display.parent.removeChild(this._display); - } - }, - _updateTransform: function() { - if (this._display) { - this._display.x = this._global.x; - this._display.y = this._global.y; - this._display.scaleX = this._global.scaleX; - this._display.scaleY = this._global.scaleY; - this._display.rotation = this._global.skewX * RAD2DEG; - } - }, - _updateDisplayVisible: function(value) { - if (this._display && this._parent) { - this._display.visible = this._parent._visible && this._visible && value; - } - }, - _updateDisplayColor: function(aOffset, rOffset, gOffset, bOffset, aMultiplier, rMultiplier, gMultiplier, bMultiplier, colorChange) { - superClass.prototype._updateDisplayColor.call(this, aOffset, rOffset, gOffset, bOffset, aMultiplier, rMultiplier, gMultiplier, bMultiplier, colorChange); - if (this._display) { - this._display.alpha = aMultiplier; - } - }, - _updateDisplayBlendMode: function(value) { - // if (this._display && value) { - // this._display.blendMode = value; - // } - }, - _calculateRelativeParentTransform: function() { - this._global.scaleX = this._origin.scaleX * this._offset.scaleX; - this._global.scaleY = this._origin.scaleY * this._offset.scaleY; - this._global.skewX = this._origin.skewX + this._offset.skewX; - this._global.skewY = this._origin.skewY + this._offset.skewY; - this._global.x = this._origin.x + this._offset.x + this._parent._tweenPivot.x; - this._global.y = this._origin.y + this._offset.y + this._parent._tweenPivot.y; - - if (this._displayDataList && - this._currentDisplayIndex >= 0 && - this._displayDataList[this._currentDisplayIndex] && - TextureAtlas.rotatedDic[this._displayDataList[this._currentDisplayIndex].name] == 1) { - this._global.skewX -= 1.57; - this._global.skewY -= 1.57; - } - } - }); - - dragonBones.HiloSlot = HiloSlot; -})(dragonBones.Slot); - -/** - * HiloFactory - */ -(function(superClass){ - var Armature = dragonBones.Armature; - var HiloSlot = dragonBones.HiloSlot; - - var HiloFactory = function(){ - superClass.call(this, this); - }; - __extends(HiloFactory, superClass, { - _generateArmature:function(){ - var armature = new Armature(new Hilo.Container); - return armature; - }, - _generateSlot:function(){ - var slot = new HiloSlot(); - return slot; - }, - _generateDisplay:function(textureAtlas, fullName, pivotX, pivotY){ - var texture = textureAtlas.getTexture(fullName); - var region = texture.region; - var bitmap = new Hilo.Bitmap({ - image:textureAtlas.texture, - rect:[region.x, region.y, region.width, region.height] - }); - - if(isNaN(pivotX)||isNaN(pivotY)) - { - var subTextureFrame = textureAtlas.getFrame(fullName); - if(subTextureFrame != null) - { - pivotX = (subTextureFrame.width/2) + subTextureFrame.x; - pivotY = (subTextureFrame.height/2) + subTextureFrame.y; - } - else - { - pivotX = texture.region.width/2; - pivotY = texture.region.height/2; - } - } - bitmap.pivotX = pivotX; - bitmap.pivotY = pivotY; - return bitmap; - } - }); - - dragonBones.HiloFactory = HiloFactory; -}(dragonBones.BaseFactory)); - -dragonBones.tick = function(dt){ - dragonBones.WorldClock.clock.advanceTime(dt * 0.001); -}; +if(!window.egret){var egret_strings={4001:"Abstract class can not be instantiated!",4002:"Unnamed data!",4003:"Nonsupport version!"},Event=function(t,i,e,a){this.type=t,this.bubbles=i||!1,this.cancelable=e||!1,this.data=a},EventDispatcher=function(t){this._listenerDict={}};EventDispatcher.prototype={constructor:EventDispatcher,addEventListener:function(t,i,e,a,n,s){this._listenerDict[t]||(this._listenerDict[t]=[]),this._listenerDict[t].push({listener:i,thisObject:e,useCapture:a,priority:n,dispatchOnce:s})},once:function(t,i,e,a,n){this.addEventListener(t,i,e,a,n,!0)},removeEventListener:function(t,i,e,a){if(t)if(i){var n=this._listenerDict[t],s=n.indexOf(i);s>-1&&n.splice(s,1)}else this._listenerDict[t]&&(this._listenerDict[t].length=0);else this._listenerDict={}},hasEventListener:function(t){return this._listenerDict[t]},dispatchEvent:function(t){if(t&&t.type&&this._listenerDict[t.type])for(var i=this._listenerDict[t.type],e=i.slice(),a=0;a-1&&i.splice(s,1)}n.listener&&n.listener.call(n.thisObject||this,t)}},willTrigger:function(t){return this.hasEventListener(t)}},window.egret={getString:function(t){return egret_strings[t]||"no string code"},Event:Event,EventDispatcher:EventDispatcher,registerClass:function(t,i,e){var a=t.prototype;a.__class__=i;var n=[i];e&&(n=n.concat(e));var s=a.__types__;if(a.__types__)for(var r=s.length,o=0;o=0?h.setCurrentTime(h.totalTime*a):h.setCurrentTime(e),h.stop(),h},n.play=function(){this._animationDataList&&0!=this._animationDataList.length&&(this._lastAnimationState?this._isPlaying?this.gotoAndPlay(this._lastAnimationState.name):this._isPlaying=!0:this.gotoAndPlay(this._animationDataList[0].name))},n.stop=function(){this._isPlaying=!1},n.getState=function(t,i){void 0===i&&(i=0);for(var e=this._animationStateList.length;e--;){var a=this._animationStateList[e];if(a.name==t&&a.layer==i)return a}return null},n.hasAnimation=function(t){for(var i=this._animationDataList.length;i--;)if(this._animationDataList[i].name==t)return!0;return!1},n._advanceTime=function(t){if(this._isPlaying){var i=!1;t*=this._timeScale;for(var e=this._animationStateList.length;e--;){var a=this._animationStateList[e];a._advanceTime(t)?this.removeState(a):1!=a.fadeState&&(i=!0)}this._isFading=i}},n._updateAnimationStates=function(){for(var t=this._animationStateList.length;t--;)this._animationStateList[t]._updateTimelineStates()},n.addState=function(t){this._animationStateList.indexOf(t)<0&&(this._animationStateList.unshift(t),this._animationStateCount=this._animationStateList.length)},n.removeState=function(i){var e=this._animationStateList.indexOf(i);e>=0&&(this._animationStateList.splice(e,1),t.AnimationState._returnObject(i),this._lastAnimationState==i&&(this._animationStateList.length>0?this._lastAnimationState=this._animationStateList[0]:this._lastAnimationState=null),this._animationStateCount=this._animationStateList.length)},e(n,"movementList",function(){return this._animationList}),e(n,"movementID",function(){return this.lastAnimationName}),e(n,"lastAnimationState",function(){return this._lastAnimationState}),e(n,"lastAnimationName",function(){return this._lastAnimationState?this._lastAnimationState.name:null}),e(n,"animationList",function(){return this._animationList}),e(n,"isPlaying",function(){return this._isPlaying&&!this.isComplete}),e(n,"isComplete",function(){if(this._lastAnimationState){if(!this._lastAnimationState.isComplete)return!1;for(var t=this._animationStateList.length;t--;)if(!this._animationStateList[t].isComplete)return!1;return!0}return!0}),e(n,"timeScale",function(){return this._timeScale},function(t){(isNaN(t)||t<0)&&(t=1),this._timeScale=t}),e(n,"animationDataList",function(){return this._animationDataList},function(t){this._animationDataList=t,this._animationList.length=0;for(var i=0,e=this._animationDataList.length;i=0},n.addBoneMask=function(t,i){if(void 0===i&&(i=!0),this.addBoneToBoneMask(t),i){var e=this._armature.getBone(t);if(e)for(var a=this._armature.getBones(!1),n=a.length;n--;){var s=a[n];e.contains(s)&&this.addBoneToBoneMask(s.name)}}return this._updateTimelineStates(),this},n.removeBoneMask=function(t,i){if(void 0===i&&(i=!0),this.removeBoneFromBoneMask(t),i){var e=this._armature.getBone(t);if(e)for(var a=this._armature.getBones(!1),n=a.length;n--;){var s=a[n];e.contains(s)&&this.removeBoneFromBoneMask(s.name)}}return this._updateTimelineStates(),this},n.removeAllMixingTransform=function(){return this._boneMasks.length=0,this._updateTimelineStates(),this},n.addBoneToBoneMask=function(t){this._clip.getTimeline(t)&&this._boneMasks.indexOf(t)<0&&this._boneMasks.push(t)},n.removeBoneFromBoneMask=function(t){var i=this._boneMasks.indexOf(t);i>=0&&this._boneMasks.splice(i,1)},n._updateTimelineStates=function(){for(var t,i,e,a=this._timelineStateList.length;a--;)t=this._timelineStateList[a],this._armature.getBone(t.name)||this.removeTimelineState(t);for(a=this._slotTimelineStateList.length;a--;)i=this._slotTimelineStateList[a],this._armature.getSlot(i.name)||this.removeSlotTimelineState(i);if(this._boneMasks.length>0){for(a=this._timelineStateList.length;a--;)t=this._timelineStateList[a],this._boneMasks.indexOf(t.name)<0&&this.removeTimelineState(t);for(a=0,e=this._boneMasks.length;athis._fadeTotalTime/this._timeScale-(this._fadeCurrentTime-this._fadeBeginTime))return this}else for(var e=0,a=this._timelineStateList.length;e=0?t*this._timeScale:0,this.displayControl=!1,this},n._advanceTime=function(t){return t*=this._timeScale,this.advanceFadeTime(t),this._fadeWeight&&this.advanceTimelinesTime(t),this._isFadeOut&&1==this._fadeState},n.advanceFadeTime=function(i){var e=!1,a=!1;if(this._fadeBeginTime>=0){var n=this._fadeState;this._fadeCurrentTime+=i<0?-i:i,this._fadeCurrentTime>=this._fadeBeginTime+this._fadeTotalTime?(1!=this._fadeWeight&&0!=this._fadeWeight||(n=1,this._pausePlayheadInFade&&(this._pausePlayheadInFade=!1,this._currentTime=-1)),this._fadeWeight=this._isFadeOut?0:1):this._fadeCurrentTime>=this._fadeBeginTime?(n=0,this._fadeWeight=(this._fadeCurrentTime-this._fadeBeginTime)/this._fadeTotalTime*this._fadeTotalWeight,this._isFadeOut&&(this._fadeWeight=this._fadeTotalWeight-this._fadeWeight)):(n=-1,this._fadeWeight=this._isFadeOut?1:0),this._fadeState!=n&&(this._fadeState==-1&&(e=!0),1==n&&(a=!0),this._fadeState=n)}var s;e&&(this._isFadeOut?this._armature.hasEventListener(t.AnimationEvent.FADE_OUT)&&(s=new t.AnimationEvent(t.AnimationEvent.FADE_OUT),s.animationState=this,this._armature._eventList.push(s)):(this.hideBones(),this._armature.hasEventListener(t.AnimationEvent.FADE_IN)&&(s=new t.AnimationEvent(t.AnimationEvent.FADE_IN),s.animationState=this,this._armature._eventList.push(s)))),a&&(this._isFadeOut?this._armature.hasEventListener(t.AnimationEvent.FADE_OUT_COMPLETE)&&(s=new t.AnimationEvent(t.AnimationEvent.FADE_OUT_COMPLETE),s.animationState=this,this._armature._eventList.push(s)):this._armature.hasEventListener(t.AnimationEvent.FADE_IN_COMPLETE)&&(s=new t.AnimationEvent(t.AnimationEvent.FADE_IN_COMPLETE),s.animationState=this,this._armature._eventList.push(s)))},n.advanceTimelinesTime=function(i){this._isPlaying&&!this._pausePlayheadInFade&&(this._time+=i);var e=!1,a=!1,n=!1,s=!1,r=0,o=1e3*this._time;if(0==this._playTimes)s=!1,r=Math.ceil(Math.abs(o)/this._totalTime)||1,o-=o>=0?Math.floor(o/this._totalTime)*this._totalTime:Math.ceil(o/this._totalTime)*this._totalTime,o<0&&(o+=this._totalTime);else{var l=this._playTimes*this._totalTime;o>=l?(o=l,s=!0):o<=-l?(o=-l,s=!0):s=!1,o<0&&(o+=l),r=Math.ceil(o/this._totalTime)||1,o-=o>=0?Math.floor(o/this._totalTime)*this._totalTime:Math.ceil(o/this._totalTime)*this._totalTime,s&&(o=this._totalTime)}this._isComplete=s;var h=1e3*this._time/this._totalTime,_=0,u=0;for(_=0,u=this._timelineStateList.length;_0&&r>1&&(n=!0),this._currentPlayTimes=r),this._currentTime<0&&(e=!0),this._isComplete&&(a=!0),this._lastTime=this._currentTime,this._currentTime=o,this.updateMainTimeline(s));var d;e&&this._armature.hasEventListener(t.AnimationEvent.START)&&(d=new t.AnimationEvent(t.AnimationEvent.START),d.animationState=this,this._armature._eventList.push(d)),a?(this._armature.hasEventListener(t.AnimationEvent.COMPLETE)&&(d=new t.AnimationEvent(t.AnimationEvent.COMPLETE),d.animationState=this,this._armature._eventList.push(d)),this.autoFadeOut&&this.fadeOut(this.fadeOutTime,!0)):n&&this._armature.hasEventListener(t.AnimationEvent.LOOP_COMPLETE)&&(d=new t.AnimationEvent(t.AnimationEvent.LOOP_COMPLETE),d.animationState=this,this._armature._eventList.push(d))},n.updateMainTimeline=function(t){var i=this._clip.frameList;if(i.length>0){for(var e,a,n=0,s=this._clip.frameList.length;n=this._currentFramePosition+this._currentFrameDuration||this._currentTime=i.length){if(t){this._currentFrameIndex--;break}this._currentFrameIndex=0}}a=i[this._currentFrameIndex],e&&this._armature._arriveAtFrame(e,null,this,!0),this._currentFrameDuration=a.duration,this._currentFramePosition=a.position,e=a}a&&this._armature._arriveAtFrame(a,null,this,!1)}},n.hideBones=function(){for(var t=0,i=this._clip.hideTimelineNameMap.length;t=0&&(this.fadeOutTime=i*this._timeScale),this},n.setWeight=function(t){return(isNaN(t)||t<0)&&(t=1),this.weight=t,this},n.setFrameTween=function(t,i){return this.autoTween=t,this.lastFrameAutoTween=i,this},n.setCurrentTime=function(t){return(t<0||isNaN(t))&&(t=0),this._time=t,this._currentTime=1e3*this._time,this},n.setTimeScale=function(t){return(isNaN(t)||t==1/0)&&(t=1),this._timeScale=t,this},n.setPlayTimes=function(t){return void 0===t&&(t=0),Math.round(.001*this._totalTime*this._clip.frameRate)<2?this._playTimes=t<0?-1:1:this._playTimes=t<0?-t:t,this.autoFadeOut=t<0,this},e(n,"name",function(){return this._name}),e(n,"layer",function(){return this._layer}),e(n,"group",function(){return this._group}),e(n,"clip",function(){return this._clip}),e(n,"isComplete",function(){return this._isComplete}),e(n,"isPlaying",function(){return this._isPlaying&&!this._isComplete}),e(n,"currentPlayTimes",function(){return this._currentPlayTimes<0?0:this._currentPlayTimes}),e(n,"totalTime",function(){return.001*this._totalTime}),e(n,"currentTime",function(){return this._currentTime<0?0:.001*this._currentTime}),e(n,"fadeWeight",function(){return this._fadeWeight}),e(n,"fadeState",function(){return this._fadeState}),e(n,"fadeTotalTime",function(){return this._fadeTotalTime}),e(n,"timeScale",function(){return this._timeScale}),e(n,"playTimes",function(){return this._playTimes}),i._pool=[],i}();t.AnimationState=i,egret.registerClass(i,"dragonBones.AnimationState")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function i(){this._totalTime=0,this._currentTime=0,this._currentFrameIndex=0,this._currentFramePosition=0,this._currentFrameDuration=0,this._updateMode=0,this._durationColor=new t.ColorTransform}var e=(__define,i),a=e.prototype;return i._borrowObject=function(){return 0==i._pool.length?new i:i._pool.pop()},i._returnObject=function(t){i._pool.indexOf(t)<0&&(i._pool[i._pool.length]=t),t.clear()},i._clear=function(){for(var t=i._pool.length;t--;)i._pool[t].clear();i._pool.length=0},a.clear=function(){this._slot&&(this._slot._removeState(this),this._slot=null),this._armature=null,this._animation=null,this._animationState=null,this._timelineData=null},a._fadeIn=function(t,i,e){switch(this._slot=t,this._armature=this._slot.armature,this._animation=this._armature.animation,this._animationState=i,this._timelineData=e,this.name=e.name,this._totalTime=this._timelineData.duration,this._rawAnimationScale=this._animationState.clip.scale,this._isComplete=!1,this._blendEnabled=!1,this._tweenColor=!1,this._currentFrameIndex=-1,this._currentTime=-1,this._tweenEasing=NaN,this._weight=1,this._timelineData.frameList.length){case 0:this._updateMode=0;break;case 1:this._updateMode=1;break;default:this._updateMode=-1}this._slot._addState(this)},a._fadeOut=function(){},a._update=function(t){this._updateMode==-1?this.updateMultipleFrame(t):1==this._updateMode&&(this._updateMode=0,this.updateSingleFrame())},a.updateMultipleFrame=function(t){var i=0;t/=this._timelineData.scale,t+=this._timelineData.offset;var e=this._totalTime*t,a=this._animationState.playTimes;if(0==a)this._isComplete=!1,i=Math.ceil(Math.abs(e)/this._totalTime)||1,e-=e>=0?Math.floor(e/this._totalTime)*this._totalTime:Math.ceil(e/this._totalTime)*this._totalTime,e<0&&(e+=this._totalTime);else{var n=a*this._totalTime;e>=n?(e=n,this._isComplete=!0):e<=-n?(e=-n,this._isComplete=!0):this._isComplete=!1,e<0&&(e+=n),i=Math.ceil(e/this._totalTime)||1,this._isComplete?e=this._totalTime:e-=e>=0?Math.floor(e/this._totalTime)*this._totalTime:Math.ceil(e/this._totalTime)*this._totalTime}if(this._currentTime!=e){this._currentTime=e;for(var s,r,o=this._timelineData.frameList,l=0,h=this._timelineData.frameList.length;l=this._currentFramePosition+this._currentFrameDuration))break;if(this._currentFrameIndex++,this._currentFrameIndex>=o.length){if(this._isComplete){this._currentFrameIndex--;break}this._currentFrameIndex=0}}r=o[this._currentFrameIndex],s&&this._slot._arriveAtFrame(s,this,this._animationState,!0),this._currentFrameDuration=r.duration,this._currentFramePosition=r.position,s=r}r&&(this._slot._arriveAtFrame(r,this,this._animationState,!1),this._blendEnabled=r.displayIndex>=0,this._blendEnabled?this.updateToNextFrame(i):(this._tweenEasing=NaN,this._tweenColor=!1)),this._blendEnabled&&this.updateTween()}},a.updateToNextFrame=function(t){void 0===t&&(t=0);var i=this._currentFrameIndex+1;i>=this._timelineData.frameList.length&&(i=0);var e=this._timelineData.frameList[this._currentFrameIndex],a=this._timelineData.frameList[i],n=!1;0==i&&(!this._animationState.lastFrameAutoTween||this._animationState.playTimes&&this._animationState.currentPlayTimes>=this._animationState.playTimes&&((this._currentFramePosition+this._currentFrameDuration)/this._totalTime+t-this._timelineData.offset)*this._timelineData.scale>.999999)?(this._tweenEasing=NaN,n=!1):e.displayIndex<0||a.displayIndex<0?(this._tweenEasing=NaN,n=!1):this._animationState.autoTween?(this._tweenEasing=this._animationState.clip.tweenEasing,isNaN(this._tweenEasing)?(this._tweenEasing=e.tweenEasing,this._tweenCurve=e.curve,isNaN(this._tweenEasing)&&null==this._tweenCurve?n=!1:(10==this._tweenEasing&&(this._tweenEasing=0),n=!0)):n=!0):(this._tweenEasing=e.tweenEasing,this._tweenCurve=e.curve,!isNaN(this._tweenEasing)&&10!=this._tweenEasing||null!=this._tweenCurve?n=!0:(this._tweenEasing=NaN,n=!1)),n?e.color&&a.color?(this._durationColor.alphaOffset=a.color.alphaOffset-e.color.alphaOffset,this._durationColor.redOffset=a.color.redOffset-e.color.redOffset,this._durationColor.greenOffset=a.color.greenOffset-e.color.greenOffset,this._durationColor.blueOffset=a.color.blueOffset-e.color.blueOffset,this._durationColor.alphaMultiplier=a.color.alphaMultiplier-e.color.alphaMultiplier,this._durationColor.redMultiplier=a.color.redMultiplier-e.color.redMultiplier,this._durationColor.greenMultiplier=a.color.greenMultiplier-e.color.greenMultiplier,this._durationColor.blueMultiplier=a.color.blueMultiplier-e.color.blueMultiplier,this._durationColor.alphaOffset||this._durationColor.redOffset||this._durationColor.greenOffset||this._durationColor.blueOffset||this._durationColor.alphaMultiplier||this._durationColor.redMultiplier||this._durationColor.greenMultiplier||this._durationColor.blueMultiplier?this._tweenColor=!0:this._tweenColor=!1):e.color?(this._tweenColor=!0,this._durationColor.alphaOffset=-e.color.alphaOffset,this._durationColor.redOffset=-e.color.redOffset,this._durationColor.greenOffset=-e.color.greenOffset,this._durationColor.blueOffset=-e.color.blueOffset,this._durationColor.alphaMultiplier=1-e.color.alphaMultiplier,this._durationColor.redMultiplier=1-e.color.redMultiplier,this._durationColor.greenMultiplier=1-e.color.greenMultiplier,this._durationColor.blueMultiplier=1-e.color.blueMultiplier):a.color?(this._tweenColor=!0,this._durationColor.alphaOffset=a.color.alphaOffset,this._durationColor.redOffset=a.color.redOffset,this._durationColor.greenOffset=a.color.greenOffset,this._durationColor.blueOffset=a.color.blueOffset,this._durationColor.alphaMultiplier=a.color.alphaMultiplier-1,this._durationColor.redMultiplier=a.color.redMultiplier-1,this._durationColor.greenMultiplier=a.color.greenMultiplier-1,this._durationColor.blueMultiplier=a.color.blueMultiplier-1):this._tweenColor=!1:this._tweenColor=!1,!this._tweenColor&&this._animationState.displayControl&&(e.color?this._slot._updateDisplayColor(e.color.alphaOffset,e.color.redOffset,e.color.greenOffset,e.color.blueOffset,e.color.alphaMultiplier,e.color.redMultiplier,e.color.greenMultiplier,e.color.blueMultiplier,!0):this._slot._isColorChanged&&this._slot._updateDisplayColor(0,0,0,0,1,1,1,1,!1))},a.updateTween=function(){var i=this._timelineData.frameList[this._currentFrameIndex];if(this._tweenColor&&this._animationState.displayControl){var e=(this._currentTime-this._currentFramePosition)/this._currentFrameDuration;null!=this._tweenCurve?e=this._tweenCurve.getValueByProgress(e):this._tweenEasing&&(e=t.MathUtil.getEaseValue(e,this._tweenEasing)),i.color?this._slot._updateDisplayColor(i.color.alphaOffset+this._durationColor.alphaOffset*e,i.color.redOffset+this._durationColor.redOffset*e,i.color.greenOffset+this._durationColor.greenOffset*e,i.color.blueOffset+this._durationColor.blueOffset*e,i.color.alphaMultiplier+this._durationColor.alphaMultiplier*e,i.color.redMultiplier+this._durationColor.redMultiplier*e,i.color.greenMultiplier+this._durationColor.greenMultiplier*e,i.color.blueMultiplier+this._durationColor.blueMultiplier*e,!0):this._slot._updateDisplayColor(this._durationColor.alphaOffset*e,this._durationColor.redOffset*e,this._durationColor.greenOffset*e,this._durationColor.blueOffset*e,1+this._durationColor.alphaMultiplier*e,1+this._durationColor.redMultiplier*e,1+this._durationColor.greenMultiplier*e,1+this._durationColor.blueMultiplier*e,!0)}},a.updateSingleFrame=function(){var t=this._timelineData.frameList[0];this._slot._arriveAtFrame(t,this,this._animationState,!1),this._isComplete=!0,this._tweenEasing=NaN,this._tweenColor=!1,this._blendEnabled=t.displayIndex>=0,this._blendEnabled&&this._animationState.displayControl&&(t.color?this._slot._updateDisplayColor(t.color.alphaOffset,t.color.redOffset,t.color.greenOffset,t.color.blueOffset,t.color.alphaMultiplier,t.color.redMultiplier,t.color.greenMultiplier,t.color.blueMultiplier,!0):this._slot._isColorChanged&&this._slot._updateDisplayColor(0,0,0,0,1,1,1,1,!1))},i.HALF_PI=.5*Math.PI,i.DOUBLE_PI=2*Math.PI,i._pool=[],i}();t.SlotTimelineState=i,egret.registerClass(i,"dragonBones.SlotTimelineState")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function i(){this._totalTime=0,this._currentTime=0,this._lastTime=0,this._currentFrameIndex=0,this._currentFramePosition=0,this._currentFrameDuration=0,this._updateMode=0,this._transform=new t.DBTransform,this._pivot=new t.Point,this._durationTransform=new t.DBTransform,this._durationPivot=new t.Point,this._durationColor=new t.ColorTransform}var e=(__define,i),a=e.prototype;return i._borrowObject=function(){return 0==i._pool.length?new i:i._pool.pop()},i._returnObject=function(t){i._pool.indexOf(t)<0&&(i._pool[i._pool.length]=t),t.clear()},i._clear=function(){for(var t=i._pool.length;t--;)i._pool[t].clear();i._pool.length=0},a.clear=function(){this._bone&&(this._bone._removeState(this),this._bone=null),this._armature=null,this._animation=null,this._animationState=null,this._timelineData=null,this._originTransform=null,this._originPivot=null},a._fadeIn=function(t,i,e){switch(this._bone=t,this._armature=this._bone.armature,this._animation=this._armature.animation,this._animationState=i,this._timelineData=e,this._originTransform=this._timelineData.originTransform,this._originPivot=this._timelineData.originPivot,this.name=e.name,this._totalTime=this._timelineData.duration,this._rawAnimationScale=this._animationState.clip.scale,this._isComplete=!1,this._tweenTransform=!1,this._tweenScale=!1,this._currentFrameIndex=-1,this._currentTime=-1,this._tweenEasing=NaN,this._weight=1,this._transform.x=0,this._transform.y=0,this._transform.scaleX=1,this._transform.scaleY=1,this._transform.skewX=0,this._transform.skewY=0,this._pivot.x=0,this._pivot.y=0,this._durationTransform.x=0,this._durationTransform.y=0,this._durationTransform.scaleX=1,this._durationTransform.scaleY=1,this._durationTransform.skewX=0,this._durationTransform.skewY=0,this._durationPivot.x=0,this._durationPivot.y=0,this._timelineData.frameList.length){case 0:this._updateMode=0;break;case 1:this._updateMode=1;break;default:this._updateMode=-1}this._bone._addState(this)},a._fadeOut=function(){this._transform.skewX=t.TransformUtil.formatRadian(this._transform.skewX),this._transform.skewY=t.TransformUtil.formatRadian(this._transform.skewY)},a._update=function(t){this._updateMode==-1?this.updateMultipleFrame(t):1==this._updateMode&&(this._updateMode=0,this.updateSingleFrame())},a.updateMultipleFrame=function(t){var i=0;t/=this._timelineData.scale,t+=this._timelineData.offset;var e=this._totalTime*t,a=this._animationState.playTimes;if(0==a)this._isComplete=!1,i=Math.ceil(Math.abs(e)/this._totalTime)||1,e-=e>=0?Math.floor(e/this._totalTime)*this._totalTime:Math.ceil(e/this._totalTime)*this._totalTime,e<0&&(e+=this._totalTime);else{var n=a*this._totalTime;e>=n?(e=n,this._isComplete=!0):e<=-n?(e=-n,this._isComplete=!0):this._isComplete=!1,e<0&&(e+=n),i=Math.ceil(e/this._totalTime)||1,this._isComplete?e=this._totalTime:e-=e>=0?Math.floor(e/this._totalTime)*this._totalTime:Math.ceil(e/this._totalTime)*this._totalTime}if(this._currentTime!=e){this._lastTime=this._currentTime,this._currentTime=e;for(var s,r,o=this._timelineData.frameList,l=0,h=this._timelineData.frameList.length;l=this._currentFramePosition+this._currentFrameDuration||this._currentTime=o.length){if(this._isComplete){this._currentFrameIndex--;break}this._currentFrameIndex=0}}r=o[this._currentFrameIndex],s&&this._bone._arriveAtFrame(s,this,this._animationState,!0),this._currentFrameDuration=r.duration,this._currentFramePosition=r.position,s=r}r&&(this._bone._arriveAtFrame(r,this,this._animationState,!1),this.updateToNextFrame(i)),this.updateTween()}},a.updateToNextFrame=function(i){void 0===i&&(i=0);var e=this._currentFrameIndex+1;e>=this._timelineData.frameList.length&&(e=0);var a=this._timelineData.frameList[this._currentFrameIndex],n=this._timelineData.frameList[e],s=!1;0==e&&(!this._animationState.lastFrameAutoTween||this._animationState.playTimes&&this._animationState.currentPlayTimes>=this._animationState.playTimes&&((this._currentFramePosition+this._currentFrameDuration)/this._totalTime+i-this._timelineData.offset)*this._timelineData.scale>.999999)?(this._tweenEasing=NaN,s=!1):a.displayIndex<0||n.displayIndex<0?(this._tweenEasing=NaN,s=!1):this._animationState.autoTween?(this._tweenEasing=this._animationState.clip.tweenEasing,isNaN(this._tweenEasing)?(this._tweenEasing=a.tweenEasing,this._tweenCurve=a.curve,isNaN(this._tweenEasing)&&null==this._tweenCurve?s=!1:(10==this._tweenEasing&&(this._tweenEasing=0),s=!0)):s=!0):(this._tweenEasing=a.tweenEasing,this._tweenCurve=a.curve,!isNaN(this._tweenEasing)&&10!=this._tweenEasing||null!=this._tweenCurve?s=!0:(this._tweenEasing=NaN,s=!1)),s?(this._durationTransform.x=n.transform.x-a.transform.x,this._durationTransform.y=n.transform.y-a.transform.y,this._durationTransform.skewX=n.transform.skewX-a.transform.skewX, +this._durationTransform.skewY=n.transform.skewY-a.transform.skewY,this._durationTransform.scaleX=n.transform.scaleX-a.transform.scaleX+n.scaleOffset.x,this._durationTransform.scaleY=n.transform.scaleY-a.transform.scaleY+n.scaleOffset.y,this._durationTransform.normalizeRotation(),0==e&&(this._durationTransform.skewX=t.TransformUtil.formatRadian(this._durationTransform.skewX),this._durationTransform.skewY=t.TransformUtil.formatRadian(this._durationTransform.skewY)),this._durationPivot.x=n.pivot.x-a.pivot.x,this._durationPivot.y=n.pivot.y-a.pivot.y,this._durationTransform.x||this._durationTransform.y||this._durationTransform.skewX||this._durationTransform.skewY||this._durationTransform.scaleX||this._durationTransform.scaleY||this._durationPivot.x||this._durationPivot.y?(this._tweenTransform=!0,this._tweenScale=a.tweenScale):(this._tweenTransform=!1,this._tweenScale=!1)):(this._tweenTransform=!1,this._tweenScale=!1),this._tweenTransform?this._tweenScale||(this._animationState.additiveBlending?(this._transform.scaleX=a.transform.scaleX,this._transform.scaleY=a.transform.scaleY):(this._transform.scaleX=this._originTransform.scaleX*a.transform.scaleX,this._transform.scaleY=this._originTransform.scaleY*a.transform.scaleY)):(this._animationState.additiveBlending?(this._transform.x=a.transform.x,this._transform.y=a.transform.y,this._transform.skewX=a.transform.skewX,this._transform.skewY=a.transform.skewY,this._transform.scaleX=a.transform.scaleX,this._transform.scaleY=a.transform.scaleY,this._pivot.x=a.pivot.x,this._pivot.y=a.pivot.y):(this._transform.x=this._originTransform.x+a.transform.x,this._transform.y=this._originTransform.y+a.transform.y,this._transform.skewX=this._originTransform.skewX+a.transform.skewX,this._transform.skewY=this._originTransform.skewY+a.transform.skewY,this._transform.scaleX=this._originTransform.scaleX*a.transform.scaleX,this._transform.scaleY=this._originTransform.scaleY*a.transform.scaleY,this._pivot.x=this._originPivot.x+a.pivot.x,this._pivot.y=this._originPivot.y+a.pivot.y),this._bone.invalidUpdate())},a.updateTween=function(){var i=this._timelineData.frameList[this._currentFrameIndex];if(this._tweenTransform){var e=(this._currentTime-this._currentFramePosition)/this._currentFrameDuration;null!=this._tweenCurve?e=this._tweenCurve.getValueByProgress(e):this._tweenEasing&&(e=t.MathUtil.getEaseValue(e,this._tweenEasing));var a=i.transform,n=i.pivot;this._animationState.additiveBlending?(this._transform.x=a.x+this._durationTransform.x*e,this._transform.y=a.y+this._durationTransform.y*e,this._transform.skewX=a.skewX+this._durationTransform.skewX*e,this._transform.skewY=a.skewY+this._durationTransform.skewY*e,this._tweenScale&&(this._transform.scaleX=a.scaleX+this._durationTransform.scaleX*e,this._transform.scaleY=a.scaleY+this._durationTransform.scaleY*e),this._pivot.x=n.x+this._durationPivot.x*e,this._pivot.y=n.y+this._durationPivot.y*e):(this._transform.x=this._originTransform.x+a.x+this._durationTransform.x*e,this._transform.y=this._originTransform.y+a.y+this._durationTransform.y*e,this._transform.skewX=this._originTransform.skewX+a.skewX+this._durationTransform.skewX*e,this._transform.skewY=this._originTransform.skewY+a.skewY+this._durationTransform.skewY*e,this._tweenScale&&(this._transform.scaleX=this._originTransform.scaleX*a.scaleX+this._durationTransform.scaleX*e,this._transform.scaleY=this._originTransform.scaleY*a.scaleY+this._durationTransform.scaleY*e),this._pivot.x=this._originPivot.x+n.x+this._durationPivot.x*e,this._pivot.y=this._originPivot.y+n.y+this._durationPivot.y*e),this._bone.invalidUpdate()}},a.updateSingleFrame=function(){var t=this._timelineData.frameList[0];this._bone._arriveAtFrame(t,this,this._animationState,!1),this._isComplete=!0,this._tweenEasing=NaN,this._tweenTransform=!1,this._tweenScale=!1,this._tweenColor=!1,this._animationState.additiveBlending?(this._transform.x=t.transform.x,this._transform.y=t.transform.y,this._transform.skewX=t.transform.skewX,this._transform.skewY=t.transform.skewY,this._transform.scaleX=t.transform.scaleX,this._transform.scaleY=t.transform.scaleY,this._pivot.x=t.pivot.x,this._pivot.y=t.pivot.y):(this._transform.x=this._originTransform.x+t.transform.x,this._transform.y=this._originTransform.y+t.transform.y,this._transform.skewX=this._originTransform.skewX+t.transform.skewX,this._transform.skewY=this._originTransform.skewY+t.transform.skewY,this._transform.scaleX=this._originTransform.scaleX*t.transform.scaleX,this._transform.scaleY=this._originTransform.scaleY*t.transform.scaleY,this._pivot.x=this._originPivot.x+t.pivot.x,this._pivot.y=this._originPivot.y+t.pivot.y),this._bone.invalidUpdate()},i.HALF_PI=.5*Math.PI,i.DOUBLE_PI=2*Math.PI,i._pool=[],i}();t.TimelineState=i,egret.registerClass(i,"dragonBones.TimelineState")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function t(t,i){void 0===t&&(t=-1),void 0===i&&(i=1),this._time=t>=0?t:.001*(new Date).getTime(),this._timeScale=isNaN(i)?1:i,this._animatableList=[]}var i=__define,e=t,a=e.prototype;return i(a,"time",function(){return this._time}),i(a,"timeScale",function(){return this._timeScale},function(t){(isNaN(t)||t<0)&&(t=1),this._timeScale=t}),a.contains=function(t){return this._animatableList.indexOf(t)>=0},a.add=function(t){t&&this._animatableList.indexOf(t)==-1&&this._animatableList.push(t)},a.remove=function(t){var i=this._animatableList.indexOf(t);i>=0&&(this._animatableList[i]=null)},a.clear=function(){this._animatableList.length=0},a.advanceTime=function(t){void 0===t&&(t=-1),t<0&&(t=.001*(new Date).getTime()-this._time),t*=this._timeScale,this._time+=t;var i=this._animatableList.length;if(0!=i){for(var e=0,a=0;a0){for(var a=0,o=this._eventList.length;a=0&&this._boneList.splice(i,1)},s._addSlotToSlotList=function(t){this._slotList.indexOf(t)<0&&(this._slotList[this._slotList.length]=t)},s._removeSlotFromSlotList=function(t){var i=this._slotList.indexOf(t);i>=0&&this._slotList.splice(i,1)},s.updateSlotsZOrder=function(){this._slotList.sort(this.sortSlot);for(var t=this._slotList.length;t--;){var i=this._slotList[t];i._isShowDisplay&&i._addDisplayToContainer(this._display)}this._slotsZOrderChanged=!1},s._updateAnimationAfterBoneListChanged=function(t){void 0===t&&(t=!0),t&&this.sortBoneList(),this._animation._updateAnimationStates()},s.sortBoneList=function(){var i=this._boneList.length;if(0!=i){for(var e=[];i--;){for(var a=0,n=this._boneList[i],s=n;s;)a++,s=s.parent;e[i]=[a,n]}for(e.sort(t.ArmatureData.sortBoneDataHelpArrayDescending),i=e.length;i--;)this._boneList[i]=e[i][1];e.length=0}},s._arriveAtFrame=function(i,a,n,s){if(i.event&&this.hasEventListener(t.FrameEvent.ANIMATION_FRAME_EVENT)){var r=new t.FrameEvent(t.FrameEvent.ANIMATION_FRAME_EVENT);r.animationState=n,r.frameLabel=i.event,this._eventList.push(r)}if(i.sound&&e._soundManager.hasEventListener(t.SoundEvent.SOUND)){var o=new t.SoundEvent(t.SoundEvent.SOUND);o.armature=this,o.animationState=n,o.sound=i.sound,e._soundManager.dispatchEvent(o)}i.action&&n.displayControl&&this.animation.gotoAndPlay(i.action)},s.sortSlot=function(t,i){return t.zOrder0||this._parent&&this._parent._needUpdate>0){this._needUpdate=1,this.blendingTimeline();var e=this._updateGlobal(),a=e?e.parentGlobalTransform:null,n=e?e.parentGlobalTransformMatrix:null,s=0!=this._offset.x||0!=this._offset.y,r=0!=this._offset.scaleX||0!=this._offset.scaleY,o=0!=this._offset.skewX||0!=this._offset.skewY;s&&!this.applyOffsetTranslationToChild||r&&!this.applyOffsetScaleToChild||o&&!this.applyOffsetRotationToChild?(this._tempGlobalTransformForChild||(this._tempGlobalTransformForChild=new t.DBTransform),this._globalTransformForChild=this._tempGlobalTransformForChild,this._tempGlobalTransformMatrixForChild||(this._tempGlobalTransformMatrixForChild=new t.Matrix),this._globalTransformMatrixForChild=this._tempGlobalTransformMatrixForChild,this._globalTransformForChild.x=this._origin.x+this._tween.x,this._globalTransformForChild.y=this._origin.y+this._tween.y,this._globalTransformForChild.scaleX=this._origin.scaleX*this._tween.scaleX,this._globalTransformForChild.scaleY=this._origin.scaleY*this._tween.scaleY,this._globalTransformForChild.skewX=this._origin.skewX+this._tween.skewX,this._globalTransformForChild.skewY=this._origin.skewY+this._tween.skewY,this.applyOffsetTranslationToChild&&(this._globalTransformForChild.x+=this._offset.x,this._globalTransformForChild.y+=this._offset.y),this.applyOffsetScaleToChild&&(this._globalTransformForChild.scaleX*=this._offset.scaleX,this._globalTransformForChild.scaleY*=this._offset.scaleY),this.applyOffsetRotationToChild&&(this._globalTransformForChild.skewX+=this._offset.skewX,this._globalTransformForChild.skewY+=this._offset.skewY),t.TransformUtil.transformToMatrix(this._globalTransformForChild,this._globalTransformMatrixForChild,!0),n&&(this._globalTransformMatrixForChild.concat(n),t.TransformUtil.matrixToTransform(this._globalTransformMatrixForChild,this._globalTransformForChild,this._globalTransformForChild.scaleX*a.scaleX>=0,this._globalTransformForChild.scaleY*a.scaleY>=0))):(this._globalTransformForChild=this._global,this._globalTransformMatrixForChild=this._globalTransformMatrix)}},s._updateColor=function(t,i,e,a,n,s,r,o,l){for(var h=this._slotList.length,_=0;_=0&&this._timelineStateList.splice(i,1)},s._removeAllStates=function(){this._timelineStateList.length=0},s.blendingTimeline=function(){var t,i,e,a,n=this._timelineStateList.length;if(1==n)t=this._timelineStateList[0],a=t._animationState.weight*t._animationState.fadeWeight,t._weight=a,i=t._transform,e=t._pivot,this._tween.x=i.x*a,this._tween.y=i.y*a,this._tween.skewX=i.skewX*a,this._tween.skewY=i.skewY*a,this._tween.scaleX=1+(i.scaleX-1)*a,this._tween.scaleY=1+(i.scaleY-1)*a,this._tweenPivot.x=e.x*a,this._tweenPivot.y=e.y*a;else if(n>1){for(var s=0,r=0,o=0,l=0,h=1,_=1,u=0,m=0,f=1,d=0,c=this._timelineStateList[n-1]._animationState.layer,p=0;n--;){if(t=this._timelineStateList[n],p=t._animationState.layer,c!=p){if(d>=f){t._weight=0;break}f-=d}c=p,a=t._animationState.weight*t._animationState.fadeWeight*f,t._weight=a,a&&(i=t._transform,e=t._pivot,s+=i.x*a,r+=i.y*a,o+=i.skewX*a,l+=i.skewY*a,h+=(i.scaleX-1)*a,_+=(i.scaleY-1)*a,u+=e.x*a,m+=e.y*a,d+=a)}this._tween.x=s,this._tween.y=r,this._tween.skewX=o,this._tween.skewY=l,this._tween.scaleX=h,this._tween.scaleY=_,this._tweenPivot.x=u,this._tweenPivot.y=m}},s.sortState=function(t,i){return t._animationState.layer0?this._slotList[0]:null}),e._soundManager=t.SoundEventManager.getInstance(),e}(t.DBObject);t.Bone=i,egret.registerClass(i,"dragonBones.Bone")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(i){function e(e){if(i.call(this),this._currentDisplayIndex=0,e!=this)throw new Error(egret.getString(4001));this._displayList=[],this._timelineStateList=[],this._currentDisplayIndex=-1,this._originZOrder=0,this._tweenZOrder=0,this._offsetZOrder=0,this._isShowDisplay=!1,this._colorTransform=new t.ColorTransform,this._displayDataList=null,this._currentDisplay=null,this.inheritRotation=!0,this.inheritScale=!0}__extends(e,i);var a=__define,n=e,s=n.prototype;return s.initWithSlotData=function(t){this.name=t.name,this.blendMode=t.blendMode,this._originZOrder=t.zOrder,this._displayDataList=t.displayDataList,this._originDisplayIndex=t.displayIndex},s.dispose=function(){this._displayList&&(i.prototype.dispose.call(this),this._displayList.length=0,this._displayDataList=null,this._displayList=null,this._currentDisplay=null)},s.sortState=function(t,i){return t._animationState.layer=0&&this._timelineStateList.splice(i,1)},s.setArmature=function(t){this._armature!=t&&(this._armature&&this._armature._removeSlotFromSlotList(this),this._armature=t,this._armature?(this._armature._addSlotToSlotList(this),this._armature._slotsZOrderChanged=!0,this._addDisplayToContainer(this._armature.display)):this._removeDisplayFromContainer())},s._update=function(){this._parent._needUpdate<=0&&!this._needUpdate||(this._updateGlobal(),this._updateTransform(),this._needUpdate=!1)},s._calculateRelativeParentTransform=function(){this._global.scaleX=this._origin.scaleX*this._offset.scaleX,this._global.scaleY=this._origin.scaleY*this._offset.scaleY,this._global.skewX=this._origin.skewX+this._offset.skewX,this._global.skewY=this._origin.skewY+this._offset.skewY,this._global.x=this._origin.x+this._offset.x+this._parent._tweenPivot.x,this._global.y=this._origin.y+this._offset.y+this._parent._tweenPivot.y},s.updateChildArmatureAnimation=function(){this.childArmature&&(this._isShowDisplay?this._armature&&this._armature.animation.lastAnimationState&&this.childArmature.animation.hasAnimation(this._armature.animation.lastAnimationState.name)?this.childArmature.animation.gotoAndPlay(this._armature.animation.lastAnimationState.name):this.childArmature.animation.play():(this.childArmature.animation.stop(),this.childArmature.animation._lastAnimationState=null))},s._changeDisplay=function(t){if(void 0===t&&(t=0),t<0)this._isShowDisplay&&(this._isShowDisplay=!1,this._removeDisplayFromContainer(),this.updateChildArmatureAnimation());else if(this._displayList.length>0){var i=this._displayList.length;t>=i&&(t=i-1),this._currentDisplayIndex!=t?(this._isShowDisplay=!0,this._currentDisplayIndex=t,this._updateSlotDisplay(),this.updateChildArmatureAnimation(),this._displayDataList&&this._displayDataList.length>0&&this._currentDisplayIndex=0&&(isNaN(s.zOrder)||s.zOrder==this._tweenZOrder||(this._tweenZOrder=s.zOrder,this._armature._slotsZOrderChanged=!0)),t.action&&this.childArmature&&this.childArmature.animation.gotoAndPlay(t.action)}},s._updateGlobal=function(){this._calculateRelativeParentTransform(),t.TransformUtil.transformToMatrix(this._global,this._globalTransformMatrix,!0);var i=this._calculateParentTransform();return i&&(this._globalTransformMatrix.concat(i.parentGlobalTransformMatrix),t.TransformUtil.matrixToTransform(this._globalTransformMatrix,this._global,this._global.scaleX*i.parentGlobalTransform.scaleX>=0,this._global.scaleY*i.parentGlobalTransform.scaleY>=0)),i},s._resetToOrigin=function(){this._changeDisplay(this._originDisplayIndex),this._updateDisplayColor(0,0,0,0,1,1,1,1,!0); +},e}(t.DBObject);t.Slot=i,egret.registerClass(i,"dragonBones.Slot")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function i(){this.slotTimelineCacheList=[],this.slotTimelineCacheDic={},this.frameNum=0}var e=(__define,i),a=e.prototype;return i.initWithAnimationData=function(e,a){var n=new i;n.name=e.name;for(var s,r,o,l,h=e.timelineList,_=0,u=h.length;_=o&&n.progress<1);this.cacheGeneratorArmature.enableEventDispatch=r,this.resetCacheGeneratorArmature(),this.cacheGeneratorArmature.enableCache=e}},a.resetCacheGeneratorArmature=function(){this.cacheGeneratorArmature.resetAnimation()},a.getAnimationCache=function(t){return this.animationCacheDic[t]},i}();t.AnimationCacheManager=i,egret.registerClass(i,"dragonBones.AnimationCacheManager")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function i(){this.globalTransform=new t.DBTransform,this.globalTransformMatrix=new t.Matrix}var e=(__define,i),a=e.prototype;return a.copy=function(t){this.globalTransform=t.globalTransform,this.globalTransformMatrix=t.globalTransformMatrix},a.clear=function(){this.globalTransform=i.ORIGIN_TRAMSFORM,this.globalTransformMatrix=i.ORIGIN_MATRIX},i.ORIGIN_TRAMSFORM=new t.DBTransform,i.ORIGIN_MATRIX=new t.Matrix,i}();t.FrameCache=i,egret.registerClass(i,"dragonBones.FrameCache")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(t){function i(){t.call(this),this.displayIndex=-1}__extends(i,t);var e=(__define,i),a=e.prototype;return a.copy=function(i){t.prototype.copy.call(this,i),this.colorTransform=i.colorTransform,this.displayIndex=i.displayIndex},a.clear=function(){t.prototype.clear.call(this),this.colorTransform=null,this.displayIndex=-1},i}(t.FrameCache);t.SlotFrameCache=i,egret.registerClass(i,"dragonBones.SlotFrameCache")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function t(){this.frameCacheList=new Array}var i=(__define,t),e=i.prototype;return e.addFrame=function(){},e.update=function(t){void 0===t&&(t=0),this.currentFrameCache.copy(this.frameCacheList[t])},e.bindCacheUser=function(t){t.frameCache=this.currentFrameCache},t}();t.TimelineCache=i,egret.registerClass(i,"dragonBones.TimelineCache")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(i){function e(){i.call(this)}__extends(e,i);var a=(__define,e),n=a.prototype;return n.addFrame=function(){var i=new t.SlotFrameCache;i.globalTransform.copy(this.cacheGenerator.global),i.globalTransformMatrix.copyFrom(this.cacheGenerator.globalTransformMatrix),this.cacheGenerator.colorChanged&&(i.colorTransform=t.ColorTransformUtil.cloneColor(this.cacheGenerator.colorTransform)),i.displayIndex=this.cacheGenerator.displayIndex,this.frameCacheList.push(i)},e}(t.TimelineCache);t.SlotTimelineCache=i,egret.registerClass(i,"dragonBones.SlotTimelineCache")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(t){function i(i,e,a){void 0===e&&(e=!1),void 0===a&&(a=!1),t.call(this,i,e,a)}__extends(i,t);var e=(__define,i);e.prototype;return i}(egret.Event);t.Event=i,egret.registerClass(i,"dragonBones.Event")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(t){function i(i,e){void 0===e&&(e=!1),t.call(this,i)}__extends(i,t);var e=__define,a=i,n=a.prototype;return e(i,"MOVEMENT_CHANGE",function(){return i.FADE_IN}),e(n,"movementID",function(){return this.animationName}),e(n,"armature",function(){return this.target}),e(n,"animationName",function(){return this.animationState.name}),i.FADE_IN="fadeIn",i.FADE_OUT="fadeOut",i.START="start",i.COMPLETE="complete",i.LOOP_COMPLETE="loopComplete",i.FADE_IN_COMPLETE="fadeInComplete",i.FADE_OUT_COMPLETE="fadeOutComplete",i}(t.Event);t.AnimationEvent=i,egret.registerClass(i,"dragonBones.AnimationEvent")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(t){function i(i){t.call(this,i)}__extends(i,t);var e=(__define,i);e.prototype;return i.Z_ORDER_UPDATED="zOrderUpdated",i}(t.Event);t.ArmatureEvent=i,egret.registerClass(i,"dragonBones.ArmatureEvent")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(t){function i(i,e){void 0===e&&(e=!1),t.call(this,i)}__extends(i,t);var e=__define,a=i,n=a.prototype;return e(i,"MOVEMENT_FRAME_EVENT",function(){return i.ANIMATION_FRAME_EVENT}),e(n,"armature",function(){return this.target}),i.ANIMATION_FRAME_EVENT="animationFrameEvent",i.BONE_FRAME_EVENT="boneFrameEvent",i}(t.Event);t.FrameEvent=i,egret.registerClass(i,"dragonBones.FrameEvent")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(t){function i(i,e){void 0===e&&(e=!1),t.call(this,i)}__extends(i,t);var e=(__define,i);e.prototype;return i.SOUND="sound",i}(t.Event);t.SoundEvent=i,egret.registerClass(i,"dragonBones.SoundEvent")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(i){function a(t){if(i.call(this),this.dragonBonesDataDic={},this.textureAtlasDic={},t!=this)throw new Error(egret.getString(4001))}__extends(a,i);var n=(__define,a),s=n.prototype;return s.dispose=function(t){if(void 0===t&&(t=!0),t){for(var i in this.dragonBonesDataDic)this.dragonBonesDataDic[i].dispose(),delete this.dragonBonesDataDic[i];for(var e in this.textureAtlasDic){var a=this.textureAtlasDic[e];if(a)for(var n=0,s=a.length;n0;)this.dispatchEvent(this._eventList.shift());this._lockDispose=!1,this._delayDispose&&this.dispose()},s.enableAnimationCache=function(i,e,a){void 0===e&&(e=null),void 0===a&&(a=!0);var n=t.AnimationCacheManager.initWithArmatureData(this.armatureData,i);if(e)for(var s=e.length,r=0;r=0||!i._frameCache&&i.displayIndex>=0)&&i._addDisplayToContainer(this._display)}this._slotsZOrderChanged=!1},s.sortBoneList=function(){var i=this.boneList.length;if(0!=i){for(var e=[];i--;){for(var a=0,n=this.boneList[i],s=n;s;)a++,s=s.parent;e[i]=[a,n]}for(e.sort(t.ArmatureData.sortBoneDataHelpArrayDescending),i=e.length;i--;)this.boneList[i]=e[i][1];e.length=0}},s.arriveAtFrame=function(i,e){if(i.event&&this.hasEventListener(t.FrameEvent.ANIMATION_FRAME_EVENT)){var a=new t.FrameEvent(t.FrameEvent.ANIMATION_FRAME_EVENT);a.animationState=e,a.frameLabel=i.event,this._addEvent(a)}i.action&&this.animation.gotoAndPlay(i.action)},s.invalidUpdate=function(t){if(void 0===t&&(t=null),t){var i=this.getBone(t);i&&i.invalidUpdate()}else for(var e=this.boneList.length;e--;)this.boneList[e].invalidUpdate()},s.resetAnimation=function(){this.animation.animationState._resetTimelineStateList();for(var t=this.boneList.length,i=0;i0||this._parent&&this._parent._needUpdate>0)&&(this._needUpdate=1,this.blendingTimeline(),this._updateGlobal())},s._hideSlots=function(){for(var t=this.slotList.length,i=0;i0?this.slotList[0]:null}),e}(t.FastDBObject);t.FastBone=i,egret.registerClass(i,"dragonBones.FastBone")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(i){function e(e){if(i.call(this),this._currentDisplayIndex=0,e!=this)throw new Error("Abstract class can not be instantiated!");this.hasChildArmature=!1,this._currentDisplayIndex=-1,this._originZOrder=0,this._tweenZOrder=0,this._offsetZOrder=0,this._colorTransform=new t.ColorTransform,this._isColorChanged=!1,this._displayDataList=null,this._currentDisplay=null,this.inheritRotation=!0,this.inheritScale=!0}__extends(e,i);var a=__define,n=e,s=n.prototype;return s.initWithSlotData=function(t){this.name=t.name,this.blendMode=t.blendMode,this._originZOrder=t.zOrder,this._displayDataList=t.displayDataList,this._originDisplayIndex=t.displayIndex},s.dispose=function(){this._displayList&&(i.prototype.dispose.call(this),this._displayDataList=null,this._displayList=null,this._currentDisplay=null)},s.updateByCache=function(){i.prototype.updateByCache.call(this),this._updateTransform();var e=this._frameCache.colorTransform,a=null!=e;(this.colorChanged!=a||this.colorChanged&&a&&!t.ColorTransformUtil.isEqual(this._colorTransform,e))&&(e=e||t.ColorTransformUtil.originalColor,this._updateDisplayColor(e.alphaOffset,e.redOffset,e.greenOffset,e.blueOffset,e.alphaMultiplier,e.redMultiplier,e.greenMultiplier,e.blueMultiplier,a)),this._changeDisplayIndex(this._frameCache.displayIndex)},s._update=function(){this._parent._needUpdate<=0||(this._updateGlobal(),this._updateTransform())},s._calculateRelativeParentTransform=function(){this._global.copy(this._origin),this._global.x+=this._parent._tweenPivot.x,this._global.y+=this._parent._tweenPivot.y},s.initDisplayList=function(t){this._displayList=t},s.clearCurrentDisplay=function(){if(this.hasChildArmature){var t=this.childArmature;t&&t.resetAnimation()}var i=this._getDisplayIndex();return this._removeDisplayFromContainer(),i},s._changeDisplayIndex=function(t){if(void 0===t&&(t=0),this._currentDisplayIndex!=t){var i=-1;this._currentDisplayIndex>=0&&(i=this.clearCurrentDisplay()),this._currentDisplayIndex=t,this._currentDisplayIndex>=0&&(this._origin.copy(this._displayDataList[this._currentDisplayIndex].transform),this.initCurrentDisplay(i))}},s.changeSlotDisplay=function(t){var i=this.clearCurrentDisplay();this._displayList[this._currentDisplayIndex]=t,this.initCurrentDisplay(i)},s.initCurrentDisplay=function(i){void 0===i&&(i=0);var e=this._displayList[this._currentDisplayIndex];if(e?e instanceof t.FastArmature?this._currentDisplay=e.display:this._currentDisplay=e:this._currentDisplay=null,this._updateDisplay(this._currentDisplay),this._currentDisplay&&(i!=-1?this._addDisplayToContainer(this.armature.display,i):(this.armature._slotsZOrderChanged=!0,this._addDisplayToContainer(this.armature.display)),this._blendMode&&this._updateDisplayBlendMode(this._blendMode),this._isColorChanged&&this._updateDisplayColor(this._colorTransform.alphaOffset,this._colorTransform.redOffset,this._colorTransform.greenOffset,this._colorTransform.blueOffset,this._colorTransform.alphaMultiplier,this._colorTransform.redMultiplier,this._colorTransform.greenMultiplier,this._colorTransform.blueMultiplier,!0),this._updateTransform(),e instanceof t.FastArmature)){var a=e;this.armature&&this.armature.animation.animationState&&a.animation.hasAnimation(this.armature.animation.animationState.name)?a.animation.gotoAndPlay(this.armature.animation.animationState.name):a.animation.play()}},a(s,"visible",void 0,function(t){this._visible!=t&&(this._visible=t,this._updateDisplayVisible(this._visible))}),a(s,"displayList",function(){return this._displayList},function(t){if(!t)throw new Error;var i=t[this._currentDisplayIndex],e=this._currentDisplayIndex>=0&&this._displayList[this._currentDisplayIndex]!=i;this._displayList=t,e&&this.changeSlotDisplay(i)}),a(s,"display",function(){return this._currentDisplay},function(t){this._currentDisplayIndex<0||this._displayList[this._currentDisplayIndex]!=t&&this.changeSlotDisplay(t)}),a(s,"childArmature",function(){return this._displayList[this._currentDisplayIndex]instanceof t.Armature||this._displayList[this._currentDisplayIndex]instanceof t.FastArmature?this._displayList[this._currentDisplayIndex]:null},function(t){this.display=t}),a(s,"zOrder",function(){return this._originZOrder+this._tweenZOrder+this._offsetZOrder},function(t){this.zOrder!=t&&(this._offsetZOrder=t-this._originZOrder-this._tweenZOrder,this.armature&&(this.armature._slotsZOrderChanged=!0))}),a(s,"blendMode",function(){return this._blendMode},function(t){this._blendMode!=t&&(this._blendMode=t,this._updateDisplayBlendMode(this._blendMode))}),a(s,"colorTransform",function(){return this._colorTransform}),a(s,"displayIndex",function(){return this._currentDisplayIndex}),a(s,"colorChanged",function(){return this._isColorChanged}),s._updateDisplay=function(t){throw new Error("Abstract method needs to be implemented in subclass!")},s._getDisplayIndex=function(){throw new Error("Abstract method needs to be implemented in subclass!")},s._addDisplayToContainer=function(t,i){throw void 0===i&&(i=-1),new Error("Abstract method needs to be implemented in subclass!")},s._removeDisplayFromContainer=function(){throw new Error("Abstract method needs to be implemented in subclass!")},s._updateTransform=function(){throw new Error("Abstract method needs to be implemented in subclass!")},s._updateDisplayVisible=function(t){throw new Error("Abstract method needs to be implemented in subclass!")},s._updateDisplayColor=function(t,i,e,a,n,s,r,o,l){void 0===l&&(l=!1),this._colorTransform.alphaOffset=t,this._colorTransform.redOffset=i,this._colorTransform.greenOffset=e,this._colorTransform.blueOffset=a,this._colorTransform.alphaMultiplier=n,this._colorTransform.redMultiplier=s,this._colorTransform.greenMultiplier=r,this._colorTransform.blueMultiplier=o,this._isColorChanged=l},s._updateDisplayBlendMode=function(t){throw new Error("Abstract method needs to be implemented in subclass!")},s._arriveAtFrame=function(t,i){var e=t,a=e.displayIndex;if(this._changeDisplayIndex(a),this._updateDisplayVisible(e.visible),a>=0&&(isNaN(e.zOrder)||e.zOrder==this._tweenZOrder||(this._tweenZOrder=e.zOrder,this.armature._slotsZOrderChanged=!0)),t.action){var n=this.childArmature;n&&n.getAnimation().gotoAndPlay(t.action)}},s.hideSlots=function(){this._changeDisplayIndex(-1),this._removeDisplayFromContainer(),this._frameCache&&this._frameCache.clear()},s._updateGlobal=function(){this._calculateRelativeParentTransform(),t.TransformUtil.transformToMatrix(this._global,this._globalTransformMatrix,!0);var i=this._calculateParentTransform();return i&&(this._globalTransformMatrix.concat(i.parentGlobalTransformMatrix),t.TransformUtil.matrixToTransform(this._globalTransformMatrix,this._global,this._global.scaleX*i.parentGlobalTransform.scaleX>=0,this._global.scaleY*i.parentGlobalTransform.scaleY>=0)),i},s._resetToOrigin=function(){this._changeDisplayIndex(this._originDisplayIndex), +this._updateDisplayColor(0,0,0,0,1,1,1,1,!0)},e}(t.FastDBObject);t.FastSlot=i,egret.registerClass(i,"dragonBones.FastSlot",["dragonBones.ISlotCacheGenerator","dragonBones.ICacheUser"])}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function t(t,i){void 0===t&&(t=0),void 0===i&&(i=0),this.x=t,this.y=i}var i=(__define,t),e=i.prototype;return e.toString=function(){return"[Point (x="+this.x+" y="+this.y+")]"},t}();t.Point=i,egret.registerClass(i,"dragonBones.Point")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function t(t,i,e,a){void 0===t&&(t=0),void 0===i&&(i=0),void 0===e&&(e=0),void 0===a&&(a=0),this.x=t,this.y=i,this.width=e,this.height=a}var i=(__define,t);i.prototype;return t}();t.Rectangle=i,egret.registerClass(i,"dragonBones.Rectangle")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function i(){}var e=(__define,i);e.prototype;return i.parseDragonBonesData=function(e){if(!e)throw new Error;var a=e[t.ConstValues.A_VERSION];if(a=a.toString(),a.toString()!=t.DragonBones.DATA_VERSION&&a.toString()!=t.DragonBones.PARENT_COORDINATE_DATA_VERSION&&"2.3"!=a.toString())throw new Error("Nonsupport version!");var n=i.getNumber(e,t.ConstValues.A_FRAME_RATE,0)||0,s=new t.DragonBonesData;s.name=e[t.ConstValues.A_NAME],s.isGlobal="0"!=e[t.ConstValues.A_IS_GLOBAL],i.tempDragonBonesData=s;for(var r=e[t.ConstValues.ARMATURE],o=0,l=r.length;o0&&(u=Math.min(u,n.frameList[n.frameList.length-1].duration)),n.lastFrameDuration=u,n},i.parseSlotTimeline=function(e,a,n){var s=new t.SlotTimeline;s.name=e[t.ConstValues.A_NAME],s.scale=i.getNumber(e,t.ConstValues.A_SCALE,1)||0,s.offset=i.getNumber(e,t.ConstValues.A_OFFSET,0)||0,s.duration=a;for(var r=e[t.ConstValues.FRAME],o=0,l=r.length;o0&&d>0?(n=new t.Rectangle,n.x=i.getNumber(h,t.ConstValues.A_FRAME_X,0)/a,n.y=i.getNumber(h,t.ConstValues.A_FRAME_Y,0)/a,n.width=f,n.height=d):n=null,s[_]=new t.TextureData(u,n,m)}return s},i.parseDragonBonesData=function(e){if(!e)throw new Error;var a=e[t.ConstValues.A_VERSION];if(a=a.toString(),a.toString()==t.DragonBones.PARENT_COORDINATE_DATA_VERSION||"2.3"==a.toString())return t.Data3Parser.parseDragonBonesData(e);var n=i.getNumber(e,t.ConstValues.A_FRAME_RATE,0)||0,s=new t.DragonBonesData;s.name=e[t.ConstValues.A_NAME],s.isGlobal="0"!=e[t.ConstValues.A_IS_GLOBAL],i.tempDragonBonesData=s;for(var r=e[t.ConstValues.ARMATURE],o=0,l=r.length;o0&&(_=Math.min(_,f.frameList[f.frameList.length-1].duration)),n.addTimeline(f)}}var d=e[t.ConstValues.SLOT];if(d)for(r=0,o=d.length;r0&&(_=Math.min(_,p.frameList[p.frameList.length-1].duration),n.addSlotTimeline(p))}}return n.frameList.length>0&&(_=Math.min(_,n.frameList[n.frameList.length-1].duration)),n.lastFrameDuration=_,n},i.parseTransformTimeline=function(e,a,n){var s=new t.TransformTimeline;s.name=e[t.ConstValues.A_NAME],s.scale=i.getNumber(e,t.ConstValues.A_SCALE,1)||0,s.offset=i.getNumber(e,t.ConstValues.A_OFFSET,0)||0,s.originPivot.x=i.getNumber(e,t.ConstValues.A_PIVOT_X,0)||0,s.originPivot.y=i.getNumber(e,t.ConstValues.A_PIVOT_Y,0)||0,s.duration=a;for(var r=e[t.ConstValues.FRAME],o=0,l=r.length;oi[0]?1:-1},t.sortBoneDataHelpArrayDescending=function(t,i){return t[0]>i[0]?-1:1},a.setSkinData=function(t){var i=0,e=this._slotDataList.length;for(i=0;i0)a=this._skinDataList[0];else for(i=0,e=this._skinDataList.length;i0)return this._skinDataList[0];for(var i=this._skinDataList.length;i--;)if(this._skinDataList[i].name==t)return this._skinDataList[i];return null},a.getAnimationData=function(t){for(var i=this._animationDataList.length;i--;)if(this._animationDataList[i].name==t)return this._animationDataList[i];return null},a.addBoneData=function(t){if(!t)throw new Error;if(!(this._boneDataList.indexOf(t)<0))throw new Error;this._boneDataList[this._boneDataList.length]=t},a.addSlotData=function(t){if(!t)throw new Error;if(!(this._slotDataList.indexOf(t)<0))throw new Error;this._slotDataList[this._slotDataList.length]=t},a.addSkinData=function(t){if(!t)throw new Error;if(!(this._skinDataList.indexOf(t)<0))throw new Error;this._skinDataList[this._skinDataList.length]=t},a.addAnimationData=function(t){if(!t)throw new Error;this._animationDataList.indexOf(t)<0&&(this._animationDataList[this._animationDataList.length]=t)},a.sortBoneDataList=function(){var i=this._boneDataList.length;if(0!=i){for(var e=[];i--;){for(var a=this._boneDataList[i],n=0,s=a;s;)n++,s=this.getBoneData(s.parent);e[i]=[n,a]}for(e.sort(t.sortBoneDataHelpArray),i=e.length;i--;)this._boneDataList[i]=e[i][1]}},i(a,"boneDataList",function(){return this._boneDataList}),i(a,"slotDataList",function(){return this._slotDataList}),i(a,"skinDataList",function(){return this._skinDataList}),i(a,"animationDataList",function(){return this._animationDataList}),t}();t.ArmatureData=i,egret.registerClass(i,"dragonBones.ArmatureData")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function i(){this.length=0,this.global=new t.DBTransform,this.transform=new t.DBTransform,this.inheritRotation=!0,this.inheritScale=!1}var e=(__define,i),a=e.prototype;return a.dispose=function(){this.global=null,this.transform=null},i}();t.BoneData=i,egret.registerClass(i,"dragonBones.BoneData")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function t(){this.alphaMultiplier=1,this.alphaOffset=0,this.blueMultiplier=1,this.blueOffset=0,this.greenMultiplier=1,this.greenOffset=0,this.redMultiplier=1,this.redOffset=0}var i=(__define,t);i.prototype;return t}();t.ColorTransform=i,egret.registerClass(i,"dragonBones.ColorTransform")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function i(){this._dataChanged=!1,this._pointList=[],this.sampling=new Array(i.SamplingTimes);for(var e=0;e=t){if(0==e)return a.y*t/a.x;var n=this.sampling[e-1];return n.y+(a.y-n.y)*(t-n.x)/(a.x-n.x)}}return a.y+(1-a.y)*(t-a.x)/(1-a.x)},n.refreshSampling=function(){for(var t=0;t=0&&this._armatureDataList.splice(i,1)},a.removeArmatureDataByName=function(t){for(var i=this._armatureDataList.length;i--;)this._armatureDataList[i].name==t&&this._armatureDataList.splice(i,1)},a.getDisplayDataByName=function(t){return this._displayDataDictionary[t]},a.addDisplayData=function(t){this._displayDataDictionary[t.name]=t},a.removeDisplayDataByName=function(t){delete this._displayDataDictionary[t]},a.removeAllDisplayData=function(){for(var t in this._displayDataDictionary)delete this._displayDataDictionary[t]},t}();t.DragonBonesData=i,egret.registerClass(i,"dragonBones.DragonBonesData")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function t(){this.position=0,this.duration=0,this.position=0,this.duration=0}var i=(__define,t),e=i.prototype;return e.dispose=function(){},t}();t.Frame=i,egret.registerClass(i,"dragonBones.Frame")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function t(){this._slotDataList=[]}var i=__define,e=t,a=e.prototype;return a.dispose=function(){for(var t=this._slotDataList.length;t--;)this._slotDataList[t].dispose();this._slotDataList=null},a.getSlotData=function(t){for(var i=this._slotDataList.length;i--;)if(this._slotDataList[i].name==t)return this._slotDataList[i];return null},a.addSlotData=function(t){if(!t)throw new Error;if(!(this._slotDataList.indexOf(t)<0))throw new Error;this._slotDataList[this._slotDataList.length]=t},i(a,"slotDataList",function(){return this._slotDataList}),t}();t.SkinData=i,egret.registerClass(i,"dragonBones.SkinData")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function t(){this._displayDataList=[],this.zOrder=0}var i=__define,e=t,a=e.prototype;return a.dispose=function(){this._displayDataList.length=0},a.addDisplayData=function(t){if(!t)throw new Error;if(!(this._displayDataList.indexOf(t)<0))throw new Error;this._displayDataList[this._displayDataList.length]=t},a.getDisplayData=function(t){for(var i=this._displayDataList.length;i--;)if(this._displayDataList[i].name==t)return this._displayDataList[i];return null},i(a,"displayDataList",function(){return this._displayDataList}),t}();t.SlotData=i,egret.registerClass(i,"dragonBones.SlotData")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(t){function i(){t.call(this),this.displayIndex=0,this.tweenEasing=10,this.displayIndex=0,this.visible=!0,this.zOrder=NaN}__extends(i,t);var e=(__define,i),a=e.prototype;return a.dispose=function(){t.prototype.dispose.call(this),this.color=null},i}(t.Frame);t.SlotFrame=i,egret.registerClass(i,"dragonBones.SlotFrame")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(t){function i(){t.call(this),this.offset=0}__extends(i,t);var e=(__define,i),a=e.prototype;return a.dispose=function(){t.prototype.dispose.call(this)},i}(t.Timeline);t.SlotTimeline=i,egret.registerClass(i,"dragonBones.SlotTimeline")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(i){function e(){i.call(this),this.tweenRotate=0,this.displayIndex=0,this.tweenEasing=10,this.tweenRotate=0,this.tweenScale=!0,this.displayIndex=0,this.visible=!0,this.zOrder=NaN,this.global=new t.DBTransform,this.transform=new t.DBTransform,this.pivot=new t.Point,this.scaleOffset=new t.Point}__extends(e,i);var a=(__define,e),n=a.prototype;return n.dispose=function(){i.prototype.dispose.call(this),this.global=null,this.transform=null,this.pivot=null,this.scaleOffset=null,this.color=null},e}(t.Frame);t.TransformFrame=i,egret.registerClass(i,"dragonBones.TransformFrame")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(i){function e(){i.call(this),this.originTransform=new t.DBTransform,this.originTransform.scaleX=1,this.originTransform.scaleY=1,this.originPivot=new t.Point,this.offset=0}__extends(e,i);var a=(__define,e),n=a.prototype;return n.dispose=function(){i.prototype.dispose.call(this),this.originTransform=null,this.originPivot=null},e}(t.Timeline);t.TransformTimeline=i,egret.registerClass(i,"dragonBones.TransformTimeline")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function t(t,i,e){this.region=t,this.frame=i,this.rotated=e}var i=(__define,t);i.prototype;return t}();t.TextureData=i,egret.registerClass(i,"dragonBones.TextureData")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function i(){}var e=(__define,i);e.prototype;return i.cloneColor=function(i){var e=new t.ColorTransform;return e.redMultiplier=i.redMultiplier,e.greenMultiplier=i.greenMultiplier,e.blueMultiplier=i.blueMultiplier,e.alphaMultiplier=i.alphaMultiplier,e.redOffset=i.redOffset,e.greenOffset=i.greenOffset,e.blueOffset=i.blueOffset,e.alphaOffset=i.alphaOffset,e},i.isEqual=function(t,i){return t.alphaOffset==i.alphaOffset&&t.redOffset==i.redOffset&&t.greenOffset==i.greenOffset&&t.blueOffset==i.blueOffset&&t.alphaMultiplier==i.alphaMultiplier&&t.redMultiplier==i.redMultiplier&&t.greenMultiplier==i.greenMultiplier&&t.blueMultiplier==i.blueMultiplier},i.minus=function(t,i,e){e.alphaOffset=t.alphaOffset-i.alphaOffset,e.redOffset=t.redOffset-i.redOffset,e.greenOffset=t.greenOffset-i.greenOffset,e.blueOffset=t.blueOffset-i.blueOffset,e.alphaMultiplier=t.alphaMultiplier-i.alphaMultiplier,e.redMultiplier=t.redMultiplier-i.redMultiplier,e.greenMultiplier=t.greenMultiplier-i.greenMultiplier,e.blueMultiplier=t.blueMultiplier-i.blueMultiplier; +},i.originalColor=new t.ColorTransform,i}();t.ColorTransformUtil=i,egret.registerClass(i,"dragonBones.ColorTransformUtil")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function t(){}var i=(__define,t);i.prototype;return t.ANGLE_TO_RADIAN=Math.PI/180,t.RADIAN_TO_ANGLE=180/Math.PI,t.DRAGON_BONES="dragonBones",t.ARMATURE="armature",t.SKIN="skin",t.BONE="bone",t.SLOT="slot",t.DISPLAY="display",t.ANIMATION="animation",t.TIMELINE="timeline",t.FRAME="frame",t.TRANSFORM="transform",t.COLOR_TRANSFORM="colorTransform",t.COLOR="color",t.RECTANGLE="rectangle",t.ELLIPSE="ellipse",t.TEXTURE_ATLAS="TextureAtlas",t.SUB_TEXTURE="SubTexture",t.A_ROTATED="rotated",t.A_FRAME_X="frameX",t.A_FRAME_Y="frameY",t.A_FRAME_WIDTH="frameWidth",t.A_FRAME_HEIGHT="frameHeight",t.A_VERSION="version",t.A_IMAGE_PATH="imagePath",t.A_FRAME_RATE="frameRate",t.A_NAME="name",t.A_IS_GLOBAL="isGlobal",t.A_PARENT="parent",t.A_LENGTH="length",t.A_TYPE="type",t.A_FADE_IN_TIME="fadeInTime",t.A_DURATION="duration",t.A_SCALE="scale",t.A_OFFSET="offset",t.A_LOOP="loop",t.A_PLAY_TIMES="playTimes",t.A_EVENT="event",t.A_EVENT_PARAMETERS="eventParameters",t.A_SOUND="sound",t.A_ACTION="action",t.A_HIDE="hide",t.A_AUTO_TWEEN="autoTween",t.A_TWEEN_EASING="tweenEasing",t.A_TWEEN_ROTATE="tweenRotate",t.A_TWEEN_SCALE="tweenScale",t.A_DISPLAY_INDEX="displayIndex",t.A_Z_ORDER="z",t.A_BLENDMODE="blendMode",t.A_WIDTH="width",t.A_HEIGHT="height",t.A_INHERIT_SCALE="inheritScale",t.A_INHERIT_ROTATION="inheritRotation",t.A_X="x",t.A_Y="y",t.A_SKEW_X="skX",t.A_SKEW_Y="skY",t.A_SCALE_X="scX",t.A_SCALE_Y="scY",t.A_PIVOT_X="pX",t.A_PIVOT_Y="pY",t.A_ALPHA_OFFSET="aO",t.A_RED_OFFSET="rO",t.A_GREEN_OFFSET="gO",t.A_BLUE_OFFSET="bO",t.A_ALPHA_MULTIPLIER="aM",t.A_RED_MULTIPLIER="rM",t.A_GREEN_MULTIPLIER="gM",t.A_BLUE_MULTIPLIER="bM",t.A_CURVE="curve",t.A_SCALE_X_OFFSET="scXOffset",t.A_SCALE_Y_OFFSET="scYOffset",t.A_SCALE_MODE="scaleMode",t.A_FIXED_ROTATION="fixedRotation",t}();t.ConstValues=i,egret.registerClass(i,"dragonBones.ConstValues")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function i(){}var e=(__define,i);e.prototype;return i.transformArmatureData=function(i){for(var e=i.boneDataList,a=e.length;a--;){var n=e[a];if(n.parent){var s=i.getBoneData(n.parent);s&&(n.transform.copy(n.global),t.TransformUtil.globalToLocal(n.transform,s.global))}}},i.transformArmatureDataAnimations=function(t){for(var e=t.animationDataList,a=e.length;a--;)i.transformAnimationData(e[a],t,!1)},i.transformRelativeAnimationData=function(t,i){},i.transformAnimationData=function(e,a,n){if(!n)return void i.transformRelativeAnimationData(e,a);var s,r=a.getSkinData(null),o=a.boneDataList;r&&(s=r.slotDataList);for(var l=0;l0?(D<0&&(v.transform.skewX+=2*Math.PI,v.transform.skewY+=2*Math.PI),g.tweenRotate>1&&(v.transform.skewX+=2*Math.PI*(g.tweenRotate-1),v.transform.skewY+=2*Math.PI*(g.tweenRotate-1))):(D>0&&(v.transform.skewX-=2*Math.PI,v.transform.skewY-=2*Math.PI),g.tweenRotate<1&&(v.transform.skewX+=2*Math.PI*(g.tweenRotate+1),v.transform.skewY+=2*Math.PI*(g.tweenRotate+1))):(v.transform.skewX=g.transform.skewX+t.TransformUtil.formatRadian(v.transform.skewX-g.transform.skewX),v.transform.skewY=g.transform.skewY+t.TransformUtil.formatRadian(v.transform.skewY-g.transform.skewY))}g=v}if(u&&p){T=p.length;for(var f=0;f=0,f.scaleY*_.scaleY>=0)):(_=new t.DBTransform,_.copy(f)),t.TransformUtil.transformToMatrix(_,m,!0);t.TransformUtil.globalToLocal(s.transform,_)}}},i.getTimelineTransform=function(i,e,a,n){for(var s=i.frameList,r=s.length;r--;){var o=s[r];if(o.position<=e&&o.position+o.duration>e){if(r==s.length-1||e==o.position)a.copy(n?o.global:o.transform);else{var l=o.tweenEasing,h=(e-o.position)/o.duration;l&&10!=l&&(h=t.MathUtil.getEaseValue(h,l));var _=s[r+1],u=n?o.global:o.transform,m=n?_.global:_.transform;a.x=u.x+(m.x-u.x)*h,a.y=u.y+(m.y-u.y)*h,a.skewX=t.TransformUtil.formatRadian(u.skewX+(m.skewX-u.skewX)*h),a.skewY=t.TransformUtil.formatRadian(u.skewY+(m.skewY-u.skewY)*h),a.scaleX=u.scaleX+(m.scaleX-u.scaleX)*h,a.scaleY=u.scaleY+(m.scaleY-u.scaleY)*h}break}}},i.addHideTimeline=function(t,i,e){void 0===e&&(e=!1);for(var a=i.boneDataList,n=i.slotDataList,s=a.length;s--;){var r=a[s],o=r.name;t.getTimeline(o)||t.hideTimelineNameMap.indexOf(o)<0&&t.hideTimelineNameMap.push(o)}if(e){s=n.length;for(var l,h;s--;)l=n[s],h=l.name,t.getSlotTimeline(h)||t.hideSlotTimelineNameMap.indexOf(h)<0&&t.hideSlotTimelineNameMap.push(h)}},i}();t.DBDataUtil=i,egret.registerClass(i,"dragonBones.DBDataUtil")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function t(){}var i=(__define,t);i.prototype;return t.getEaseValue=function(i,e){var a=1;return e>1?(a=.5*(1-t.cos(i*Math.PI)),e-=1):e>0?a=1-Math.pow(1-i,2):e<0&&(e*=-1,a=Math.pow(i,2)),(a-i)*e+i},t.isNumber=function(t){return"number"==typeof t&&!isNaN(t)},t.sin=function(i){i*=t.RADIAN_TO_ANGLE;var e=Math.floor(i),a=e+1,n=t.sinInt(e),s=t.sinInt(a);return(i-e)*s+(a-i)*n},t.sinInt=function(t){return t%=360,t<0&&(t+=360),t<90?db_sin_map[t]:t<180?db_sin_map[180-t]:t<270?-db_sin_map[t-180]:-db_sin_map[360-t]},t.cos=function(i){return t.sin(Math.PI/2-i)},t.ANGLE_TO_RADIAN=Math.PI/180,t.RADIAN_TO_ANGLE=180/Math.PI,t}();t.MathUtil=i,egret.registerClass(i,"dragonBones.MathUtil")}(dragonBones||(dragonBones={}));for(var db_sin_map={},dbMathIndex=0;dbMathIndex<=90;dbMathIndex++)db_sin_map[dbMathIndex]=Math.sin(dbMathIndex*dragonBones.MathUtil.ANGLE_TO_RADIAN);var dragonBones;!function(t){var i=function(){function i(){}var e=(__define,i);e.prototype;return i.globalToLocal=function(t,e){i.transformToMatrix(t,i._helpTransformMatrix,!0),i.transformToMatrix(e,i._helpParentTransformMatrix,!0),i._helpParentTransformMatrix.invert(),i._helpTransformMatrix.concat(i._helpParentTransformMatrix),i.matrixToTransform(i._helpTransformMatrix,t,t.scaleX*e.scaleX>=0,t.scaleY*e.scaleY>=0)},i.transformToMatrix=function(i,e,a){void 0===a&&(a=!1),a?(e.a=i.scaleX*t.MathUtil.cos(i.skewY),e.b=i.scaleX*t.MathUtil.sin(i.skewY),e.c=-i.scaleY*t.MathUtil.sin(i.skewX),e.d=i.scaleY*t.MathUtil.cos(i.skewX),e.tx=i.x,e.ty=i.y):(e.a=t.MathUtil.cos(i.skewY),e.b=t.MathUtil.sin(i.skewY),e.c=-t.MathUtil.sin(i.skewX),e.d=t.MathUtil.cos(i.skewX),e.tx=i.x,e.ty=i.y)},i.matrixToTransform=function(t,i,e,a){i.x=t.tx,i.y=t.ty,i.scaleX=Math.sqrt(t.a*t.a+t.b*t.b)*(e?1:-1),i.scaleY=Math.sqrt(t.d*t.d+t.c*t.c)*(a?1:-1);var n=[];n[0]=Math.acos(t.d/i.scaleY),n[1]=-n[0],n[2]=Math.asin(-t.c/i.scaleY),n[3]=n[2]>=0?Math.PI-n[2]:n[2]-Math.PI,Number(n[0]).toFixed(4)==Number(n[2]).toFixed(4)||Number(n[0]).toFixed(4)==Number(n[3]).toFixed(4)?i.skewX=n[0]:i.skewX=n[1];var s=[];s[0]=Math.acos(t.a/i.scaleX),s[1]=-s[0],s[2]=Math.asin(t.b/i.scaleX),s[3]=s[2]>=0?Math.PI-s[2]:s[2]-Math.PI,Number(s[0]).toFixed(4)==Number(s[2]).toFixed(4)||Number(s[0]).toFixed(4)==Number(s[3]).toFixed(4)?i.skewY=s[0]:i.skewY=s[1]},i.formatRadian=function(t){return t>Math.PI&&(t-=i.DOUBLE_PI),t<-Math.PI&&(t+=i.DOUBLE_PI),t},i.normalizeRotation=function(t){return t=(t+Math.PI)%(2*Math.PI),t=t>0?t:2*Math.PI+t,t-Math.PI},i.HALF_PI=.5*Math.PI,i.DOUBLE_PI=2*Math.PI,i._helpTransformMatrix=new t.Matrix,i._helpParentTransformMatrix=new t.Matrix,i}();t.TransformUtil=i,egret.registerClass(i,"dragonBones.TransformUtil")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function i(i){this.animationState=new t.FastAnimationState,this._armature=i,this.animationState._armature=i,this.animationList=[],this._animationDataObj={},this._isPlaying=!1,this._timeScale=1}var e=__define,a=i,n=a.prototype;return n.dispose=function(){this._armature&&(this._armature=null,this._animationDataList=null,this.animationList=null,this.animationState=null)},n.gotoAndPlay=function(t,i,e,a){if(void 0===i&&(i=-1),void 0===e&&(e=-1),void 0===a&&(a=NaN),!this._animationDataList)return null;var n=this._animationDataObj[t];if(!n)return null;this._isPlaying=!0,i=i<0?n.fadeTime<0?.3:n.fadeTime:i;var s;s=e<0?n.scale<0?1:n.scale:1e3*e/n.duration,a=isNaN(a)?n.playTimes:a,this.animationState._fadeIn(n,a,1/s,i),this._armature.enableCache&&this.animationCacheManager&&(this.animationState.animationCache=this.animationCacheManager.getAnimationCache(t));for(var r=this._armature.slotHasChildArmatureList.length;r--;){var o=this._armature.slotHasChildArmatureList[r],l=o.childArmature;l&&l.getAnimation().gotoAndPlay(t)}return this.animationState},n.gotoAndStop=function(t,i,e,a,n){return void 0===e&&(e=-1),void 0===a&&(a=0),void 0===n&&(n=-1),this.animationState.name!=t&&this.gotoAndPlay(t,a,n),e>=0?this.animationState.setCurrentTime(this.animationState.totalTime*e):this.animationState.setCurrentTime(i),this.animationState.stop(),this.animationState},n.play=function(){this._animationDataList&&(this.animationState.name?this._isPlaying?this.gotoAndPlay(this.animationState.name):this._isPlaying=!0:this.gotoAndPlay(this._animationDataList[0].name))},n.stop=function(){this._isPlaying=!1},n.advanceTime=function(t){this._isPlaying&&this.animationState._advanceTime(t*this._timeScale)},n.hasAnimation=function(t){return null!=this._animationDataObj[t]},e(n,"timeScale",function(){return this._timeScale},function(t){(isNaN(t)||t<0)&&(t=1),this._timeScale=t}),e(n,"animationDataList",function(){return this._animationDataList},function(t){this._animationDataList=t,this.animationList.length=0;for(var i=this._animationDataList.length,e=0;e0,this._isPlaying=!0,this._armature.enableCache&&this.animationCache&&this._fading&&this._boneTimelineStateList&&this.updateTransformTimeline(this.progress),this._time=0,this._progress=0,this._updateTimelineStateList(),this.hideBones()},n._updateTimelineStateList=function(){this._resetTimelineStateList();for(var i,e=this.animationData.timelineList.length,a=0;a0){var u=t.FastSlotTimelineState.borrowObject();u.fadeIn(_,this,h),this._slotTimelineStateList.push(u)}}},n._advanceTime=function(t){if(t*=this._timeScale,this._fading&&(this._time+=t,this._progress=this._time/this._fadeTotalTime,this._progress>=1&&(this._progress=0,this._time=0,this._fading=!1)),this._fading){for(var i=this._boneTimelineStateList.length,e=0;e0&&r>1&&(a=!0),this._currentPlayTimes=r),this._currentTime<0&&(e=!0),this._isComplete&&(n=!0),this._lastTime=this._currentTime,this._currentTime=o,this.updateMainTimeline(s));var l;e&&this._armature.hasEventListener(t.AnimationEvent.START)&&(l=new t.AnimationEvent(t.AnimationEvent.START),l.animationState=this,this._armature._addEvent(l)),n?this._armature.hasEventListener(t.AnimationEvent.COMPLETE)&&(l=new t.AnimationEvent(t.AnimationEvent.COMPLETE),l.animationState=this,this._armature._addEvent(l)):a&&this._armature.hasEventListener(t.AnimationEvent.LOOP_COMPLETE)&&(l=new t.AnimationEvent(t.AnimationEvent.LOOP_COMPLETE),l.animationState=this,this._armature._addEvent(l))},n.updateTransformTimeline=function(t){var i,e,a=this._boneTimelineStateList.length;if(this._isComplete){for(;a--;)i=this._boneTimelineStateList[a],i.update(t),this._isComplete=i._isComplete&&this._isComplete;for(a=this._slotTimelineStateList.length;a--;)e=this._slotTimelineStateList[a],e.update(t),this._isComplete=e._isComplete&&this._isComplete}else{for(;a--;)i=this._boneTimelineStateList[a],i.update(t);for(a=this._slotTimelineStateList.length;a--;)e=this._slotTimelineStateList[a],e.update(t)}},n.updateMainTimeline=function(t){var i=this.animationData.frameList;if(i.length>0){for(var e,a,n=0,s=this.animationData.frameList.length;n=this._currentFramePosition+this._currentFrameDuration||this._currentTime=i.length){if(t){this._currentFrameIndex--;break}this._currentFrameIndex=0}}a=i[this._currentFrameIndex],e&&this._armature.arriveAtFrame(e,this),this._currentFrameDuration=a.duration,this._currentFramePosition=a.position,e=a}a&&this._armature.arriveAtFrame(a,this)}},n.setTimeScale=function(t){return(isNaN(t)||t==1/0)&&(t=1),this._timeScale=t,this},n.setPlayTimes=function(t){return void 0===t&&(t=0),Math.round(.001*this._totalTime*this.animationData.frameRate)<2?this._playTimes=1:this._playTimes=t,this},e(n,"playTimes",function(){return this._playTimes}),e(n,"currentPlayTimes",function(){return this._currentPlayTimes<0?0:this._currentPlayTimes}),e(n,"isComplete",function(){return this._isComplete}),e(n,"isPlaying",function(){return this._isPlaying&&!this._isComplete}),e(n,"totalTime",function(){return.001*this._totalTime}),e(n,"currentTime",function(){return this._currentTime<0?0:.001*this._currentTime}),n.isUseCache=function(){return this._armature.enableCache&&this.animationCache&&!this._fading},n.hideBones=function(){for(var t=this.animationData.hideTimelineNameMap.length,i=0;i0){this._bone._timelineState?this._transformToFadein.copy(this._bone._timelineState._transform):this._transformToFadein=new t.DBTransform;var n=this._timelineData.frameList[0];this._durationTransform.copy(n.transform),this._durationTransform.minus(this._transformToFadein)}this._bone._timelineState=this},a.updateFade=function(t){this._transform.x=this._transformToFadein.x+this._durationTransform.x*t,this._transform.y=this._transformToFadein.y+this._durationTransform.y*t,this._transform.scaleX=this._transformToFadein.scaleX*(1+(this._durationTransform.scaleX-1)*t),this._transform.scaleY=this._transformToFadein.scaleX*(1+(this._durationTransform.scaleY-1)*t),this._transform.rotation=this._transformToFadein.rotation+this._durationTransform.rotation*t,this._bone.invalidUpdate()},a.update=function(t){1==this._updateMode?(this._updateMode=0,this.updateSingleFrame()):this._updateMode==-1&&this.updateMultipleFrame(t)},a.updateSingleFrame=function(){var t=this._timelineData.frameList[0];this._bone.arriveAtFrame(t,this._animationState),this._isComplete=!0,this._tweenEasing=NaN,this._tweenTransform=!1,this._pivot.x=this._originPivot.x+t.pivot.x,this._pivot.y=this._originPivot.y+t.pivot.y,this._transform.copy(t.transform),this._bone.invalidUpdate()},a.updateMultipleFrame=function(t){var i=0;t/=this._timelineData.scale,t+=this._timelineData.offset;var e=this._totalTime*t,a=this._animationState.playTimes;if(0==a)this._isComplete=!1,i=Math.ceil(Math.abs(e)/this._totalTime)||1,e-=Math.floor(e/this._totalTime)*this._totalTime,e<0&&(e+=this._totalTime);else{var n=a*this._totalTime;e>=n?(e=n,this._isComplete=!0):e<=-n?(e=-n,this._isComplete=!0):this._isComplete=!1,e<0&&(e+=n),i=Math.ceil(e/this._totalTime)||1,this._isComplete?e=this._totalTime:e-=Math.floor(e/this._totalTime)*this._totalTime}if(this._currentTime!=e){this._lastTime=this._currentTime,this._currentTime=e;for(var s,r,o=this._timelineData.frameList,l=0,h=this._timelineData.frameList.length;l=this._currentFramePosition+this._currentFrameDuration||this._currentTime=o.length){if(this._isComplete){this._currentFrameIndex--;break}this._currentFrameIndex=0}}r=o[this._currentFrameIndex],s&&this._bone.arriveAtFrame(s,this._animationState),this._currentFrameDuration=r.duration,this._currentFramePosition=r.position,s=r}r&&(this._bone.arriveAtFrame(r,this._animationState),this.updateToNextFrame(i)),this._tweenTransform&&this.updateTween()}},a.updateToNextFrame=function(i){void 0===i&&(i=0);var e=this._currentFrameIndex+1;e>=this._timelineData.frameList.length&&(e=0);var a=this._timelineData.frameList[this._currentFrameIndex],n=this._timelineData.frameList[e],s=!1;0==e&&this._animationState.playTimes&&this._animationState.currentPlayTimes>=this._animationState.playTimes&&((this._currentFramePosition+this._currentFrameDuration)/this._totalTime+i-this._timelineData.offset)*this._timelineData.scale>.999999?(this._tweenEasing=NaN,s=!1):this._animationState.autoTween?(this._tweenEasing=this._animationState.animationData.tweenEasing,isNaN(this._tweenEasing)?(this._tweenEasing=a.tweenEasing,this._tweenCurve=a.curve,isNaN(this._tweenEasing)&&null==this._tweenCurve?s=!1:(10==this._tweenEasing&&(this._tweenEasing=0),s=!0)):s=!0):(this._tweenEasing=a.tweenEasing,this._tweenCurve=a.curve,!isNaN(this._tweenEasing)&&10!=this._tweenEasing||null!=this._tweenCurve?s=!0:(this._tweenEasing=NaN,s=!1)),s?(this._durationTransform.x=n.transform.x-a.transform.x,this._durationTransform.y=n.transform.y-a.transform.y,this._durationTransform.skewX=n.transform.skewX-a.transform.skewX,this._durationTransform.skewY=n.transform.skewY-a.transform.skewY,this._durationTransform.scaleX=n.transform.scaleX-a.transform.scaleX+n.scaleOffset.x,this._durationTransform.scaleY=n.transform.scaleY-a.transform.scaleY+n.scaleOffset.y,this._durationPivot.x=n.pivot.x-a.pivot.x,this._durationPivot.y=n.pivot.y-a.pivot.y,this._durationTransform.normalizeRotation(),0==e&&(this._durationTransform.skewX=t.TransformUtil.formatRadian(this._durationTransform.skewX),this._durationTransform.skewY=t.TransformUtil.formatRadian(this._durationTransform.skewY)),this._durationTransform.x||this._durationTransform.y||this._durationTransform.skewX||this._durationTransform.skewY||1!=this._durationTransform.scaleX||1!=this._durationTransform.scaleY||this._durationPivot.x||this._durationPivot.y?this._tweenTransform=!0:this._tweenTransform=!1):this._tweenTransform=!1,this._tweenTransform||(this._transform.copy(a.transform),this._pivot.x=this._originPivot.x+a.pivot.x,this._pivot.y=this._originPivot.y+a.pivot.y,this._bone.invalidUpdate())},a.updateTween=function(){var i=(this._currentTime-this._currentFramePosition)/this._currentFrameDuration;this._tweenCurve?i=this._tweenCurve.getValueByProgress(i):this._tweenEasing&&(i=t.MathUtil.getEaseValue(i,this._tweenEasing));var e=this._timelineData.frameList[this._currentFrameIndex],a=e.transform,n=e.pivot;this._transform.x=a.x+this._durationTransform.x*i,this._transform.y=a.y+this._durationTransform.y*i,this._transform.skewX=a.skewX+this._durationTransform.skewX*i,this._transform.skewY=a.skewY+this._durationTransform.skewY*i,this._transform.scaleX=a.scaleX+this._durationTransform.scaleX*i,this._transform.scaleY=a.scaleY+this._durationTransform.scaleY*i,this._pivot.x=n.x+this._durationPivot.x*i,this._pivot.y=n.y+this._durationPivot.y*i,this._bone.invalidUpdate()},i._pool=[],i}();t.FastBoneTimelineState=i,egret.registerClass(i,"dragonBones.FastBoneTimelineState")}(dragonBones||(dragonBones={}));var dragonBones;!function(t){var i=function(){function i(){this._totalTime=0,this._currentTime=0,this._currentFrameIndex=0,this._currentFramePosition=0,this._currentFrameDuration=0,this._updateMode=0,this._durationColor=new t.ColorTransform}var e=(__define,i),a=e.prototype;return i.borrowObject=function(){return 0==i._pool.length?new i:i._pool.pop()},i.returnObject=function(t){i._pool.indexOf(t)<0&&(i._pool[i._pool.length]=t),t.clear()},i.clear=function(){for(var t=i._pool.length;t--;)i._pool[t].clear();i._pool.length=0},a.clear=function(){this._slot=null,this._armature=null,this._animation=null,this._animationState=null,this._timelineData=null},a.fadeIn=function(t,i,e){switch(this._slot=t,this._armature=this._slot.armature,this._animation=this._armature.animation,this._animationState=i,this._timelineData=e,this.name=e.name,this._totalTime=this._timelineData.duration,this._isComplete=!1,this._blendEnabled=!1,this._tweenColor=!1,this._currentFrameIndex=-1,this._currentTime=-1,this._tweenEasing=NaN,this._weight=1,this._timelineData.frameList.length){case 0:this._updateMode=0;break;case 1:this._updateMode=1;break;default:this._updateMode=-1}},a.updateFade=function(t){},a.update=function(t){this._updateMode==-1?this.updateMultipleFrame(t):1==this._updateMode&&(this._updateMode=0,this.updateSingleFrame())},a.updateMultipleFrame=function(t){var i=0;t/=this._timelineData.scale,t+=this._timelineData.offset;var e=this._totalTime*t,a=this._animationState.playTimes;if(0==a)this._isComplete=!1,i=Math.ceil(Math.abs(e)/this._totalTime)||1,e-=Math.floor(e/this._totalTime)*this._totalTime,e<0&&(e+=this._totalTime);else{var n=a*this._totalTime;e>=n?(e=n,this._isComplete=!0):e<=-n?(e=-n,this._isComplete=!0):this._isComplete=!1,e<0&&(e+=n),i=Math.ceil(e/this._totalTime)||1,this._isComplete?e=this._totalTime:e-=Math.floor(e/this._totalTime)*this._totalTime}if(this._currentTime!=e){this._currentTime=e;for(var s,r,o=this._timelineData.frameList,l=0,h=this._timelineData.frameList.length;l=this._currentFramePosition+this._currentFrameDuration))break;if(this._currentFrameIndex++,this._currentFrameIndex>=o.length){if(this._isComplete){this._currentFrameIndex--;break}this._currentFrameIndex=0}}r=o[this._currentFrameIndex],s&&this._slot._arriveAtFrame(s,this._animationState),this._currentFrameDuration=r.duration,this._currentFramePosition=r.position,s=r}r&&(this._slot._arriveAtFrame(r,this._animationState),this._blendEnabled=r.displayIndex>=0,this._blendEnabled?this.updateToNextFrame(i):(this._tweenEasing=NaN,this._tweenColor=!1)),this._blendEnabled&&this.updateTween()}},a.updateToNextFrame=function(i){void 0===i&&(i=0);var e=this._currentFrameIndex+1;e>=this._timelineData.frameList.length&&(e=0);var a=this._timelineData.frameList[this._currentFrameIndex],n=this._timelineData.frameList[e],s=!1;if(0==e&&this._animationState.playTimes&&this._animationState.currentPlayTimes>=this._animationState.playTimes&&((this._currentFramePosition+this._currentFrameDuration)/this._totalTime+i-this._timelineData.offset)*this._timelineData.scale>.999999?(this._tweenEasing=NaN,s=!1):a.displayIndex<0||n.displayIndex<0?(this._tweenEasing=NaN,s=!1):this._animationState.autoTween?(this._tweenEasing=this._animationState.animationData.tweenEasing,isNaN(this._tweenEasing)?(this._tweenEasing=a.tweenEasing,this._tweenCurve=a.curve,isNaN(this._tweenEasing)&&null==this._tweenCurve?s=!1:(10==this._tweenEasing&&(this._tweenEasing=0),s=!0)):s=!0):(this._tweenEasing=a.tweenEasing,this._tweenCurve=a.curve,!isNaN(this._tweenEasing)&&10!=this._tweenEasing||null!=this._tweenCurve?s=!0:(this._tweenEasing=NaN,s=!1)),s&&(a.color||n.color)?(t.ColorTransformUtil.minus(n.color||t.ColorTransformUtil.originalColor,a.color||t.ColorTransformUtil.originalColor,this._durationColor),this._tweenColor=0!=this._durationColor.alphaOffset||0!=this._durationColor.redOffset||0!=this._durationColor.greenOffset||0!=this._durationColor.blueOffset||0!=this._durationColor.alphaMultiplier||0!=this._durationColor.redMultiplier||0!=this._durationColor.greenMultiplier||0!=this._durationColor.blueMultiplier):this._tweenColor=!1,!this._tweenColor){var r,o;a.color?(r=a.color,o=!0):(r=t.ColorTransformUtil.originalColor,o=!1),(this._slot._isColorChanged||o)&&(t.ColorTransformUtil.isEqual(this._slot._colorTransform,r)||this._slot._updateDisplayColor(r.alphaOffset,r.redOffset,r.greenOffset,r.blueOffset,r.alphaMultiplier,r.redMultiplier,r.greenMultiplier,r.blueMultiplier,o))}},a.updateTween=function(){var i=this._timelineData.frameList[this._currentFrameIndex];if(this._tweenColor){var e=(this._currentTime-this._currentFramePosition)/this._currentFrameDuration;null!=this._tweenCurve?e=this._tweenCurve.getValueByProgress(e):this._tweenEasing&&(e=t.MathUtil.getEaseValue(e,this._tweenEasing)),i.color?this._slot._updateDisplayColor(i.color.alphaOffset+this._durationColor.alphaOffset*e,i.color.redOffset+this._durationColor.redOffset*e,i.color.greenOffset+this._durationColor.greenOffset*e,i.color.blueOffset+this._durationColor.blueOffset*e,i.color.alphaMultiplier+this._durationColor.alphaMultiplier*e,i.color.redMultiplier+this._durationColor.redMultiplier*e,i.color.greenMultiplier+this._durationColor.greenMultiplier*e,i.color.blueMultiplier+this._durationColor.blueMultiplier*e,!0):this._slot._updateDisplayColor(this._durationColor.alphaOffset*e,this._durationColor.redOffset*e,this._durationColor.greenOffset*e,this._durationColor.blueOffset*e,this._durationColor.alphaMultiplier*e+1,this._durationColor.redMultiplier*e+1,this._durationColor.greenMultiplier*e+1,this._durationColor.blueMultiplier*e+1,!0)}},a.updateSingleFrame=function(){var i=this._timelineData.frameList[0];if(this._slot._arriveAtFrame(i,this._animationState),this._isComplete=!0,this._tweenEasing=NaN,this._tweenColor=!1,this._blendEnabled=i.displayIndex>=0,this._blendEnabled){var e,a;i.color?(e=i.color,a=!0):(e=t.ColorTransformUtil.originalColor,a=!1),(this._slot._isColorChanged||a)&&(t.ColorTransformUtil.isEqual(this._slot._colorTransform,e)||this._slot._updateDisplayColor(e.alphaOffset,e.redOffset,e.greenOffset,e.blueOffset,e.alphaMultiplier,e.redMultiplier,e.greenMultiplier,e.blueMultiplier,a))}},i.HALF_PI=.5*Math.PI,i.DOUBLE_PI=2*Math.PI,i._pool=[],i}();t.FastSlotTimelineState=i,egret.registerClass(i,"dragonBones.FastSlotTimelineState")}(dragonBones||(dragonBones={})),function(){var t=dragonBones.DataParser,i=dragonBones.TextureData,e=function(t,i,e){this._textureDatas={},this.scale=e||1,this.texture=t,this.name=i.name,this.parseData(i)};e.rotatedDic={},e.prototype={constructor:e,getTexture:function(t){var i=this._textureDatas[t];return i&&(i.texture=this.texture,i.rotated&&(e.rotatedDic[t]=1)),i},dispose:function(){this.texture=null,this._textureDatas={}; +},getRegion:function(t){var e=this._textureDatas[t];return e&&e instanceof i?e.region:null},getFrame:function(t){var e=this._textureDatas[t];return e&&e instanceof i?e.frame:null},parseData:function(i){this._textureDatas=t.parseTextureAtlasData(i,this.scale)}},dragonBones.TextureAtlas=e}(),function(t){var i=(180/Math.PI,dragonBones.TextureAtlas),e=function(){t.call(this,this),this._display=null};__extends(e,t,{dispose:function(){if(this._displayList)for(var i=this._displayList.length,e=0;e=0&&this._displayDataList[this._currentDisplayIndex]&&1==i.rotatedDic[this._displayDataList[this._currentDisplayIndex].name]&&(this._global.skewX-=1.57,this._global.skewY-=1.57)}}),dragonBones.HiloSlot=e}(dragonBones.Slot),function(t){var i=dragonBones.Armature,e=dragonBones.HiloSlot,a=function(){t.call(this,this)};__extends(a,t,{_generateArmature:function(){var t=new i(new Hilo.Container);return t},_generateSlot:function(){var t=new e;return t},_generateDisplay:function(t,i,e,a){var n=t.getTexture(i),s=n.region,r=new Hilo.Bitmap({image:t.texture,rect:[s.x,s.y,s.width,s.height]});if(isNaN(e)||isNaN(a)){var o=t.getFrame(i);null!=o?(e=o.width/2+o.x,a=o.height/2+o.y):(e=n.region.width/2,a=n.region.height/2)}return r.pivotX=e,r.pivotY=a,r.transform=(new Hilo.Matrix).identity(),r}}),dragonBones.HiloFactory=a}(dragonBones.BaseFactory),dragonBones.tick=function(t){dragonBones.WorldClock.clock.advanceTime(.001*t)}; \ No newline at end of file diff --git a/build/flash/hilo-flash.js b/build/flash/hilo-flash.js index 3b24b1be..66be17fe 100644 --- a/build/flash/hilo-flash.js +++ b/build/flash/hilo-flash.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for flashAdaptor + * Hilo 1.2.0 for flashAdaptor * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/flash/hilo-flash.min.js b/build/flash/hilo-flash.min.js index 38b3c4fc..916f60b0 100644 --- a/build/flash/hilo-flash.min.js +++ b/build/flash/hilo-flash.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for flashAdaptor + * Hilo 1.2.0 for flashAdaptor * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo-kissy.js b/build/kissy/hilo-kissy.js index 3500ac54..eb0e7861 100644 --- a/build/kissy/hilo-kissy.js +++ b/build/kissy/hilo-kissy.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -192,7 +192,7 @@ return browser; }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -229,7 +229,7 @@ return util; }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -257,7 +257,7 @@ var Hilo = { * Hilo version * @type String */ - version: '1.1.11', + version: '1.2.0', /** * @language=en * Gets a globally unique id. Such as Stage1, Bitmap2 etc. @@ -461,12 +461,23 @@ var Hilo = { if (this.cacheStateIfChanged(obj, ['depth'], stateCache)) { style.zIndex = obj.depth + 1; } - if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { - style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + if (obj.transform){ + var transform = obj.transform; + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = '0 0'; + } + style[prefix + 'Transform'] = 'matrix3d(' + transform.a + ', '+ transform.b + ', 0, 0, '+ transform.c + ', '+ transform.d + ', 0, 0, 0, 0, 1, 0, '+ transform.tx + ', '+ transform.ty + ', 0, 1)'; } - if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { - style[prefix + 'Transform'] = this.getTransformCSS(obj); + else{ + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + } + + if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { + style[prefix + 'Transform'] = this.getTransformCSS(obj); + } } + if (this.cacheStateIfChanged(obj, ['background'], stateCache)) { style.backgroundColor = obj.background; } @@ -556,7 +567,7 @@ return Hilo; requires: ['hilo/util/browser', 'hilo/util/util'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -739,7 +750,7 @@ return Class; }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -769,6 +780,50 @@ var Matrix = Class.create(/** @lends Matrix.prototype */{ this.ty = ty; }, + /** + * set + * @param {Number} a + * @param {Number} b + * @param {Number} c + * @param {Number} d + * @param {Number} tx + * @param {Number} ty + */ + set: function(a, b, c, d, tx, ty){ + this.a = a; + this.b = b; + this.c = c; + this.d = d; + this.tx = tx; + this.ty = ty; + + return this; + }, + + /** + * copy + * @param {Matrix} mat + * @return {Matrix} this + */ + copy: function(mat){ + this.a = mat.a; + this.b = mat.b; + this.c = mat.c; + this.d = mat.d; + this.tx = mat.tx; + this.ty = mat.ty; + + return this; + }, + + /** + * clone + * @return {Matrix} + */ + clone: function(){ + return new Matrix().copy(this); + }, + /** * @language=en * Link a Matrix to current Matrix, in order to make geometry effects on these two composed more effective. @@ -921,7 +976,7 @@ return Matrix; requires: ['hilo/core/Class'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1076,7 +1131,7 @@ return EventMixin; requires: ['hilo/core/Class'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1159,7 +1214,7 @@ return Drawable; requires: ['hilo/core/Class', 'hilo/util/util'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1255,7 +1310,7 @@ return Renderer; requires: ['hilo/core/Class', 'hilo/util/util'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1274,26 +1329,26 @@ KISSY.add('hilo/renderer/CanvasRenderer', function(S, Class, Hilo, Renderer){ * @requires hilo/renderer/Renderer * @property {CanvasRenderingContext2D} context The context of the canvas element, readonly. */ -var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ +var CanvasRenderer = Class.create( /** @lends CanvasRenderer.prototype */ { Extends: Renderer, - constructor: function(properties){ + constructor: function(properties) { CanvasRenderer.superclass.constructor.call(this, properties); this.context = this.canvas.getContext("2d"); }, - renderType:'canvas', + renderType: 'canvas', context: null, /** * @private * @see Renderer#startDraw */ - startDraw: function(target){ - if(target.visible && target.alpha > 0){ - if(target === this.stage){ + startDraw: function(target) { + if (target.visible && target.alpha > 0) { + if (target === this.stage) { this.context.clearRect(0, 0, target.width, target.height); } - if(target.blendMode !== this.blendMode){ + if (target.blendMode !== this.blendMode) { this.context.globalCompositeOperation = this.blendMode = target.blendMode; } this.context.save(); @@ -1306,31 +1361,38 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#draw */ - draw: function(target){ - var ctx = this.context, w = target.width, h = target.height; + draw: function(target) { + var ctx = this.context, + w = target.width, + h = target.height; //draw background var bg = target.background; - if(bg){ + if (bg) { ctx.fillStyle = bg; ctx.fillRect(0, 0, w, h); } //draw image - var drawable = target.drawable, image = drawable && drawable.image; - if(image){ - var rect = drawable.rect, sw = rect[2], sh = rect[3], offsetX = rect[4], offsetY = rect[5]; + var drawable = target.drawable, + image = drawable && drawable.image; + if (image) { + var rect = drawable.rect, + sw = rect[2], + sh = rect[3], + offsetX = rect[4], + offsetY = rect[5]; //ie9+浏览器宽高为0时会报错 fixed ie9 bug. - if(!sw || !sh){ + if (!sw || !sh) { return; } - if(!w && !h){ + if (!w && !h) { //fix width/height TODO: how to get rid of this? w = target.width = sw; h = target.height = sh; } //the pivot is the center of frame if has offset, otherwise is (0, 0) - if(offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); + if (offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); ctx.drawImage(image, rect[0], rect[1], sw, sh, 0, 0, w, h); } }, @@ -1339,7 +1401,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#endDraw */ - endDraw: function(target){ + endDraw: function(target) { this.context.restore(); }, @@ -1347,9 +1409,9 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#transform */ - transform: function(target){ + transform: function(target) { var drawable = target.drawable; - if(drawable && drawable.domElement){ + if (drawable && drawable.domElement) { Hilo.setElementStyleByView(target); return; } @@ -1358,66 +1420,72 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ scaleX = target.scaleX, scaleY = target.scaleY; - if(target === this.stage){ + if (target === this.stage) { var style = this.canvas.style, oldScaleX = target._scaleX, oldScaleY = target._scaleY, isStyleChange = false; - if((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)){ + if ((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)) { target._scaleX = scaleX; style.width = scaleX * target.width + "px"; isStyleChange = true; } - if((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)){ + if ((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)) { target._scaleY = scaleY; style.height = scaleY * target.height + "px"; isStyleChange = true; } - if(isStyleChange){ + if (isStyleChange) { target.updateViewport(); } - }else{ + } else { var x = target.x, y = target.y, pivotX = target.pivotX, pivotY = target.pivotY, rotation = target.rotation % 360, + transform = target.transform, mask = target.mask; - if(mask){ + if (mask) { mask._render(this); ctx.clip(); } //alignment var align = target.align; - if(align){ + if (align) { var pos = target.getAlignPosition(); x = pos.x; y = pos.y; } + + if (transform) { + ctx.transform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); + } else { + if (x != 0 || y != 0) ctx.translate(x, y); + if (rotation != 0) ctx.rotate(rotation * Math.PI / 180); + if (scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); + if (pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); + } - if(x != 0 || y != 0) ctx.translate(x, y); - if(rotation != 0) ctx.rotate(rotation * Math.PI / 180); - if(scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); - if(pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); } - if(target.alpha > 0) ctx.globalAlpha *= target.alpha; + if (target.alpha > 0) ctx.globalAlpha *= target.alpha; }, /** * @private * @see Renderer#remove */ - remove: function(target){ + remove: function(target) { var drawable = target.drawable; var elem = drawable && drawable.domElement; - if(elem){ + if (elem) { var parentElem = elem.parentNode; - if(parentElem){ + if (parentElem) { parentElem.removeChild(elem); } } @@ -1427,7 +1495,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#clear */ - clear: function(x, y, width, height){ + clear: function(x, y, width, height) { this.context.clearRect(x, y, width, height); }, @@ -1435,7 +1503,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#resize */ - resize: function(width, height){ + resize: function(width, height) { var canvas = this.canvas; var stage = this.stage; var style = canvas.style; @@ -1455,7 +1523,7 @@ return CanvasRenderer; requires: ['hilo/core/Class', 'hilo/core/Hilo', 'hilo/renderer/Renderer'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1639,7 +1707,7 @@ return DOMRenderer; requires: ['hilo/core/Class', 'hilo/core/Hilo', 'hilo/renderer/Renderer', 'hilo/view/Drawable'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -2063,21 +2131,28 @@ var WebGLRenderer = Class.create(/** @lends WebGLRenderer.prototype */{ var cos = 1, sin = 0, rotation = view.rotation % 360, pivotX = view.pivotX, pivotY = view.pivotY, - scaleX = view.scaleX, scaleY = view.scaleY; + scaleX = view.scaleX, scaleY = view.scaleY, + transform = view.transform; - if(rotation){ - var r = rotation * DEG2RAD; - cos = Math.cos(r); - sin = Math.sin(r); + if (transform) { + mtx.copy(transform); } + else { + if(rotation){ + var r = rotation * DEG2RAD; + cos = Math.cos(r); + sin = Math.sin(r); + } + + var pos = view.getAlignPosition(); - var pos = view.getAlignPosition(); - mtx.a = cos*scaleX; - mtx.b = sin*scaleX; - mtx.c = -sin*scaleY; - mtx.d = cos*scaleY; - mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; - mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + mtx.a = cos*scaleX; + mtx.b = sin*scaleX; + mtx.c = -sin*scaleY; + mtx.d = cos*scaleY; + mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; + mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + } mtx.concat(ancestor.__webglWorldMatrix); }, @@ -2211,7 +2286,7 @@ return WebGLRenderer; requires: ['hilo/core/Class', 'hilo/core/Hilo', 'hilo/renderer/Renderer', 'hilo/geom/Matrix'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -2245,6 +2320,7 @@ KISSY.add('hilo/view/View', function(S, Hilo, Class, EventMixin, Matrix, util){ * @property {Number} pivotY Position of the center point on the y axis of the view, default value is 0. * @property {Number} scaleX The x axis scale factor of the view, default value is 1. * @property {Number} scaleY The y axis scale factor of the view, default value is 1. + * @property {Matrix} transform The transform of the view.If set the transform, x, y, scaleX, scaleY, rotation, pivotX, pivotY will be ignored.default is null. * @property {Boolean} pointerEnabled Is the view can receive DOM events, default value is true. * @property {Object} background The background style to fill the view, can be css color, gradient or pattern of canvas * @property {Graphics} mask Sets a mask for the view. A mask is an object that limits the visibility of an object to the shape of the mask applied to it. A regular mask must be a Hilo.Graphics object. This allows for much faster masking in canvas as it utilises shape clipping. To remove a mask, set this property to null. @@ -2286,6 +2362,7 @@ return Class.create(/** @lends View.prototype */{ boundsArea: null, parent: null, depth: -1, + transform: null, blendMode:'source-over', /** @@ -2398,19 +2475,26 @@ return Class.create(/** @lends View.prototype */{ var cos = 1, sin = 0, rotation = o.rotation % 360, pivotX = o.pivotX, pivotY = o.pivotY, - scaleX = o.scaleX, scaleY = o.scaleY; + scaleX = o.scaleX, scaleY = o.scaleY, + transform = o.transform; - if(rotation){ - var r = rotation * Math.PI / 180; - cos = Math.cos(r); - sin = Math.sin(r); + if(transform) { + mtx.concat(transform); } + else{ + if(rotation){ + var r = rotation * Math.PI / 180; + cos = Math.cos(r); + sin = Math.sin(r); + } - if(pivotX != 0) mtx.tx -= pivotX; - if(pivotY != 0) mtx.ty -= pivotY; + if(pivotX != 0) mtx.tx -= pivotX; + if(pivotY != 0) mtx.ty -= pivotY; - var pos = o.getAlignPosition(); - mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + var pos = o.getAlignPosition(); + mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + } + } return mtx; }, @@ -2701,7 +2785,7 @@ return View; requires: ['hilo/core/Hilo', 'hilo/core/Class', 'hilo/event/EventMixin', 'hilo/geom/Matrix', 'hilo/util/util'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -2769,7 +2853,7 @@ return CacheMixin; requires: ['hilo/view/Drawable', 'hilo/util/browser'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3145,7 +3229,7 @@ return Container; requires: ['hilo/core/Hilo', 'hilo/core/Class', 'hilo/view/View'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3414,7 +3498,7 @@ return Stage; requires: ['hilo/core/Hilo', 'hilo/core/Class', 'hilo/view/Container', 'hilo/renderer/CanvasRenderer', 'hilo/renderer/DOMRenderer', 'hilo/renderer/WebGLRenderer', 'hilo/util/browser', 'hilo/util/util'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3494,7 +3578,7 @@ return Bitmap; requires: ['hilo/core/Hilo', 'hilo/core/Class', 'hilo/view/View', 'hilo/view/Drawable'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3767,7 +3851,7 @@ return Sprite; requires: ['hilo/core/Hilo', 'hilo/core/Class', 'hilo/view/View', 'hilo/view/Drawable'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3852,7 +3936,8 @@ var DOMElement = Class.create(/** @lends DOMElement.prototype */{ style:{ 'position':'absolute', 'transform':'scale3d(' + stage.scaleX + ',' + stage.scaleY + ', 1)', - 'transformOrigin':'0 0' + 'transformOrigin':'0 0', + 'zIndex':'1' } }); canvas.parentNode.insertBefore(renderer._domElementContainer, canvas.nextSibling); @@ -3883,7 +3968,7 @@ return DOMElement; requires: ['hilo/core/Hilo', 'hilo/core/Class', 'hilo/view/View', 'hilo/view/Drawable'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -4438,7 +4523,7 @@ return Graphics; requires: ['hilo/core/Hilo', 'hilo/core/Class', 'hilo/view/View', 'hilo/view/CacheMixin'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -4693,7 +4778,7 @@ return Text; requires: ['hilo/core/Class', 'hilo/core/Hilo', 'hilo/view/View', 'hilo/view/CacheMixin'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -4879,7 +4964,7 @@ return BitmapText; requires: ['hilo/core/Class', 'hilo/core/Hilo', 'hilo/view/Container', 'hilo/view/Bitmap'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5060,7 +5145,7 @@ return Button; requires: ['hilo/core/Hilo', 'hilo/core/Class', 'hilo/view/View', 'hilo/view/Drawable', 'hilo/util/util'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5299,7 +5384,7 @@ return TextureAtlas; requires: ['hilo/core/Class'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5530,7 +5615,7 @@ return Ticker; requires: ['hilo/core/Class', 'hilo/util/browser'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5578,7 +5663,7 @@ if (!fnProto.bind) { }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5719,7 +5804,7 @@ return drag; requires: ['hilo/core/Hilo'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6171,7 +6256,7 @@ return Tween; requires: ['hilo/core/Class'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6443,7 +6528,7 @@ return Ease; }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6493,7 +6578,7 @@ return ImageLoader; requires: ['hilo/core/Class'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6562,7 +6647,7 @@ return ScriptLoader; requires: ['hilo/core/Class'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6612,6 +6697,7 @@ var LoadQueue = Class.create(/** @lends LoadQueue.prototype */{ *
  • loader - specified resource loader. If you specify this,we abandon choosing loader inside
  • *
  • noCache - a tag that set on or off to prevent cache,implemented by adding timestamp inside
  • *
  • size - predicted resource size, help calculating loading progress
  • + *
  • crossOrigin - Whether cross-domain is needed. eg:crossOrigin='anonymous'
  • * * @returns {LoadQueue} 下载队列实例本身。 */ @@ -6813,7 +6899,7 @@ return LoadQueue; requires: ['hilo/core/Class', 'hilo/event/EventMixin', 'hilo/loader/ImageLoader', 'hilo/loader/ScriptLoader'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7018,7 +7104,7 @@ return HTMLAudio; requires: ['hilo/core/Class', 'hilo/util/util', 'hilo/event/EventMixin'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7337,7 +7423,7 @@ return WebAudio; requires: ['hilo/core/Class', 'hilo/util/util', 'hilo/event/EventMixin'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7442,7 +7528,7 @@ return WebSound; requires: ['hilo/media/HTMLAudio', 'hilo/media/WebAudio', 'hilo/util/util'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7537,7 +7623,7 @@ return Camera; requires: ['hilo/core/Class', 'hilo/util/util'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7726,7 +7812,7 @@ return Camera3d; requires: ['hilo/core/Class', 'hilo/util/util'] }); /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo-kissy.min.js b/build/kissy/hilo-kissy.min.js index 88b75a2f..d758661b 100644 --- a/build/kissy/hilo-kissy.min.js +++ b/build/kissy/hilo-kissy.min.js @@ -1,8 +1,8 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ -KISSY.add("hilo/util/browser",function(t){var e=function(){var t=navigator.userAgent,e=document,i=window,r=e.documentElement,n={iphone:/iphone/i.test(t),ipad:/ipad/i.test(t),ipod:/ipod/i.test(t),ios:/iphone|ipad|ipod/i.test(t),android:/android/i.test(t),webkit:/webkit/i.test(t),chrome:/chrome/i.test(t),safari:/safari/i.test(t),firefox:/firefox/i.test(t),ie:/msie/i.test(t),opera:/opera/i.test(t),supportTouch:"ontouchstart"in i,supportCanvas:null!=e.createElement("canvas").getContext,supportStorage:!1,supportOrientation:"orientation"in i||"orientation"in i.screen,supportDeviceMotion:"ondevicemotion"in i};try{var a="hilo";localStorage.setItem(a,a),localStorage.removeItem(a),n.supportStorage=!0}catch(o){}var s=n.jsVendor=n.webkit?"webkit":n.firefox?"webkit":n.opera?"o":n.ie?"ms":"",h=n.cssVendor="-"+s+"-",l=e.createElement("div"),c=l.style,u=void 0!=c[s+"Transform"],d=void 0!=c[s+"Perspective"];d&&(l.id="test3d",c=e.createElement("style"),c.textContent="@media ("+h+"transform-3d){#test3d{height:3px}}",e.head.appendChild(c),r.appendChild(l),d=3==l.offsetHeight,e.head.removeChild(c),r.removeChild(l)),n.supportTransform=u,n.supportTransform3D=d;var f=n.supportTouch,p=f?"touchstart":"mousedown",v=f?"touchmove":"mousemove",m=f?"touchend":"mouseup";return n.POINTER_START=p,n.POINTER_MOVE=v,n.POINTER_END=m,n}();return e}),KISSY.add("hilo/util/util",function(t){var e={copy:function(t,e,i){for(var r in e)i&&!t.hasOwnProperty(r)&&void 0===t[r]||(t[r]=e[r]);return t}};return e}),KISSY.add("hilo/core/Hilo",function(t,e,i){var r=window,n=document,a=n.documentElement,o=0,s={},h={version:"1.1.11",getUid:function(t){var e=++o;if(t){var i=t.charCodeAt(t.length-1);return i>=48&&i<=57&&(t+="_"),t+e}return e},viewToString:function(t){for(var e,i=t;i;)e=e?i.id+"."+e:i.id,i=i.parent;return e},copy:function(t,e,r){return i.copy(t,e,r),s.copy||(s.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),t},browser:e,event:{POINTER_START:e.POINTER_START,POINTER_MOVE:e.POINTER_MOVE,POINTER_END:e.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(t){var e;try{e=t.getBoundingClientRect()}catch(i){e={top:t.offsetTop,left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,bottom:t.offsetTop+t.offsetHeight}}var n=(r.pageXOffset||a.scrollLeft)-(a.clientLeft||0)||0,o=(r.pageYOffset||a.scrollTop)-(a.clientTop||0)||0,s=r.getComputedStyle?getComputedStyle(t):t.currentStyle,h=parseInt,l=h(s.paddingLeft)+h(s.borderLeftWidth)||0,c=h(s.paddingTop)+h(s.borderTopWidth)||0,u=h(s.paddingRight)+h(s.borderRightWidth)||0,d=h(s.paddingBottom)+h(s.borderBottomWidth)||0,f=e.top||0,p=e.left||0,v=e.right||0,m=e.bottom||0;return{left:p+n+l,top:f+o+c,width:v-u-p-l,height:m-d-f-c}},createElement:function(t,e){var i,r,a,o=n.createElement(t);for(i in e)if(r=e[i],"style"===i)for(a in r)o.style[a]=r[a];else o[i]=r;return o},getElement:function(t){return n.getElementById(t)},setElementStyleByView:function(t){var e=t.drawable,i=e.domElement.style,r=t._stateCache||(t._stateCache={}),n=h.browser.jsVendor,a="px",o=!1;if(this.cacheStateIfChanged(t,["visible"],r)&&(i.display=t.visible?"":"none"),this.cacheStateIfChanged(t,["alpha"],r)&&(i.opacity=t.alpha),t.visible&&!(t.alpha<=0)){this.cacheStateIfChanged(t,["width"],r)&&(i.width=t.width+a),this.cacheStateIfChanged(t,["height"],r)&&(i.height=t.height+a),this.cacheStateIfChanged(t,["depth"],r)&&(i.zIndex=t.depth+1),(o=this.cacheStateIfChanged(t,["pivotX","pivotY"],r))&&(i[n+"TransformOrigin"]=t.pivotX+a+" "+t.pivotY+a),(this.cacheStateIfChanged(t,["x","y","rotation","scaleX","scaleY"],r)||o)&&(i[n+"Transform"]=this.getTransformCSS(t)),this.cacheStateIfChanged(t,["background"],r)&&(i.backgroundColor=t.background),i.pointerEvents||(i.pointerEvents="none");var s=e.image;if(s){var l=s.src;l!==r.image&&(r.image=l,i.backgroundImage="url("+l+")");var c=e.rect;if(c){var u=c[0],d=c[1];u!==r.sx&&(r.sx=u,i.backgroundPositionX=-u+a),d!==r.sy&&(r.sy=d,i.backgroundPositionY=-d+a)}}var f=t.mask;if(f){var p=f.drawable.domElement.style.backgroundImage;p!==r.maskImage&&(r.maskImage=p,i[n+"MaskImage"]=p,i[n+"MaskRepeat"]="no-repeat");var v=f.x,m=f.y;v===r.maskX&&m===r.maskY||(r.maskX=v,r.maskY=m,i[n+"MaskPosition"]=v+a+" "+m+a)}}},cacheStateIfChanged:function(t,e,i){var r,n,a,o,s=!1;for(r=0,n=e.length;r=6?(e=s[0],i=s[1],r=s[2],n=s[3],a=s[4],o=s[5]):(e=t.a,i=t.b,r=t.c,n=t.d,a=t.tx,o=t.ty),this.a=h*e+l*r,this.b=h*i+l*n,this.c=c*e+u*r,this.d=c*i+u*n,this.tx=d*e+f*r+a,this.ty=d*i+f*n+o,this},rotate:function(t){var e=Math.sin(t),i=Math.cos(t),r=this.a,n=this.b,a=this.c,o=this.d,s=this.tx,h=this.ty;return this.a=r*i-n*e,this.b=r*e+n*i,this.c=a*i-o*e,this.d=a*e+o*i,this.tx=s*i-h*e,this.ty=s*e+h*i,this},scale:function(t,e){return this.a*=t,this.d*=e,this.c*=t,this.b*=e,this.tx*=t,this.ty*=e,this},translate:function(t,e){return this.tx+=t,this.ty+=e,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,e=this.b,i=this.c,r=this.d,n=this.tx,a=t*r-e*i;return this.a=r/a,this.b=-e/a,this.c=-i/a,this.d=t/a,this.tx=(i*this.ty-r*n)/a,this.ty=-(t*this.ty-e*n)/a,this},transformPoint:function(t,e,i){var r=t.x*this.a+t.y*this.c+this.tx,n=t.x*this.b+t.y*this.d+this.ty;return e&&(r=r+.5>>0,n=n+.5>>0),i?{x:r,y:n}:(t.x=r,t.y=n,t)}});return i},{requires:["hilo/core/Class"]}),KISSY.add("hilo/event/EventMixin",function(t,e){var i={_listeners:null,on:function(t,e,i){for(var r=this._listeners=this._listeners||{},n=r[t]=r[t]||[],a=0,o=n.length;a-1&&o.splice(c,1)}}return 0==o.length&&delete a[n],!0}return!1}},r=e.create({constructor:function(t,e,i){this.type=t,this.target=e,this.detail=i,this.timeStamp=+new Date},type:null,target:null,detail:null,timeStamp:0,stopImmediatePropagation:function(){this._stopped=!0}}),n=window.Event;if(n){var a=n.prototype,o=a.stopImmediatePropagation;a.stopImmediatePropagation=function(){o&&o.call(this),this._stopped=!0}}return i},{requires:["hilo/core/Class"]}),KISSY.add("hilo/view/Drawable",function(t,e,i){var r=e.create({constructor:function(t){this.init(t)},image:null,rect:null,init:function(t){var e=this,n=e.image;r.isDrawable(t)?e.image=t:i.copy(e,t,!0);var a=e.image;if("string"==typeof a){if(!n||a!==n.getAttribute("src")){e.image=null;var o=new Image;return t.crossOrigin&&(o.crossOrigin=t.crossOrigin),o.onload=function(){o.onload=null,e.init(o)},void(o.src=a)}a=e.image=n}a&&!e.rect&&(e.rect=[0,0,a.width,a.height])},Statics:{isDrawable:function(t){if(!t||!t.tagName)return!1;var e=t.tagName.toLowerCase();return"img"===e||"canvas"===e||"video"===e}}});return r},{requires:["hilo/core/Class","hilo/util/util"]}),KISSY.add("hilo/renderer/Renderer",function(t,e,i){var r=e.create({constructor:function(t){t=t||{},i.copy(this,t,!0)},renderType:null,canvas:null,stage:null,blendMode:"source-over",startDraw:function(t){},draw:function(t){},endDraw:function(t){},transform:function(){},hide:function(){},remove:function(t){},clear:function(t,e,i,r){},resize:function(t,e){}});return r},{requires:["hilo/core/Class","hilo/util/util"]}),KISSY.add("hilo/renderer/CanvasRenderer",function(t,e,i,r){var n=e.create({Extends:r,constructor:function(t){n.superclass.constructor.call(this,t),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(t){return!!(t.visible&&t.alpha>0)&&(t===this.stage&&this.context.clearRect(0,0,t.width,t.height),t.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=t.blendMode),this.context.save(),!0)},draw:function(t){var e=this.context,i=t.width,r=t.height,n=t.background;n&&(e.fillStyle=n,e.fillRect(0,0,i,r));var a=t.drawable,o=a&&a.image;if(o){var s=a.rect,h=s[2],l=s[3],c=s[4],u=s[5];if(!h||!l)return;i||r||(i=t.width=h,r=t.height=l),(c||u)&&e.translate(c-.5*h,u-.5*l),e.drawImage(o,s[0],s[1],h,l,0,0,i,r)}},endDraw:function(t){this.context.restore()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void i.setElementStyleByView(t);var r=this.context,n=t.scaleX,a=t.scaleY;if(t===this.stage){var o=this.canvas.style,s=t._scaleX,h=t._scaleY,l=!1;(!s&&1!=n||s&&s!=n)&&(t._scaleX=n,o.width=n*t.width+"px",l=!0),(!h&&1!=a||h&&h!=a)&&(t._scaleY=a,o.height=a*t.height+"px",l=!0),l&&t.updateViewport()}else{var c=t.x,u=t.y,d=t.pivotX,f=t.pivotY,p=t.rotation%360,v=t.mask;v&&(v._render(this),r.clip());var m=t.align;if(m){var g=t.getAlignPosition();c=g.x,u=g.y}0==c&&0==u||r.translate(c,u),0!=p&&r.rotate(p*Math.PI/180),1==n&&1==a||r.scale(n,a),0==d&&0==f||r.translate(-d,-f)}t.alpha>0&&(r.globalAlpha*=t.alpha)},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},clear:function(t,e,i,r){this.context.clearRect(t,e,i,r)},resize:function(t,e){var i=this.canvas,r=this.stage,n=i.style;i.width=t,i.height=e,n.width=r.width*r.scaleX+"px",n.height=r.height*r.scaleY+"px"}});return n},{requires:["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer"]}),KISSY.add("hilo/renderer/DOMRenderer",function(t,e,i,r,n){var a=function(){function t(t,e){var r=t.tagName||"div",n=e.image,a=t.width||n&&n.width,o=t.height||n&&n.height,s=i.createElement(r),h=s.style;if(t.id&&(s.id=t.id),h.position="absolute",h.left=(t.left||0)+"px",h.top=(t.top||0)+"px",h.width=a+"px",h.height=o+"px","canvas"==r){if(s.width=a,s.height=o,n){var l=s.getContext("2d"),c=e.rect||[0,0,a,o];l.drawImage(n,c[0],c[1],c[2],c[3],t.x||0,t.y||0,t.width||c[2],t.height||c[3])}}else if(h.opacity=void 0!=t.alpha?t.alpha:1,(t===this.stage||t.clipChildren)&&(h.overflow="hidden"),n&&n.src){h.backgroundImage="url("+n.src+")";var u=t.rectX||0,d=t.rectY||0;h.backgroundPosition=-u+"px "+-d+"px"}return s}return e.create({Extends:r,constructor:function(t){a.superclass.constructor.call(this,t)},renderType:"dom",startDraw:function(e){var i=e.drawable=e.drawable||new n;return i.domElement=i.domElement||t(e,i),!0},draw:function(t){var e=t.parent,i=t.drawable.domElement,r=i.parentNode;if(e){var n=e.drawable.domElement;if(n!=r&&n.appendChild(i),!t.width&&!t.height){var a=t.drawable.rect;a&&(a[2]||a[3])&&(t.width=a[2],t.height=a[3])}}else t!==this.stage||r||(i.style.overflow="hidden",this.canvas.appendChild(i))},transform:function(t){if(i.setElementStyleByView(t),t===this.stage){var e=this.canvas.style,r=t._scaleX,n=t._scaleY,a=t.scaleX,o=t.scaleY;(!r&&1!=a||r&&r!=a)&&(t._scaleX=a,e.width=a*t.width+"px"),(!n&&1!=o||n&&n!=o)&&(t._scaleY=o,e.height=o*t.height+"px")}},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},hide:function(t){var e=t.drawable&&t.drawable.domElement;e&&(e.style.display="none")},resize:function(t,e){var i=this.canvas.style;i.width=t+"px",i.height=e+"px","absolute"!=i.position&&(i.position="relative")}})}();return a},{requires:["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer","hilo/view/Drawable"]}),KISSY.add("hilo/renderer/WebGLRenderer",function(t,e,i,r,n){var a=Math.PI/180,o=e.create({Extends:r,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var t=document.createElement("canvas");t.getContext&&(t.getContext("webgl")||t.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(t){o.superclass.constructor.call(this,t);var e=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=o.MAX_BATCH_NUM,this.positionStride=4*o.ATTRIBUTE_NUM;var i=this.maxBatchNum*o.ATTRIBUTE_NUM*4,r=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*i),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(r);for(var n=0,a=0;n0)&&(t===this.stage&&this.clear(),!0)},draw:function(t){var e=t.width,i=t.height,r=(t.background,t.drawable),n=r&&r.image;if(n){var a=r.rect,o=a[2],s=a[3];e||i||(e=t.width=o,i=t.height=s),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var h=this._createVertexs(n,a[0],a[1],o,s,0,0,e,i),l=this.batchIndex*this.positionStride,c=this.float32Array,u=this.uint32Array,d=(t.tint>>16)+(65280&t.tint)+((255&t.tint)<<16)+(255*t.__webglRenderAlpha<<24);c[l+0]=h[0],c[l+1]=h[1],c[l+2]=h[2],c[l+3]=h[3],u[l+4]=d,c[l+5]=h[4],c[l+6]=h[5],c[l+7]=h[6],c[l+8]=h[7],u[l+9]=d,c[l+10]=h[8],c[l+11]=h[9],c[l+12]=h[10],c[l+13]=h[11],u[l+14]=d,c[l+15]=h[12],c[l+16]=h[13],c[l+17]=h[14],c[l+18]=h[15],u[l+19]=d;for(var f=t.__webglWorldMatrix,p=0;p<4;p++){var v=c[l+5*p],m=c[l+5*p+1];c[l+5*p]=f.a*v+f.c*m+f.tx,c[l+5*p+1]=f.b*v+f.d*m+f.ty}t.__textureImage=n,this.sprites[this.batchIndex++]=t}},endDraw:function(t){t===this.stage&&this._renderBatches()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void i.setElementStyleByView(t);var r=t.scaleX,a=t.scaleY;if(t===this.stage){var o=this.canvas.style,s=t._scaleX,h=t._scaleY,l=!1;(!s&&1!=r||s&&s!=r)&&(t._scaleX=r,o.width=r*t.width+"px",l=!0),(!h&&1!=a||h&&h!=a)&&(t._scaleY=a,o.height=a*t.height+"px",l=!0),l&&t.updateViewport(),t.__webglWorldMatrix=t.__webglWorldMatrix||new n(1,0,0,1,0,0)}else t.parent&&(t.__webglWorldMatrix=t.__webglWorldMatrix||new n(1,0,0,1,0,0),this._setConcatenatedMatrix(t,t.parent));t.alpha>0&&(t.parent&&t.parent.__webglRenderAlpha?t.__webglRenderAlpha=t.alpha*t.parent.__webglRenderAlpha:t.__webglRenderAlpha=t.alpha)},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},clear:function(t,e,i,r){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(t,e){if(this.width!==t||this.height!==e){var i=this.canvas,r=this.stage,n=i.style;this.width=i.width=t,this.height=i.height=e,n.width=r.width*r.scaleX+"px",n.height=r.height*r.scaleY+"px",this.gl.viewport(0,0,t,e),this.canvasHalfWidth=.5*t,this.canvasHalfHeight=.5*e,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var t=this.gl;t.bufferSubData(t.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var e=0,i=0,r=null,n=0;n0&&(i.bindTexture(i.TEXTURE_2D,this._getTexture(this.sprites[t])),i.drawElements(i.TRIANGLES,6*r,i.UNSIGNED_SHORT,6*t*2))},_uploadProjectionTransform:function(t){this._projectionTransformElements&&!t||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var t=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",e="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new s(this,{v:t,f:e},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(t,e,i,r,n,a,o,s,h){var l=this.__tempVertexs||[],c=t.width,u=t.height;r/=c,n/=u,e/=c,i/=u,s=s,h=h,a=a,o=o,r+e>1&&(r=1-e),n+i>1&&(n=1-i);var d=0;return l[d++]=a,l[d++]=o,l[d++]=e,l[d++]=i,l[d++]=a+s,l[d++]=o,l[d++]=e+r,l[d++]=i,l[d++]=a,l[d++]=o+h,l[d++]=e,l[d++]=i+n,l[d++]=a+s,l[d++]=o+h,l[d++]=e+r,l[d++]=i+n,l},_setConcatenatedMatrix:function(t,e){var i=t.__webglWorldMatrix,r=1,n=0,o=t.rotation%360,s=t.pivotX,h=t.pivotY,l=t.scaleX,c=t.scaleY;if(o){var u=o*a;r=Math.cos(u),n=Math.sin(u)}var d=t.getAlignPosition();i.a=r*l,i.b=n*l,i.c=-n*c,i.d=r*c,i.tx=d.x-i.a*s-i.c*h,i.ty=d.y-i.b*s-i.d*h,i.concat(e.__webglWorldMatrix)},_getTexture:function(t){var e=t.__textureImage,i=this._cacheTexture[e.src];return i||(i=this.activeShader.uploadTexture(e)),i}}),s=function(t,e,i){this.renderer=t,this.gl=t.gl,this.program=this._createProgram(this.gl,e.v,e.f),i=i||{},this.attributes=i.attributes||[],this.uniforms=i.uniforms||[]};return s.prototype={active:function(){var t=this,e=t.renderer,i=t.gl,r=t.program;r&&i&&(e.activeShader=t,i.useProgram(r),t.attributes.forEach(function(t){e[t]=i.getAttribLocation(r,t),i.enableVertexAttribArray(e[t])}),t.uniforms.forEach(function(t){e[t]=i.getUniformLocation(r,t)}),t.width===e.width&&t.height===e.height||(t.width=e.width,t.height=e.height,e._uploadProjectionTransform()))},uploadTexture:function(t){var e=this.gl,i=this.renderer,r=e.createTexture(),n=i.u_Sampler;return e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,r),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.uniform1i(n,0),e.bindTexture(e.TEXTURE_2D,null),this.renderer._cacheTexture[t.src]=r,r},_createProgram:function(t,e,i){var r=this._createShader(t,t.VERTEX_SHADER,e),n=this._createShader(t,t.FRAGMENT_SHADER,i);if(!r||!n)return null;var a=t.createProgram();if(a){t.attachShader(a,r),t.attachShader(a,n),t.linkProgram(a),t.deleteShader(n),t.deleteShader(r);var o=t.getProgramParameter(a,t.LINK_STATUS);if(!o){var s=t.getProgramInfoLog(a);return console.log("Failed to link program: "+s),t.deleteProgram(a),null}}return a},_createShader:function(t,e,i){var r=t.createShader(e);if(r){t.shaderSource(r,i),t.compileShader(r);var n=t.getShaderParameter(r,t.COMPILE_STATUS);if(!n){var a=t.getShaderInfoLog(r);return console.log("Failed to compile shader: "+a),t.deleteShader(r),null}}return r}},o},{requires:["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer","hilo/geom/Matrix"]}),KISSY.add("hilo/view/View",function(t,e,i,r,n,a){var o=function(){function t(t,e,i){for(var r,n,a,o,s=0,h=!1,l=0,c=i.length;ld.x?(r=d.x,n=u.x):(r=u.x,n=d.x),t>=r&&t<=n))h=!0;else if(u.y>d.y?(a=d.y,o=u.y):(a=u.y,o=d.y),!(eo)){var f=(e-u.y)*(d.x-u.x)/(d.y-u.y)+u.x;if(f>t?s++:f==t&&(h=!0),u.x>t&&u.y==e){var p=i[(c+l-1)%c];(p.ye||p.y>e&&d.ys?s=c:cl?l=c:c=0)return!1;u>i.overlap&&(i.overlap=u,i.normal.x=p.x,i.normal.y=p.y)}return i}return i.create({Mixes:r,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("View"),a.copy(this,t,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,r,n,a,o,s=this.width,h=this.height,l=this.getConcatenatedMatrix(),c=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:h},{x:0,y:h}],u=[],d=0,f=c.length;de?r=e:ni?a=i:o>1,r=0;break;case"TR":i=o-n,r=0;break;case"L":i=0,r=s-a>>1;break;case"C":i=o-n>>1,r=s-a>>1;break;case"R":i=o-n,r=s-a>>1;break;case"BL":i=0,r=s-a;break;case"B":i=o-n>>1,r=s-a;break;case"BR":i=o-n,r=s-a}}return{x:i,y:r}},hitTestPoint:function(e,i,r){var n=this.getBounds(),a=e>=n.x&&e<=n.x+n.width&&i>=n.y&&i<=n.y+n.height;return a&&r&&(a=t(e,i,n)),a},hitTestObject:function(t,e){var i=this.getBounds(),r=t.getBounds(),n=i.x<=r.x+r.width&&r.x<=i.x+i.width&&i.y<=r.y+r.height&&r.y<=i.y+i.height;return n&&e&&(n=o(i,r)),!!n},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=a.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return e.viewToString(this)}})}();return o},{requires:["hilo/core/Hilo","hilo/core/Class","hilo/event/EventMixin","hilo/geom/Matrix","hilo/util/util"]}),KISSY.add("hilo/view/CacheMixin",function(t,e,i){var r,n,a={_cacheDirty:!0,cache:function(t){(t||this._cacheDirty||!this.drawable)&&this.updateCache()},updateCache:function(){i.supportCanvas&&(r||(r=document.createElement("canvas"),n=r.getContext("2d")),r.width=this.width,r.height=this.height,this._draw(n),this.drawable=this.drawable||new e,this.drawable.init({image:r.toDataURL()}),this._cacheDirty=!1)},setCacheDirty:function(t){this._cacheDirty=t}};return a},{requires:["hilo/view/Drawable","hilo/util/browser"]}),KISSY.add("hilo/view/Container",function(t,e,i,r){var n=i.create({Extends:r,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("Container"),n.superclass.constructor.call(this,t),this.children?this._updateChildren():this.children=[]},children:null,pointerChildren:!0,clipChildren:!1,getNumChildren:function(){return this.children.length},addChildAt:function(t,e){var i=this.children,r=i.length,n=t.parent;e=e<0?0:e>r?r:e;var a=this.getChildIndex(t);if(a==e)return this;if(a>=0?(i.splice(a,1),e=e==r?r-1:e):n&&n.removeChild(t),i.splice(e,0,t),a<0)this._updateChildren(e);else{var o=a=e.length)return null;var i=e[t];if(i){if(!i.__renderer)for(var r=i;r=r.parent;){if(r.renderer){i.__renderer=r.renderer;break}if(r.__renderer){i.__renderer=r.__renderer;break}}i.__renderer&&i.__renderer.remove(i),i.parent=null,i.depth=-1}return e.splice(t,1),this._updateChildren(t),i},removeChild:function(t){return this.removeChildAt(this.getChildIndex(t))},removeChildById:function(t){for(var e,i=this.children,r=0,n=i.length;r=e.length?null:e[t]},getChildById:function(t){for(var e,i=this.children,r=0,n=i.length;r=0&&r!=e){var n=i.length;e=e<0?0:e>=n?n-1:e,i.splice(r,1),i.splice(e,0,t),this._updateChildren()}return this},swapChildren:function(t,e){var i=this.children,r=this.getChildIndex(t),n=this.getChildIndex(e);t.depth=n,i[n]=t,e.depth=r,i[r]=e},swapChildrenAt:function(t,e){var i=this.children,r=this.getChildAt(t),n=this.getChildAt(e);r.depth=e,i[e]=r,n.depth=t,i[t]=n},sortChildren:function(t){var e=t,i=this.children;if("string"==typeof e){var r=e;e=function(t,e){return e[r]-t[r]}}i.sort(e),this._updateChildren()},_updateChildren:function(t,e){var i,r=this.children;t=t||0,e=e||r.length;for(var n=t;n=0;l--)if(a=h[l],!(!a||!a.visible||a.alpha<=0||n&&!a.pointerEnabled))if(a.children&&a.children.length&&(!n||a.pointerChildren)&&(o=a.getViewAtPoint(t,e,i,r,n)),o){if(!r)return o;o.length&&(s=s.concat(o))}else if(a.hitTestPoint(t,e,i)){if(!r)return a;s.push(a)}return r&&s.length?s:null},render:function(t,e){n.superclass.render.call(this,t,e);var i,r,a,o=this.children.slice(0);for(i=0,r=o.length;ir?r:e,i[e]=t,t.name&&(this._frameNames[t.name]=t),(0!=e||this.width)&&this.height||(this.width=t.rect[2],this.height=t.rect[3]),this},getFrame:function(t){if("number"==typeof t){var e=this._frames;return t<0||t>=e.length?null:e[t]}return this._frameNames[t]},getFrameIndex:function(t){var e=this._frames,i=e.length,r=-1;if("number"==typeof t)r=t;else{var n="string"==typeof t?this._frameNames[t]:t;if(n)for(var a=0;a=i?i-1:r,this.paused=e,this._firstRender=!0,this},_render:function(t,e){var i,r=this.currentFrame;if(this._firstRender?(i=r,this._firstRender=!1):i=this._nextFrame(e),i!=r){this.currentFrame=i;var n=this._frames[i].callback;n&&n.call(this)}this.onEnterFrame&&this.onEnterFrame(i),this.drawable.init(this._frames[i]),a.superclass._render.call(this,t,e)},_nextFrame:function(t){var e=this._frames,i=e.length,r=this.currentFrame,n=e[r],a=n.duration||this.interval,o=this._frameElapsed,s=0!=r||this.drawable?o+(this.timeBased?t:1):0;return o=this._frameElapsed=s=i-1)&&this.stop(),this.paused||0!=o||(null!=n.next?r=this.getFrameIndex(n.next):r>=i-1?r=0:this.drawable&&r++),r},setFrameCallback:function(t,e){return t=this.getFrame(t),t&&(t.callback=e),this},onEnterFrame:null});return a},{requires:["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/Drawable"]}),KISSY.add("hilo/view/DOMElement",function(t,e,i,r,n){var a=i.create({Extends:r,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("DOMElement"),a.superclass.constructor.call(this,t),this.drawable=new n;var i=this.drawable.domElement=t.element||e.createElement("div");i.id=this.id,this.pointerEnabled&&!i.style.pointerEvents&&(i.style.pointerEvents="visible")},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||(t.transform(this),this.visible&&this.alpha>0&&this.render(t,e))},render:function(t,i){if("dom"!==t.renderType){var r=t.canvas,n=this.parent,a=t._domElementContainer;t._domElementContainer||(a=t._domElementContainer=e.createElement("div",{style:{position:"absolute",transform:"scale3d("+n.scaleX+","+n.scaleY+", 1)",transformOrigin:"0 0"}}),r.parentNode.insertBefore(t._domElementContainer,r.nextSibling));var o,s=this.drawable.domElement,h=this.depth,l=a.childNodes[0];if(s.parentNode)return;for(;l&&3!=l.nodeType&&(o=parseInt(l.style.zIndex)||0,!(o<=0||o>h));)l=l.nextSibling;a.insertBefore(this.drawable.domElement,l)}else t.draw(this)}});return a},{requires:["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/Drawable"]}),KISSY.add("hilo/view/Graphics",function(t,e,i,r,n){var a=function(){var t=document.createElement("canvas"),o=t.getContext&&t.getContext("2d");return i.create({Extends:r,Mixes:n,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("Graphics"),a.superclass.constructor.call(this,t),this._actions=[]},lineWidth:1,lineAlpha:1,lineCap:null,lineJoin:null,miterLimit:10,hasStroke:!1,strokeStyle:"0",hasFill:!1,fillStyle:"0",fillAlpha:0,lineStyle:function(t,e,i,r,n,a){var o=this,s=o._addAction;return s.call(o,["lineWidth",o.lineWidth=t||1]),s.call(o,["strokeStyle",o.strokeStyle=e||"0"]),s.call(o,["lineAlpha",o.lineAlpha=i||1]),void 0!=r&&s.call(o,["lineCap",o.lineCap=r]),void 0!=n&&s.call(o,["lineJoin",o.lineJoin=n]),void 0!=a&&s.call(o,["miterLimit",o.miterLimit=a]),o.hasStroke=!0,o},beginFill:function(t,e){var i=this,r=i._addAction;return r.call(i,["fillStyle",i.fillStyle=t]),r.call(i,["fillAlpha",i.fillAlpha=e||1]),i.hasFill=!0,i},endFill:function(){var t=this,e=t._addAction;return t.hasStroke&&e.call(t,["stroke"]),t.hasFill&&e.call(t,["fill"]),t.setCacheDirty(!0),t},beginLinearGradientFill:function(t,e,i,r,n,a){for(var s=this,h=o.createLinearGradient(t,e,i,r),l=0,c=n.length;l1?a.slice(1):null;"function"==typeof t[o]?t[o].apply(t,s):t[o]=a[1]}},render:function(t,e){var i=this;"canvas"===t.renderType?i._draw(t.context):(i.cache(),t.draw(i))},clear:function(){var t=this;return t._actions.length=0,t.lineWidth=1,t.lineAlpha=1,t.lineCap=null,t.lineJoin=null,t.miterLimit=10,t.hasStroke=!1,t.strokeStyle="0",t.hasFill=!1,t.fillStyle="0",t.fillAlpha=1,t.setCacheDirty(!0),t},_addAction:function(t){var e=this;return e._actions.push(t),e}})}();return a},{requires:["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/CacheMixin"]}),KISSY.add("hilo/view/Text",function(t,e,i,r,n){var a=e.create({Extends:r,Mixes:n,constructor:function(t){t=t||{},this.id=this.id||t.id||i.getUid("Text"),a.superclass.constructor.call(this,t),t.font||(this.font="12px arial"),this._fontHeight=a.measureFontHeight(this.font)},text:null,color:"#000",textAlign:null,textVAlign:null,outline:!1,lineSpacing:0,maxWidth:200,font:null,textWidth:0,textHeight:0,setFont:function(t){var e=this;return e.font!==t&&(e.font=t,e._fontHeight=a.measureFontHeight(t)),e},render:function(t,e){var i=this;if("canvas"===t.renderType)this.drawable?t.draw(i):i._draw(t.context);else if("dom"===t.renderType){var r=i.drawable,n=r.domElement,a=n.style;a.font=i.font,a.textAlign=i.textAlign,a.color=i.color,a.width=i.width+"px",a.height=i.height+"px",a.lineHeight=i._fontHeight+i.lineSpacing+"px",n.innerHTML=i.text,t.draw(this)}else i.cache(),t.draw(i)},_draw:function(t){var e=this,i=e.text.toString();if(i){t.font=e.font,t.textAlign=e.textAlign,t.textBaseline="top";var r,n,a,o,s,h=i.split(/\r\n|\r|\n|/),l=0,c=0,u=e._fontHeight+e.lineSpacing,d=[];for(r=0,o=h.length;re.maxWidth?(d.push({text:m,y:c}),l>1;break;case"bottom":_=e.height-e.textHeight}var x=e.background;for(x&&(t.fillStyle=x,t.fillRect(0,0,e.width,e.height)),e.outline?t.strokeStyle=e.color:t.fillStyle=e.color,r=0;r>1;break;case"right":case"end":n=a}r.outline?t.strokeText(e,n,i):t.fillText(e,n,i)},Statics:{measureFontHeight:function(t){var e,r=document.documentElement,n=i.createElement("div",{style:{font:t,position:"absolute"},innerHTML:"M"});return r.appendChild(n),e=n.offsetHeight,r.removeChild(n),e}}});return a},{requires:["hilo/core/Class","hilo/core/Hilo","hilo/view/View","hilo/view/CacheMixin"]}),KISSY.add("hilo/view/BitmapText",function(t,e,i,r,n){var a=e.create({Extends:r,constructor:function(t){t=t||{},this.id=this.id||t.id||i.getUid("BitmapText"),a.superclass.constructor.call(this,t);var e=t.text+"";e&&(this.text="",this.setText(e)),this.pointerChildren=!1},glyphs:null,letterSpacing:0,text:"",textAlign:"left",setText:function(t){var e=this,i=t.toString(),r=i.length;if(e.text!=i){e.text=i;var n,a,o,s,h=0,l=0,c=0;for(n=0;n0?e.letterSpacing:0),e.children[n]?(s=e.children[n],s.setImage(o.image,o.rect)):(s=e._createBitmap(o),e.addChild(s)),s.x=c,h=c+o.rect[2],l=Math.max(l,o.rect[3]));for(n=e.children.length-1;n>=r;n--)e._releaseBitmap(e.children[n]),e.children[n].removeFromParent();return e.width=h,e.height=l,this.setTextAlign(),e}},_createBitmap:function(t){var e;return a._pool.length?(e=a._pool.pop(),e.setImage(t.image,t.rect)):e=new n({image:t.image,rect:t.rect}),e},_releaseBitmap:function(t){a._pool.push(t)},setTextAlign:function(t){switch(this.textAlign=t||this.textAlign,this.textAlign){case"center":this.pivotX=.5*this.width;break;case"right":this.pivotX=this.width;break;case"left":default:this.pivotX=0}return this},hasGlyphs:function(t){var e=this.glyphs;if(!e)return!1;t=t.toString();var i,r=t.length;for(i=0;i=this._targetFPS?(this._measuredFPS=1e3/(this._tickTime/this._tickCount)+.5>>0,this._tickCount=0,this._tickTime=0):this._tickTime+=t-this._lastTime,this._lastTime=t;for(var r=i.slice(0),n=0,a=r.length;n=0&&e.splice(i,1)},nextTick:function(t){var e=this,i={tick:function(r){e.removeTick(i),t()}};return e.addTick(i),i},timeout:function(t,e){var i=this,r=(new Date).getTime()+e,n={tick:function(){var e=(new Date).getTime(),a=e-r;a>=0&&(i.removeTick(n),t())}};return i.addTick(n),n},interval:function(t,e){var i=this,r=(new Date).getTime()+e,n={tick:function(){var i=(new Date).getTime(),n=i-r;n>=0&&(n=r)return-1;for(e<0&&(e=r+e),i=e;i=1?1:s;var l=n.ease?n.ease(s):s;n.reverse&&(n._reverseFlag<0&&(s=1-s,l=1-l),s<1e-7&&(n.repeat>0&&n._repeatCount++>=n.repeat||0==n.repeat&&!n.loop?h=!0:(n._startTime=t(),n._pausedTime=0,n._reverseFlag*=-1))),n.isStart||(n.setProps(n._fromProps,n._toProps),n.isStart=!0,n.onStart&&n.onStart.call(n,n)),n.time=a,n._render(l),(o=n.onUpdate)&&o.call(n,s,n),s>=1&&(n.reverse?(n._startTime=t(),n._pausedTime=0,n._reverseFlag*=-1):n.loop||n.repeat>0&&n._repeatCount++0&&u<=e?(c._render(s),c.time=a,i.add(c)):h&&(u<0||u>e)&&c.start()}return h?((o=n.onComplete)&&o.call(n,n),!0):void 0}}},Statics:{_tweens:[],tick:function(){var e,r,n=i._tweens,a=n.length;for(r=0;r-1&&n.splice(e,1);else for(e=0;e=i)return void t.fire("complete");if(t._currentIndexe.z})},tick:function(){this.sortZ()}});return o}();return r},{requires:["hilo/core/Class","hilo/util/util"]}),KISSY.add("hilo/game/ParticleSystem",function(t,e,i,r,n,a,o){var s=function(){function t(t,e){return e?t+2*(Math.random()-.5)*e:t}for(var s=["x","y","vx","vy","ax","ay","rotation","rotationV","scale","scaleV","alpha","alphaV","life"],h=[],l=0,c=s.length;l=this._emitTime&&(this._currentRunTime=0,this._emitTime=t(this.emitTime,this.emitTimeVar),this._emit()),this._totalRunTime>=this.totalTime&&this.stop())},_emit:function(){for(var e=t(this.emitNum,this.emitNumVar)>>0,i=0;i=0;e--)this.children[e].destroy()}}),v=i.create({Extends:r,constructor:function(t){this.id=this.id||t.id||e.getUid("Particle"),v.superclass.constructor.call(this,t),this.init(t)},onUpdate:function(t){if(t*=.001,this._died)return!1;var e=this.ax+this.system.gx,i=this.ay+this.system.gy;return this.vx+=e*t,this.vy+=i*t,this.x+=this.vx*t,this.y+=this.vy*t,this.rotation+=this.rotationV,this._time>.1&&(this.alpha+=this.alphaV),this.scale+=this.scaleV,this.scaleX=this.scaleY=this.scale,this._time+=t,this._time>=this.life||this.alpha<=0?(this.destroy(),!1):void 0},setImage:function(t,e){this.drawable=this.drawable||new a,e=e||[0,0,t.width,t.height],this.width=e[2],this.height=e[3],this.drawable.rect=e,this.drawable.image=t},destroy:function(){this._died=!0,this.alpha=0,this.removeFromParent(),f.push(this)},init:function(e){this.system=e.system,this._died=!1,this._time=0,this.alpha=1;for(var i=0,r=h.length;i>0]),this.setImage(e.image,o),void 0!==e.pivotX&&(this.pivotX=e.pivotX*o[2]),void 0!==e.pivotY&&(this.pivotY=e.pivotY*o[3])}},Statics:{create:function(t){if(f.length>0){var e=f.pop();return e.init(t),e}return new v(t)}}});return p}();return s},{requires:["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/Container","hilo/view/Drawable","hilo/util/util"]}); \ No newline at end of file +KISSY.add("hilo/util/browser",function(t){var e=function(){var t=navigator.userAgent,e=document,i=window,r=e.documentElement,n={iphone:/iphone/i.test(t),ipad:/ipad/i.test(t),ipod:/ipod/i.test(t),ios:/iphone|ipad|ipod/i.test(t),android:/android/i.test(t),webkit:/webkit/i.test(t),chrome:/chrome/i.test(t),safari:/safari/i.test(t),firefox:/firefox/i.test(t),ie:/msie/i.test(t),opera:/opera/i.test(t),supportTouch:"ontouchstart"in i,supportCanvas:null!=e.createElement("canvas").getContext,supportStorage:!1,supportOrientation:"orientation"in i||"orientation"in i.screen,supportDeviceMotion:"ondevicemotion"in i};try{var a="hilo";localStorage.setItem(a,a),localStorage.removeItem(a),n.supportStorage=!0}catch(o){}var s=n.jsVendor=n.webkit?"webkit":n.firefox?"webkit":n.opera?"o":n.ie?"ms":"",h=n.cssVendor="-"+s+"-",l=e.createElement("div"),c=l.style,u=void 0!=c[s+"Transform"],d=void 0!=c[s+"Perspective"];d&&(l.id="test3d",c=e.createElement("style"),c.textContent="@media ("+h+"transform-3d){#test3d{height:3px}}",e.head.appendChild(c),r.appendChild(l),d=3==l.offsetHeight,e.head.removeChild(c),r.removeChild(l)),n.supportTransform=u,n.supportTransform3D=d;var f=n.supportTouch,p=f?"touchstart":"mousedown",v=f?"touchmove":"mousemove",m=f?"touchend":"mouseup";return n.POINTER_START=p,n.POINTER_MOVE=v,n.POINTER_END=m,n}();return e}),KISSY.add("hilo/util/util",function(t){var e={copy:function(t,e,i){for(var r in e)i&&!t.hasOwnProperty(r)&&void 0===t[r]||(t[r]=e[r]);return t}};return e}),KISSY.add("hilo/core/Hilo",function(t,e,i){var r=window,n=document,a=n.documentElement,o=0,s={},h={version:"1.2.0",getUid:function(t){var e=++o;if(t){var i=t.charCodeAt(t.length-1);return i>=48&&i<=57&&(t+="_"),t+e}return e},viewToString:function(t){for(var e,i=t;i;)e=e?i.id+"."+e:i.id,i=i.parent;return e},copy:function(t,e,r){return i.copy(t,e,r),s.copy||(s.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),t},browser:e,event:{POINTER_START:e.POINTER_START,POINTER_MOVE:e.POINTER_MOVE,POINTER_END:e.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(t){var e;try{e=t.getBoundingClientRect()}catch(i){e={top:t.offsetTop,left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,bottom:t.offsetTop+t.offsetHeight}}var n=(r.pageXOffset||a.scrollLeft)-(a.clientLeft||0)||0,o=(r.pageYOffset||a.scrollTop)-(a.clientTop||0)||0,s=r.getComputedStyle?getComputedStyle(t):t.currentStyle,h=parseInt,l=h(s.paddingLeft)+h(s.borderLeftWidth)||0,c=h(s.paddingTop)+h(s.borderTopWidth)||0,u=h(s.paddingRight)+h(s.borderRightWidth)||0,d=h(s.paddingBottom)+h(s.borderBottomWidth)||0,f=e.top||0,p=e.left||0,v=e.right||0,m=e.bottom||0;return{left:p+n+l,top:f+o+c,width:v-u-p-l,height:m-d-f-c}},createElement:function(t,e){var i,r,a,o=n.createElement(t);for(i in e)if(r=e[i],"style"===i)for(a in r)o.style[a]=r[a];else o[i]=r;return o},getElement:function(t){return n.getElementById(t)},setElementStyleByView:function(t){var e=t.drawable,i=e.domElement.style,r=t._stateCache||(t._stateCache={}),n=h.browser.jsVendor,a="px",o=!1;if(this.cacheStateIfChanged(t,["visible"],r)&&(i.display=t.visible?"":"none"),this.cacheStateIfChanged(t,["alpha"],r)&&(i.opacity=t.alpha),t.visible&&!(t.alpha<=0)){if(this.cacheStateIfChanged(t,["width"],r)&&(i.width=t.width+a),this.cacheStateIfChanged(t,["height"],r)&&(i.height=t.height+a),this.cacheStateIfChanged(t,["depth"],r)&&(i.zIndex=t.depth+1),t.transform){var s=t.transform;(o=this.cacheStateIfChanged(t,["pivotX","pivotY"],r))&&(i[n+"TransformOrigin"]="0 0"),i[n+"Transform"]="matrix3d("+s.a+", "+s.b+", 0, 0, "+s.c+", "+s.d+", 0, 0, 0, 0, 1, 0, "+s.tx+", "+s.ty+", 0, 1)"}else(o=this.cacheStateIfChanged(t,["pivotX","pivotY"],r))&&(i[n+"TransformOrigin"]=t.pivotX+a+" "+t.pivotY+a),(this.cacheStateIfChanged(t,["x","y","rotation","scaleX","scaleY"],r)||o)&&(i[n+"Transform"]=this.getTransformCSS(t));this.cacheStateIfChanged(t,["background"],r)&&(i.backgroundColor=t.background),i.pointerEvents||(i.pointerEvents="none");var l=e.image;if(l){var c=l.src;c!==r.image&&(r.image=c,i.backgroundImage="url("+c+")");var u=e.rect;if(u){var d=u[0],f=u[1];d!==r.sx&&(r.sx=d,i.backgroundPositionX=-d+a),f!==r.sy&&(r.sy=f,i.backgroundPositionY=-f+a)}}var p=t.mask;if(p){var v=p.drawable.domElement.style.backgroundImage;v!==r.maskImage&&(r.maskImage=v,i[n+"MaskImage"]=v,i[n+"MaskRepeat"]="no-repeat");var m=p.x,g=p.y;m===r.maskX&&g===r.maskY||(r.maskX=m,r.maskY=g,i[n+"MaskPosition"]=m+a+" "+g+a)}}},cacheStateIfChanged:function(t,e,i){var r,n,a,o,s=!1;for(r=0,n=e.length;r=6?(e=s[0],i=s[1],r=s[2],n=s[3],a=s[4],o=s[5]):(e=t.a,i=t.b,r=t.c,n=t.d,a=t.tx,o=t.ty),this.a=h*e+l*r,this.b=h*i+l*n,this.c=c*e+u*r,this.d=c*i+u*n,this.tx=d*e+f*r+a,this.ty=d*i+f*n+o,this},rotate:function(t){var e=Math.sin(t),i=Math.cos(t),r=this.a,n=this.b,a=this.c,o=this.d,s=this.tx,h=this.ty;return this.a=r*i-n*e,this.b=r*e+n*i,this.c=a*i-o*e,this.d=a*e+o*i,this.tx=s*i-h*e,this.ty=s*e+h*i,this},scale:function(t,e){return this.a*=t,this.d*=e,this.c*=t,this.b*=e,this.tx*=t,this.ty*=e,this},translate:function(t,e){return this.tx+=t,this.ty+=e,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,e=this.b,i=this.c,r=this.d,n=this.tx,a=t*r-e*i;return this.a=r/a,this.b=-e/a,this.c=-i/a,this.d=t/a,this.tx=(i*this.ty-r*n)/a,this.ty=-(t*this.ty-e*n)/a,this},transformPoint:function(t,e,i){var r=t.x*this.a+t.y*this.c+this.tx,n=t.x*this.b+t.y*this.d+this.ty;return e&&(r=r+.5>>0,n=n+.5>>0),i?{x:r,y:n}:(t.x=r,t.y=n,t)}});return i},{requires:["hilo/core/Class"]}),KISSY.add("hilo/event/EventMixin",function(t,e){var i={_listeners:null,on:function(t,e,i){for(var r=this._listeners=this._listeners||{},n=r[t]=r[t]||[],a=0,o=n.length;a-1&&o.splice(c,1)}}return 0==o.length&&delete a[n],!0}return!1}},r=e.create({constructor:function(t,e,i){this.type=t,this.target=e,this.detail=i,this.timeStamp=+new Date},type:null,target:null,detail:null,timeStamp:0,stopImmediatePropagation:function(){this._stopped=!0}}),n=window.Event;if(n){var a=n.prototype,o=a.stopImmediatePropagation;a.stopImmediatePropagation=function(){o&&o.call(this),this._stopped=!0}}return i},{requires:["hilo/core/Class"]}),KISSY.add("hilo/view/Drawable",function(t,e,i){var r=e.create({constructor:function(t){this.init(t)},image:null,rect:null,init:function(t){var e=this,n=e.image;r.isDrawable(t)?e.image=t:i.copy(e,t,!0);var a=e.image;if("string"==typeof a){if(!n||a!==n.getAttribute("src")){e.image=null;var o=new Image;return t.crossOrigin&&(o.crossOrigin=t.crossOrigin),o.onload=function(){o.onload=null,e.init(o)},void(o.src=a)}a=e.image=n}a&&!e.rect&&(e.rect=[0,0,a.width,a.height])},Statics:{isDrawable:function(t){if(!t||!t.tagName)return!1;var e=t.tagName.toLowerCase();return"img"===e||"canvas"===e||"video"===e}}});return r},{requires:["hilo/core/Class","hilo/util/util"]}),KISSY.add("hilo/renderer/Renderer",function(t,e,i){var r=e.create({constructor:function(t){t=t||{},i.copy(this,t,!0)},renderType:null,canvas:null,stage:null,blendMode:"source-over",startDraw:function(t){},draw:function(t){},endDraw:function(t){},transform:function(){},hide:function(){},remove:function(t){},clear:function(t,e,i,r){},resize:function(t,e){}});return r},{requires:["hilo/core/Class","hilo/util/util"]}),KISSY.add("hilo/renderer/CanvasRenderer",function(t,e,i,r){var n=e.create({Extends:r,constructor:function(t){n.superclass.constructor.call(this,t),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(t){return!!(t.visible&&t.alpha>0)&&(t===this.stage&&this.context.clearRect(0,0,t.width,t.height),t.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=t.blendMode),this.context.save(),!0)},draw:function(t){var e=this.context,i=t.width,r=t.height,n=t.background;n&&(e.fillStyle=n,e.fillRect(0,0,i,r));var a=t.drawable,o=a&&a.image;if(o){var s=a.rect,h=s[2],l=s[3],c=s[4],u=s[5];if(!h||!l)return;i||r||(i=t.width=h,r=t.height=l),(c||u)&&e.translate(c-.5*h,u-.5*l),e.drawImage(o,s[0],s[1],h,l,0,0,i,r)}},endDraw:function(t){this.context.restore()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void i.setElementStyleByView(t);var r=this.context,n=t.scaleX,a=t.scaleY;if(t===this.stage){var o=this.canvas.style,s=t._scaleX,h=t._scaleY,l=!1;(!s&&1!=n||s&&s!=n)&&(t._scaleX=n,o.width=n*t.width+"px",l=!0),(!h&&1!=a||h&&h!=a)&&(t._scaleY=a,o.height=a*t.height+"px",l=!0),l&&t.updateViewport()}else{var c=t.x,u=t.y,d=t.pivotX,f=t.pivotY,p=t.rotation%360,v=t.transform,m=t.mask;m&&(m._render(this),r.clip());var g=t.align;if(g){var _=t.getAlignPosition();c=_.x,u=_.y}v?r.transform(v.a,v.b,v.c,v.d,v.tx,v.ty):(0==c&&0==u||r.translate(c,u),0!=p&&r.rotate(p*Math.PI/180),1==n&&1==a||r.scale(n,a),0==d&&0==f||r.translate(-d,-f))}t.alpha>0&&(r.globalAlpha*=t.alpha)},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},clear:function(t,e,i,r){this.context.clearRect(t,e,i,r)},resize:function(t,e){var i=this.canvas,r=this.stage,n=i.style;i.width=t,i.height=e,n.width=r.width*r.scaleX+"px",n.height=r.height*r.scaleY+"px"}});return n},{requires:["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer"]}),KISSY.add("hilo/renderer/DOMRenderer",function(t,e,i,r,n){var a=function(){function t(t,e){var r=t.tagName||"div",n=e.image,a=t.width||n&&n.width,o=t.height||n&&n.height,s=i.createElement(r),h=s.style;if(t.id&&(s.id=t.id),h.position="absolute",h.left=(t.left||0)+"px",h.top=(t.top||0)+"px",h.width=a+"px",h.height=o+"px","canvas"==r){if(s.width=a,s.height=o,n){var l=s.getContext("2d"),c=e.rect||[0,0,a,o];l.drawImage(n,c[0],c[1],c[2],c[3],t.x||0,t.y||0,t.width||c[2],t.height||c[3])}}else if(h.opacity=void 0!=t.alpha?t.alpha:1,(t===this.stage||t.clipChildren)&&(h.overflow="hidden"),n&&n.src){h.backgroundImage="url("+n.src+")";var u=t.rectX||0,d=t.rectY||0;h.backgroundPosition=-u+"px "+-d+"px"}return s}return e.create({Extends:r,constructor:function(t){a.superclass.constructor.call(this,t)},renderType:"dom",startDraw:function(e){var i=e.drawable=e.drawable||new n;return i.domElement=i.domElement||t(e,i),!0},draw:function(t){var e=t.parent,i=t.drawable.domElement,r=i.parentNode;if(e){var n=e.drawable.domElement;if(n!=r&&n.appendChild(i),!t.width&&!t.height){var a=t.drawable.rect;a&&(a[2]||a[3])&&(t.width=a[2],t.height=a[3])}}else t!==this.stage||r||(i.style.overflow="hidden",this.canvas.appendChild(i))},transform:function(t){if(i.setElementStyleByView(t),t===this.stage){var e=this.canvas.style,r=t._scaleX,n=t._scaleY,a=t.scaleX,o=t.scaleY;(!r&&1!=a||r&&r!=a)&&(t._scaleX=a,e.width=a*t.width+"px"),(!n&&1!=o||n&&n!=o)&&(t._scaleY=o,e.height=o*t.height+"px")}},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},hide:function(t){var e=t.drawable&&t.drawable.domElement;e&&(e.style.display="none")},resize:function(t,e){var i=this.canvas.style;i.width=t+"px",i.height=e+"px","absolute"!=i.position&&(i.position="relative")}})}();return a},{requires:["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer","hilo/view/Drawable"]}),KISSY.add("hilo/renderer/WebGLRenderer",function(t,e,i,r,n){var a=Math.PI/180,o=e.create({Extends:r,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var t=document.createElement("canvas");t.getContext&&(t.getContext("webgl")||t.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(t){o.superclass.constructor.call(this,t);var e=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=o.MAX_BATCH_NUM,this.positionStride=4*o.ATTRIBUTE_NUM;var i=this.maxBatchNum*o.ATTRIBUTE_NUM*4,r=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*i),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(r);for(var n=0,a=0;n0)&&(t===this.stage&&this.clear(),!0)},draw:function(t){var e=t.width,i=t.height,r=(t.background,t.drawable),n=r&&r.image;if(n){var a=r.rect,o=a[2],s=a[3];e||i||(e=t.width=o,i=t.height=s),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var h=this._createVertexs(n,a[0],a[1],o,s,0,0,e,i),l=this.batchIndex*this.positionStride,c=this.float32Array,u=this.uint32Array,d=(t.tint>>16)+(65280&t.tint)+((255&t.tint)<<16)+(255*t.__webglRenderAlpha<<24);c[l+0]=h[0],c[l+1]=h[1],c[l+2]=h[2],c[l+3]=h[3],u[l+4]=d,c[l+5]=h[4],c[l+6]=h[5],c[l+7]=h[6],c[l+8]=h[7],u[l+9]=d,c[l+10]=h[8],c[l+11]=h[9],c[l+12]=h[10],c[l+13]=h[11],u[l+14]=d,c[l+15]=h[12],c[l+16]=h[13],c[l+17]=h[14],c[l+18]=h[15],u[l+19]=d;for(var f=t.__webglWorldMatrix,p=0;p<4;p++){var v=c[l+5*p],m=c[l+5*p+1];c[l+5*p]=f.a*v+f.c*m+f.tx,c[l+5*p+1]=f.b*v+f.d*m+f.ty}t.__textureImage=n,this.sprites[this.batchIndex++]=t}},endDraw:function(t){t===this.stage&&this._renderBatches()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void i.setElementStyleByView(t);var r=t.scaleX,a=t.scaleY;if(t===this.stage){var o=this.canvas.style,s=t._scaleX,h=t._scaleY,l=!1;(!s&&1!=r||s&&s!=r)&&(t._scaleX=r,o.width=r*t.width+"px",l=!0),(!h&&1!=a||h&&h!=a)&&(t._scaleY=a,o.height=a*t.height+"px",l=!0),l&&t.updateViewport(),t.__webglWorldMatrix=t.__webglWorldMatrix||new n(1,0,0,1,0,0)}else t.parent&&(t.__webglWorldMatrix=t.__webglWorldMatrix||new n(1,0,0,1,0,0),this._setConcatenatedMatrix(t,t.parent));t.alpha>0&&(t.parent&&t.parent.__webglRenderAlpha?t.__webglRenderAlpha=t.alpha*t.parent.__webglRenderAlpha:t.__webglRenderAlpha=t.alpha)},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var r=i.parentNode;r&&r.removeChild(i)}},clear:function(t,e,i,r){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(t,e){if(this.width!==t||this.height!==e){var i=this.canvas,r=this.stage,n=i.style;this.width=i.width=t,this.height=i.height=e,n.width=r.width*r.scaleX+"px",n.height=r.height*r.scaleY+"px",this.gl.viewport(0,0,t,e),this.canvasHalfWidth=.5*t,this.canvasHalfHeight=.5*e,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var t=this.gl;t.bufferSubData(t.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var e=0,i=0,r=null,n=0;n0&&(i.bindTexture(i.TEXTURE_2D,this._getTexture(this.sprites[t])),i.drawElements(i.TRIANGLES,6*r,i.UNSIGNED_SHORT,6*t*2))},_uploadProjectionTransform:function(t){this._projectionTransformElements&&!t||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var t=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",e="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new s(this,{v:t,f:e},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(t,e,i,r,n,a,o,s,h){var l=this.__tempVertexs||[],c=t.width,u=t.height;r/=c,n/=u,e/=c,i/=u,s=s,h=h,a=a,o=o,r+e>1&&(r=1-e),n+i>1&&(n=1-i);var d=0;return l[d++]=a,l[d++]=o,l[d++]=e,l[d++]=i,l[d++]=a+s,l[d++]=o,l[d++]=e+r,l[d++]=i,l[d++]=a,l[d++]=o+h,l[d++]=e,l[d++]=i+n,l[d++]=a+s,l[d++]=o+h,l[d++]=e+r,l[d++]=i+n,l},_setConcatenatedMatrix:function(t,e){var i=t.__webglWorldMatrix,r=1,n=0,o=t.rotation%360,s=t.pivotX,h=t.pivotY,l=t.scaleX,c=t.scaleY,u=t.transform;if(u)i.copy(u);else{if(o){var d=o*a;r=Math.cos(d),n=Math.sin(d)}var f=t.getAlignPosition();i.a=r*l,i.b=n*l,i.c=-n*c,i.d=r*c,i.tx=f.x-i.a*s-i.c*h,i.ty=f.y-i.b*s-i.d*h}i.concat(e.__webglWorldMatrix)},_getTexture:function(t){var e=t.__textureImage,i=this._cacheTexture[e.src];return i||(i=this.activeShader.uploadTexture(e)),i}}),s=function(t,e,i){this.renderer=t,this.gl=t.gl,this.program=this._createProgram(this.gl,e.v,e.f),i=i||{},this.attributes=i.attributes||[],this.uniforms=i.uniforms||[]};return s.prototype={active:function(){var t=this,e=t.renderer,i=t.gl,r=t.program;r&&i&&(e.activeShader=t,i.useProgram(r),t.attributes.forEach(function(t){e[t]=i.getAttribLocation(r,t),i.enableVertexAttribArray(e[t])}),t.uniforms.forEach(function(t){e[t]=i.getUniformLocation(r,t)}),t.width===e.width&&t.height===e.height||(t.width=e.width,t.height=e.height,e._uploadProjectionTransform()))},uploadTexture:function(t){var e=this.gl,i=this.renderer,r=e.createTexture(),n=i.u_Sampler;return e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,r),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.uniform1i(n,0),e.bindTexture(e.TEXTURE_2D,null),this.renderer._cacheTexture[t.src]=r,r},_createProgram:function(t,e,i){var r=this._createShader(t,t.VERTEX_SHADER,e),n=this._createShader(t,t.FRAGMENT_SHADER,i);if(!r||!n)return null;var a=t.createProgram();if(a){t.attachShader(a,r),t.attachShader(a,n),t.linkProgram(a),t.deleteShader(n),t.deleteShader(r);var o=t.getProgramParameter(a,t.LINK_STATUS);if(!o){var s=t.getProgramInfoLog(a);return console.log("Failed to link program: "+s),t.deleteProgram(a),null}}return a},_createShader:function(t,e,i){var r=t.createShader(e);if(r){t.shaderSource(r,i),t.compileShader(r);var n=t.getShaderParameter(r,t.COMPILE_STATUS);if(!n){var a=t.getShaderInfoLog(r);return console.log("Failed to compile shader: "+a),t.deleteShader(r),null}}return r}},o},{requires:["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer","hilo/geom/Matrix"]}),KISSY.add("hilo/view/View",function(t,e,i,r,n,a){var o=function(){function t(t,e,i){for(var r,n,a,o,s=0,h=!1,l=0,c=i.length;ld.x?(r=d.x,n=u.x):(r=u.x,n=d.x),t>=r&&t<=n))h=!0;else if(u.y>d.y?(a=d.y,o=u.y):(a=u.y,o=d.y),!(eo)){var f=(e-u.y)*(d.x-u.x)/(d.y-u.y)+u.x;if(f>t?s++:f==t&&(h=!0),u.x>t&&u.y==e){var p=i[(c+l-1)%c];(p.ye||p.y>e&&d.ys?s=c:cl?l=c:c=0)return!1;u>i.overlap&&(i.overlap=u,i.normal.x=p.x,i.normal.y=p.y)}return i}return i.create({Mixes:r,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("View"),a.copy(this,t,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,transform:null,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,r,n,a,o,s=this.width,h=this.height,l=this.getConcatenatedMatrix(),c=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:h},{x:0,y:h}],u=[],d=0,f=c.length;de?r=e:ni?a=i:o>1,r=0;break;case"TR":i=o-n,r=0;break;case"L":i=0,r=s-a>>1;break;case"C":i=o-n>>1,r=s-a>>1;break;case"R":i=o-n,r=s-a>>1;break;case"BL":i=0,r=s-a;break;case"B":i=o-n>>1,r=s-a;break;case"BR":i=o-n,r=s-a}}return{x:i,y:r}},hitTestPoint:function(e,i,r){var n=this.getBounds(),a=e>=n.x&&e<=n.x+n.width&&i>=n.y&&i<=n.y+n.height;return a&&r&&(a=t(e,i,n)),a},hitTestObject:function(t,e){var i=this.getBounds(),r=t.getBounds(),n=i.x<=r.x+r.width&&r.x<=i.x+i.width&&i.y<=r.y+r.height&&r.y<=i.y+i.height;return n&&e&&(n=o(i,r)),!!n},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=a.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return e.viewToString(this)}})}();return o},{requires:["hilo/core/Hilo","hilo/core/Class","hilo/event/EventMixin","hilo/geom/Matrix","hilo/util/util"]}),KISSY.add("hilo/view/CacheMixin",function(t,e,i){var r,n,a={_cacheDirty:!0,cache:function(t){(t||this._cacheDirty||!this.drawable)&&this.updateCache()},updateCache:function(){i.supportCanvas&&(r||(r=document.createElement("canvas"),n=r.getContext("2d")),r.width=this.width,r.height=this.height,this._draw(n),this.drawable=this.drawable||new e,this.drawable.init({image:r.toDataURL()}),this._cacheDirty=!1)},setCacheDirty:function(t){this._cacheDirty=t}};return a},{requires:["hilo/view/Drawable","hilo/util/browser"]}),KISSY.add("hilo/view/Container",function(t,e,i,r){var n=i.create({Extends:r,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("Container"),n.superclass.constructor.call(this,t),this.children?this._updateChildren():this.children=[]},children:null,pointerChildren:!0,clipChildren:!1,getNumChildren:function(){return this.children.length},addChildAt:function(t,e){var i=this.children,r=i.length,n=t.parent;e=e<0?0:e>r?r:e;var a=this.getChildIndex(t);if(a==e)return this;if(a>=0?(i.splice(a,1),e=e==r?r-1:e):n&&n.removeChild(t),i.splice(e,0,t),a<0)this._updateChildren(e);else{var o=a=e.length)return null;var i=e[t];if(i){if(!i.__renderer)for(var r=i;r=r.parent;){if(r.renderer){i.__renderer=r.renderer;break}if(r.__renderer){i.__renderer=r.__renderer;break}}i.__renderer&&i.__renderer.remove(i),i.parent=null,i.depth=-1}return e.splice(t,1),this._updateChildren(t),i},removeChild:function(t){return this.removeChildAt(this.getChildIndex(t))},removeChildById:function(t){for(var e,i=this.children,r=0,n=i.length;r=e.length?null:e[t]},getChildById:function(t){for(var e,i=this.children,r=0,n=i.length;r=0&&r!=e){var n=i.length;e=e<0?0:e>=n?n-1:e,i.splice(r,1),i.splice(e,0,t),this._updateChildren()}return this},swapChildren:function(t,e){var i=this.children,r=this.getChildIndex(t),n=this.getChildIndex(e);t.depth=n,i[n]=t,e.depth=r,i[r]=e},swapChildrenAt:function(t,e){var i=this.children,r=this.getChildAt(t),n=this.getChildAt(e);r.depth=e,i[e]=r,n.depth=t,i[t]=n},sortChildren:function(t){var e=t,i=this.children;if("string"==typeof e){var r=e;e=function(t,e){return e[r]-t[r]}}i.sort(e),this._updateChildren()},_updateChildren:function(t,e){var i,r=this.children;t=t||0,e=e||r.length;for(var n=t;n=0;l--)if(a=h[l],!(!a||!a.visible||a.alpha<=0||n&&!a.pointerEnabled))if(a.children&&a.children.length&&(!n||a.pointerChildren)&&(o=a.getViewAtPoint(t,e,i,r,n)),o){if(!r)return o;o.length&&(s=s.concat(o))}else if(a.hitTestPoint(t,e,i)){if(!r)return a;s.push(a)}return r&&s.length?s:null},render:function(t,e){n.superclass.render.call(this,t,e);var i,r,a,o=this.children.slice(0);for(i=0,r=o.length;ir?r:e,i[e]=t,t.name&&(this._frameNames[t.name]=t),(0!=e||this.width)&&this.height||(this.width=t.rect[2],this.height=t.rect[3]),this},getFrame:function(t){if("number"==typeof t){var e=this._frames;return t<0||t>=e.length?null:e[t]}return this._frameNames[t]},getFrameIndex:function(t){var e=this._frames,i=e.length,r=-1;if("number"==typeof t)r=t;else{var n="string"==typeof t?this._frameNames[t]:t;if(n)for(var a=0;a=i?i-1:r,this.paused=e,this._firstRender=!0,this},_render:function(t,e){var i,r=this.currentFrame;if(this._firstRender?(i=r,this._firstRender=!1):i=this._nextFrame(e),i!=r){this.currentFrame=i;var n=this._frames[i].callback;n&&n.call(this)}this.onEnterFrame&&this.onEnterFrame(i),this.drawable.init(this._frames[i]),a.superclass._render.call(this,t,e)},_nextFrame:function(t){var e=this._frames,i=e.length,r=this.currentFrame,n=e[r],a=n.duration||this.interval,o=this._frameElapsed,s=0!=r||this.drawable?o+(this.timeBased?t:1):0;return o=this._frameElapsed=s=i-1)&&this.stop(),this.paused||0!=o||(null!=n.next?r=this.getFrameIndex(n.next):r>=i-1?r=0:this.drawable&&r++),r},setFrameCallback:function(t,e){return t=this.getFrame(t),t&&(t.callback=e),this},onEnterFrame:null});return a},{requires:["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/Drawable"]}),KISSY.add("hilo/view/DOMElement",function(t,e,i,r,n){var a=i.create({Extends:r,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("DOMElement"),a.superclass.constructor.call(this,t),this.drawable=new n;var i=this.drawable.domElement=t.element||e.createElement("div");i.id=this.id,this.pointerEnabled&&!i.style.pointerEvents&&(i.style.pointerEvents="visible")},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||(t.transform(this),this.visible&&this.alpha>0&&this.render(t,e))},render:function(t,i){if("dom"!==t.renderType){var r=t.canvas,n=this.parent,a=t._domElementContainer;t._domElementContainer||(a=t._domElementContainer=e.createElement("div",{style:{position:"absolute",transform:"scale3d("+n.scaleX+","+n.scaleY+", 1)",transformOrigin:"0 0",zIndex:"1"}}),r.parentNode.insertBefore(t._domElementContainer,r.nextSibling));var o,s=this.drawable.domElement,h=this.depth,l=a.childNodes[0];if(s.parentNode)return;for(;l&&3!=l.nodeType&&(o=parseInt(l.style.zIndex)||0,!(o<=0||o>h));)l=l.nextSibling;a.insertBefore(this.drawable.domElement,l)}else t.draw(this)}});return a},{requires:["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/Drawable"]}),KISSY.add("hilo/view/Graphics",function(t,e,i,r,n){var a=function(){var t=document.createElement("canvas"),o=t.getContext&&t.getContext("2d");return i.create({Extends:r,Mixes:n,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("Graphics"),a.superclass.constructor.call(this,t),this._actions=[]},lineWidth:1,lineAlpha:1,lineCap:null,lineJoin:null,miterLimit:10,hasStroke:!1,strokeStyle:"0",hasFill:!1,fillStyle:"0",fillAlpha:0,lineStyle:function(t,e,i,r,n,a){var o=this,s=o._addAction;return s.call(o,["lineWidth",o.lineWidth=t||1]),s.call(o,["strokeStyle",o.strokeStyle=e||"0"]),s.call(o,["lineAlpha",o.lineAlpha=i||1]),void 0!=r&&s.call(o,["lineCap",o.lineCap=r]),void 0!=n&&s.call(o,["lineJoin",o.lineJoin=n]),void 0!=a&&s.call(o,["miterLimit",o.miterLimit=a]),o.hasStroke=!0,o},beginFill:function(t,e){var i=this,r=i._addAction;return r.call(i,["fillStyle",i.fillStyle=t]),r.call(i,["fillAlpha",i.fillAlpha=e||1]),i.hasFill=!0,i},endFill:function(){var t=this,e=t._addAction;return t.hasStroke&&e.call(t,["stroke"]),t.hasFill&&e.call(t,["fill"]),t.setCacheDirty(!0),t},beginLinearGradientFill:function(t,e,i,r,n,a){for(var s=this,h=o.createLinearGradient(t,e,i,r),l=0,c=n.length;l1?a.slice(1):null;"function"==typeof t[o]?t[o].apply(t,s):t[o]=a[1]}},render:function(t,e){var i=this;"canvas"===t.renderType?i._draw(t.context):(i.cache(),t.draw(i))},clear:function(){var t=this;return t._actions.length=0,t.lineWidth=1,t.lineAlpha=1,t.lineCap=null,t.lineJoin=null,t.miterLimit=10,t.hasStroke=!1,t.strokeStyle="0",t.hasFill=!1,t.fillStyle="0",t.fillAlpha=1,t.setCacheDirty(!0),t},_addAction:function(t){var e=this;return e._actions.push(t),e}})}();return a},{requires:["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/CacheMixin"]}),KISSY.add("hilo/view/Text",function(t,e,i,r,n){var a=e.create({Extends:r,Mixes:n,constructor:function(t){t=t||{},this.id=this.id||t.id||i.getUid("Text"),a.superclass.constructor.call(this,t),t.font||(this.font="12px arial"),this._fontHeight=a.measureFontHeight(this.font)},text:null,color:"#000",textAlign:null,textVAlign:null,outline:!1,lineSpacing:0,maxWidth:200,font:null,textWidth:0,textHeight:0,setFont:function(t){var e=this;return e.font!==t&&(e.font=t,e._fontHeight=a.measureFontHeight(t)),e},render:function(t,e){var i=this;if("canvas"===t.renderType)this.drawable?t.draw(i):i._draw(t.context);else if("dom"===t.renderType){var r=i.drawable,n=r.domElement,a=n.style;a.font=i.font,a.textAlign=i.textAlign,a.color=i.color,a.width=i.width+"px",a.height=i.height+"px",a.lineHeight=i._fontHeight+i.lineSpacing+"px",n.innerHTML=i.text,t.draw(this)}else i.cache(),t.draw(i)},_draw:function(t){var e=this,i=e.text.toString();if(i){t.font=e.font,t.textAlign=e.textAlign,t.textBaseline="top";var r,n,a,o,s,h=i.split(/\r\n|\r|\n|/),l=0,c=0,u=e._fontHeight+e.lineSpacing,d=[];for(r=0,o=h.length;re.maxWidth?(d.push({text:m,y:c}),l>1;break;case"bottom":_=e.height-e.textHeight}var x=e.background;for(x&&(t.fillStyle=x,t.fillRect(0,0,e.width,e.height)),e.outline?t.strokeStyle=e.color:t.fillStyle=e.color,r=0;r>1;break;case"right":case"end":n=a}r.outline?t.strokeText(e,n,i):t.fillText(e,n,i)},Statics:{measureFontHeight:function(t){var e,r=document.documentElement,n=i.createElement("div",{style:{font:t,position:"absolute"},innerHTML:"M"});return r.appendChild(n),e=n.offsetHeight,r.removeChild(n),e}}});return a},{requires:["hilo/core/Class","hilo/core/Hilo","hilo/view/View","hilo/view/CacheMixin"]}),KISSY.add("hilo/view/BitmapText",function(t,e,i,r,n){var a=e.create({Extends:r,constructor:function(t){t=t||{},this.id=this.id||t.id||i.getUid("BitmapText"),a.superclass.constructor.call(this,t);var e=t.text+"";e&&(this.text="",this.setText(e)),this.pointerChildren=!1},glyphs:null,letterSpacing:0,text:"",textAlign:"left",setText:function(t){var e=this,i=t.toString(),r=i.length;if(e.text!=i){e.text=i;var n,a,o,s,h=0,l=0,c=0;for(n=0;n0?e.letterSpacing:0),e.children[n]?(s=e.children[n],s.setImage(o.image,o.rect)):(s=e._createBitmap(o),e.addChild(s)),s.x=c,h=c+o.rect[2],l=Math.max(l,o.rect[3]));for(n=e.children.length-1;n>=r;n--)e._releaseBitmap(e.children[n]),e.children[n].removeFromParent();return e.width=h,e.height=l,this.setTextAlign(),e}},_createBitmap:function(t){var e;return a._pool.length?(e=a._pool.pop(),e.setImage(t.image,t.rect)):e=new n({image:t.image,rect:t.rect}),e},_releaseBitmap:function(t){a._pool.push(t)},setTextAlign:function(t){switch(this.textAlign=t||this.textAlign,this.textAlign){case"center":this.pivotX=.5*this.width;break;case"right":this.pivotX=this.width;break;case"left":default:this.pivotX=0}return this},hasGlyphs:function(t){var e=this.glyphs;if(!e)return!1;t=t.toString();var i,r=t.length;for(i=0;i=this._targetFPS?(this._measuredFPS=1e3/(this._tickTime/this._tickCount)+.5>>0,this._tickCount=0,this._tickTime=0):this._tickTime+=t-this._lastTime,this._lastTime=t;for(var r=i.slice(0),n=0,a=r.length;n=0&&e.splice(i,1)},nextTick:function(t){var e=this,i={tick:function(r){e.removeTick(i),t()}};return e.addTick(i),i},timeout:function(t,e){var i=this,r=(new Date).getTime()+e,n={tick:function(){var e=(new Date).getTime(),a=e-r;a>=0&&(i.removeTick(n),t())}};return i.addTick(n),n},interval:function(t,e){var i=this,r=(new Date).getTime()+e,n={tick:function(){var i=(new Date).getTime(),n=i-r;n>=0&&(n=r)return-1;for(e<0&&(e=r+e),i=e;i=1?1:s;var l=n.ease?n.ease(s):s;n.reverse&&(n._reverseFlag<0&&(s=1-s,l=1-l),s<1e-7&&(n.repeat>0&&n._repeatCount++>=n.repeat||0==n.repeat&&!n.loop?h=!0:(n._startTime=t(),n._pausedTime=0,n._reverseFlag*=-1))),n.isStart||(n.setProps(n._fromProps,n._toProps),n.isStart=!0,n.onStart&&n.onStart.call(n,n)),n.time=a,n._render(l),(o=n.onUpdate)&&o.call(n,s,n),s>=1&&(n.reverse?(n._startTime=t(),n._pausedTime=0,n._reverseFlag*=-1):n.loop||n.repeat>0&&n._repeatCount++0&&u<=e?(c._render(s),c.time=a,i.add(c)):h&&(u<0||u>e)&&c.start()}return h?((o=n.onComplete)&&o.call(n,n),!0):void 0}}},Statics:{_tweens:[],tick:function(){var e,r,n=i._tweens,a=n.length;for(r=0;r-1&&n.splice(e,1);else for(e=0;e=i)return void t.fire("complete");if(t._currentIndexe.z})},tick:function(){this.sortZ()}});return o}();return r},{requires:["hilo/core/Class","hilo/util/util"]}),KISSY.add("hilo/game/ParticleSystem",function(t,e,i,r,n,a,o){var s=function(){function t(t,e){return e?t+2*(Math.random()-.5)*e:t}for(var s=["x","y","vx","vy","ax","ay","rotation","rotationV","scale","scaleV","alpha","alphaV","life"],h=[],l=0,c=s.length;l=this._emitTime&&(this._currentRunTime=0,this._emitTime=t(this.emitTime,this.emitTimeVar),this._emit()),this._totalRunTime>=this.totalTime&&this.stop())},_emit:function(){for(var e=t(this.emitNum,this.emitNumVar)>>0,i=0;i=0;e--)this.children[e].destroy()}}),v=i.create({Extends:r,constructor:function(t){this.id=this.id||t.id||e.getUid("Particle"),v.superclass.constructor.call(this,t),this.init(t)},onUpdate:function(t){if(t*=.001,this._died)return!1;var e=this.ax+this.system.gx,i=this.ay+this.system.gy;return this.vx+=e*t,this.vy+=i*t,this.x+=this.vx*t,this.y+=this.vy*t,this.rotation+=this.rotationV,this._time>.1&&(this.alpha+=this.alphaV),this.scale+=this.scaleV,this.scaleX=this.scaleY=this.scale,this._time+=t,this._time>=this.life||this.alpha<=0?(this.destroy(),!1):void 0},setImage:function(t,e){this.drawable=this.drawable||new a,e=e||[0,0,t.width,t.height],this.width=e[2],this.height=e[3],this.drawable.rect=e,this.drawable.image=t},destroy:function(){this._died=!0,this.alpha=0,this.removeFromParent(),f.push(this)},init:function(e){this.system=e.system,this._died=!1,this._time=0,this.alpha=1;for(var i=0,r=h.length;i>0]),this.setImage(e.image,o),void 0!==e.pivotX&&(this.pivotX=e.pivotX*o[2]),void 0!==e.pivotY&&(this.pivotY=e.pivotY*o[3])}},Statics:{create:function(t){if(f.length>0){var e=f.pop();return e.init(t),e}return new v(t)}}});return p}();return s},{requires:["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/Container","hilo/view/Drawable","hilo/util/util"]}); \ No newline at end of file diff --git a/build/kissy/hilo-kissy.zip b/build/kissy/hilo-kissy.zip index 87c236016e5d42ea8689ac02c3eb00c466fd3fb8..a6fe07182e74ba27f733966fc956a0706f2323d0 100644 GIT binary patch delta 180382 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
    OGVx*4C3+WtnWDhN=$pI7O7Szbt^ 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≀q#JCB_e&gi!Pf^RR_!KM&yH&}0 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 %^5zIxMe^h6p9~9zt4Qu1}3NV+}JMT!H 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

    kNJQT z`hK28d?uHi>Wd_;cE8D{XH+^{9AUA$<9(5zFO!asyNVkvuYnrJSW%RJ^i&>y+~@=F z;KP>4!Mbvb;H0gqG@NS=E|m}#a;hG@$%+z9jxI<=>l9*Exg6fEH*O%=V>XbHr7I)q z+GVm)NMHf8AwwI8m@+P+>*uJN@NTsbSy-8Rr8A?@9}N=Vfc|th3oGd0-my59)wAtB z1%mk1Zao_hEkb>o=d0NSOy(rNlOX6FfBay>n~KoIL1A(azT(`uRrEWZhnQ}`_H_RoRo>j%}y0Y(mLk^30AUyFRwmh)*_&Sx0;gaP>(!OD8Js_9~x z$E7U9*?Dy*oK8vb|3+P&CUnglSqs+1Gv0>$0w)N_!mFCd2{jV z=*2Nc%T&cae{=lqrM@q5X$#sZe<^B}#^uR80vc6#zP@3i$>7*9A_F{~rq{AsYMKnI zmFA-V#vI{iNLRr!JbrWh_W0fD#nH!)N1ra9|M2S7@yA9jREoY{MrHJHDWHDg$?4JQ z>lYUvG%hs-ZOy*qmAw1!F$@|tg3KCptdq7@gqf29CcVfgCJ z`=e7py*5J0Q-4oQFqbc~ET2AH(>D*)R6;0t3VD8bck=qXcgHU;o_{($4z~NPwGF=V z*MFnz7+1hUVp?@pkF8ub$Ahyyw*{6P#G6WDDvhw!urxUfTQfc?6m&)y!FeEt^MGju z*k9X@(ASTaP98RPF0CHGe|ta0N?2VZzMWR9kygczG$#d0weXM~;UPN<3R?Me9@DB| zrnTL+8BzK;?)Iit#+=;?PPr&tfQZ9Gn8U93)wBI?`a2v2L2v)rGaWiOpd1jhi>iJ^ za+ygaLE6E={!@Q6IZJSpnzMW$!M$nDVuA#>q&Z6q65NUAC^T5Xe>ZGEQ;K|skxx0p zSNQ#mzrV)sulV~L{QjB?eya-(sL5|slho$7DnN}6bZ@9x$Uwyhrr`m#JWzcbP}_qi zDnzXhRJR7yKIG>bum@%XN1>{M%THOJOj+45Si+vZJa{@(e{Xpm*i4Z2nbM}5cC*GdOD5qg+DI#V^jQsAy4`b8Zj#!!ExtO+ z{`-XZ{|2djuBG;Q^V5!LW#a6|S4*UzZ7Lt@X-LPAfhpE?ONSAar{C^XU&C zk1zILs@X&nFO^!|md<_D*~5jYR$_t0KfXSC_uZT0f0N*=-5in)^Lg_9`;Vs(S?=zm zh;=iPG_Rr2UZtK(H;KYzG`V>wUsE!0HrQ*!aXz30y+*2X1%gRHVh88ik`q?XDvhx% zCazCrSKOUdTYn5Ue_v-2KF%4gxk5Ty&VP~C|Ju5ell?7w8X5hP-kVRKHSWvzbc;_C zwLEIXe_IQH=T_@LYXzX+H*tE&OZk(3d+~VvDNr zyw>h*?PBT^&pEqo4Z^BhFL12f5kG9`Tk3osuTYH-oaZIs5tnysAwS`ClrAUM}Iw@e6t_%D{K5NXp-%vpG4&Zwh&PfUVzPpkro ze_t_v6#@;6=4e6(=iMyGyYg^AMhJr*9+A5-1ycyd%#=@s_9L;CoK5j45e4ca(;rfQ z#QG!Z7R_AUyqVAB>du?BbAJK3FMwz1W)CDX1gJ$`G|UyLsJ@=k%q(7AAUndWS)N_y(V`+r`M`0Se;E&C zc!jEXXe$-CIX^nwC9ir?eXVf@&J`AF2F1L?5k}m%%UH&)6)Mb1v$vdBnA@zrMAC6x9 z*TsjA$8UdlbNc$jn@=p}zxe6+`FC&7L`R~RI$Bt;uT`q+L)ypho*&ttf2w4*RE0l8 zfF-h&d0Z`T18-lyyLk2b%_$s$WccRwyW^vek1u=l-5)Od)5oI^7bg($;?2?94;QEJ zFOFY+cl`T`pSBfO$U2CmaZ8|7uU z%U0a+C#T~Ge-vZq6PfAaUT?J2 ztiWGVZ&7>`78G;Bw|Y4W+R?qmVhMe!!Xf1`aij$U-ub+E|MtV{H^&u7q*hDGl+u96 z9|DBxz!rB7LD8JByatJUy$-U!Sb4-Xp5JIPg_6uRZIK|-QreBGnH3vSV+Y>{_6iQX zi9n}o#`G~cn2ZuFe@j`3_$)y$LGhWFbO-)FCZr6%3U355K07;7h!y@q)b%0oM`K`b z;Rlu@MEFApttbR>0NF#l7Ag-!>if`if27qEp$aH`Gxj2^6*xkOfWi^}LI~pgVB3=i z(cPUq%zWq3xx4IP%_qT3zLe}q7x?VQBJ*jEVAD5Q2q z1S6bulOB)JTZT6Wa%TssJCt{KOZ=hGf%JEFph9cDIlsFr{;@B_U~OQYxx8;d6L5=4 zZb`Hp_PoI!bRh+T8YRQq>tR2*8TPHR@AfwECq{A;v4g~h#fC1loblL&Jbk;vtx#*KJ8j0RQ3`Ps+$pU%;-2B*qFy4ZisW))U#RK}O?$}L4aMa?SwD?@g9>UD@v_(9Y(KEuQFaPZaFUw^$ncoxJ{ zzDrj4f1%tI_O*k;exNmk_2~?v)V1<(yC3ioZKyszpL08AX_O9X9VyM#XX1{)3La8n?&I+r*qEGz@9s|D*t zIbii6%5tVGU>tKt$f4E=4sA-p$W1OBSk%wre^`QuQ;_A9n@Xx%09*9aI)Gi^G;8%U z(MeZ}&oD+~ekxI`d&;`9=**T5Md+4OM>^KL`ab7Xo*}bQ@%LB}^;aF!(%qALYvb0a z-J=#8fL-yzVnL-Hgs3A)Vx04}+>QDA=G`I%oE9yKgRi3UHK(sWeW5+q8SZB2;B%rk zf4nJ>j46%no9rU@;uQS5T$JuobzRz>O$^zsiuQhcR0Fw+9IX*?UDTj-z4Ga@)vf zvr)W_o1pPEY~2oP_HCeiMZ|T1Ol$=*f3X$F#8w~^w+mz(4c3}yCaQ>L`rD$Qqj`DV zLxm3r&pCY46LT#ci`zsuQp;OVeiOmJUbH(2P-cUC$kd^^lHgb=e=p8!-zh|x^!fH$ zUkl#QZMnL|rz~{OXkA#@Wm)lgL0LV+>)KTiRaQY}#EgX%GZtTBx^VJuCs85M2tV?W z@5TD;RFlv3EPtBUf`uHzLe5D$y*!mgS@RlGG5*z5gh`TzC?^k*odK@(0DrrwmY&2I ze?v~b;kTO_v93D&?Cj)d^B~A%15SBRm+1n#0lVi$&*?$#_>eA?JmmTS*sbesuKSW> z3`BQh(>q{0ktOTuYhuiFgPCr+ajmQ95RJ$W`mM{Mqkr4mskwWsb&|T5r9Y6KghFH; z1RN6rP6uSdZw&x9Iww)JyB;8&CkFU$6`5 zQ+C0@+zY8%#dyc*2aaETp`D+wy8)KhQ}TP*`}O^#jlm-a(@4b|Avc8-goKM+F>?*J zMX4-URDbHKG_9KJW4D2U@9I`7LR%Ww8OW^Bx8rvMW4BR;+ic?Qj$aLMQ8Rtd2>ldNW8|01{Sg(VNm3{^sY`1r>2*A-=Gf)B0|QtN(Uf!kCoaPm9PNwk^m z)PEexwD@-2j0OO#C{FM5Arb!$E5k=0(QLcwS&~OOo=`TKW39?V7^EUSe^|)`tnNC{ z0d;cXjCbg*@nw z`$Kt{kMp5)9amLL8jY$DZ-Z6_LnaNFkuc-e3r4Au?L6 zoL}(5M&*~NwFGn@j1_W}fi_pE&oH7;1*&Z?Cn)~NfxOp>+J2=bd}Cqrdor~})ru3SCM*~c zkRkyW;cxB{-l>h8$<=*1N|H8;fPbACwIS=sZ>hXrLqk3CN8q3?SHr_G_Hl@)XKVXA zAy$J;W$HH0xdDy#ZKs~hXf1jl#kA$=QUypIsWnQwQK^AgLMqa6igYiiIx4Iay!PFs zO0tSC(XxpH_jI@wyMweXUZR>aFT51}>Yod|nC1xfPb_4$2anulDs3H=Eq@(=NN7D* zjRBz0OEWNkDx!pl@?5|Xsz8pcIevq$b?j>O4`+O2pp)@d*Rkl|zlRTMA^E~KJ-Kmy zf?8Dj(=oMf5sT8tT@f9*D2%Z-lI18pkfci+iyS>FYKoY42bNYcN=%rEDH_WS8!=Sg zu_@5vbFJmHJ)lK|^6I1dQGebshSt4fxnVv&J7;cYUYqYk%+2#%qXgE+DCzZlVio3i zi?!`-N5Gp$+BOQGKGKh}kR3iGRRz{Ql{PJ)|ELf6_YESI63rC$60ADn~j+>gskdBjY;;CdsdN9d8x5W92WB zh_Mz87fLjY{Tf#F`taBup=Vu3(8_KFhFNG_D0s>XL#0>-#ae1hYqhDt50%32h7#-M zomPuO7JCP0ZHBh#62Gi~Me56^GM@a}6eBPKY8j2=Yt1UEAwR|%doSO=txG1Wyan-L z3Nw-6x&Sb1D}Q-%XyZmyUfqDCEY(rG!!kN9hz|7qzIETt zF9D6@IB#0*XF$oe2mVl>b{eV9Wpv>5u2m~lJ>r5^zkO6O)XXT$CrSELDqSC~j>GSr z7Ic#_;m40oIck)$FGjT^p&{;&JPxaf3?pclVvJAum48Fnqt)Ytc;m#8pKRnOZGfvu zjhgia{fm{vR3ySndMok?=I=T8wSmg6`+t9!$^){yd|+hlc- zrCCsyH9#c}ylNb<{FcydRcZH3Gi zqP3kVsttc10U=uDz^RWrDg!;1HB%0dCX^;F)_+B)p8AFkR)I~{oHeH$qyNzIVU4#N zZYmXO#OzJlJ_KZFCT)V1Wl`Dc*a@PqBp40TNfd{Bv06y?SWoJ^kT!EjSyKpA+=I1a ztS?ZP{Y(A?`{xLEAMhW1pC`oooj3i_hs3CZ&*O3tE${OH^?O)PI%qwT`&2EXlF*~s zPk(bAz#DmqKI6=s>pKtEb6i}#I8ZMTR#7D;k8uvR#OyQq@lWVQS4l`58G{jjsK#~xxH?PQEkHe>|)SK-y;k2Kuu z??S4J87lZ%S4SLvM{&B%D&oNjh0AEwi+}0#6^1<>PdClC?S* zp-v;D*k%qbNtP`!1|M&D9;rwo@>fwZ90cmQV`?8N;=7Yq-1df>6V9VEm$^h1y0wGF0W4th6ZwJ*x+|8>pL6x*w7JsL@ z=-l`izP@_f!-6-|*H58r}FX3Y<4kc{tLyEPvL&KYDuHg!a6qgtD(*(-SBU<<&1-buP0q>pX~L z7ATs%wlGC$Nku5{EL@QjBIbu89>=}GP(7uldZFDWI5fictX;3BDtL8TGLKWcwT*#4 z%i9`(qnjRJDzDWd#Fu!`oyu)<7_qBTreJaw^Lw7Cbvq(yj(yaH1rAwyjDPfusxUf0 zHp+`@yT5vJrP@Y~ zG?fvJvo4RvQ2B8=1mGK6+_tJjaS)9Qp!r@(M?ua1;Eu7ggSgZiXsU$i#+#dxNA$_} ztH%^Q4G}QoR>b8rf5=rr9)IN!(|Tb=GLGg{ni{`Q^Syy{sy0H-amlreMiXHqDlQ)I zar}Rap+V6EpI83vOpVj@pWv29ZTzs~8M+Lmb_-pX8O%=>l2@bi}1;Cq~X$kXrHEZX#HVfP|QM-hXstzK)@p7Q?A^ zMH;&(ce=1}H7CGPdo=WZQ;CNBmVMdZBg1tZckv7KPp0ewT|ZN80-w74M71r!PdN=c z{jEOAf`i;S!2?Z$V`ceV&hV9w_TEAPBoik9aoFY6^ASeNzRh*Gx;&%Hy&w_lVhh{D zmq_?QK-&lX?g`!QC4W0RPqsx8rjT&TijbLryakY~(n}P!{l>0v@Un5+%jk+NJDfw; z`~=I|-j1T$2sd>(F;2J~UBv%2n)F>BE$8v1c;s6NkMpG*C@WCoO}T8S^jXjHO=`y` zMCqTWdS-CH?=TlpO9g43!PH7NlNr$WkuoO2?-$XMk75}3e}922DO(^oKIU&?_!$oR z!8|HX$~^m3;-RacFLGoDtE7X8uVP@WA;~-iLvyWz4QO<|>~<~YdiARfbb(tb^8y7& zTmn8t?qp6InST+)IyZic)X5%IvfDYp0yZRo?MJtJdQy-H&ep+a33Q8Q;@&%xCTJD@ z#L%RfKy>kLA9gCw={+1bmjV>$Vn9g-6uoba{lI?3>_!hSvh!qYvyvmFe&Wz0Q(XrhE%Pk0*7EF@Qn~7+*lnAeO9czM#jfw3{l8J5Gwv&lfXKgx7V`s%e19u0c;JD zW`na=%cTA6tC2?wtD1_^z(5u`1y-u=9Sk!IwI&*0>?Qo;{9i7(m0yg2*L~RheFv!Tex0@lc?Q0{#q@BEV$#zknB(Ix&sl{p34H_| zuy0h?^1B6w&Ol_&=!!a}5Aq+;7T%o%0~?^=RRrH4xuHU?+__KyoLbmlo3eWWI$X8z z0EDx|?1C+lYIY6&fhl-WYp9u3FzQ4Uqx>{wGlv_?QuV62U{iSNT@V9Wh1pzX1E!LS zT9+BO;&}YoqKjDSzJVtIc<8x&tDHu5Zz%8bK4cM%+oNZN9Xk&{Q0rR6FC~X~;Q$JD zj%M<&(S*|?F$vbGb?L2(8WT3%!`Lq#@nX@Ai9b2`)u64I;fjZc(*v!2(@odr8hV~v z&$!bM0xS7ZR|Nbg%I`fIOUed`9j|wTVNyLu{A8f*lBjwa!|stH{OX zEQUqh);Ug}EG>^Qet5iQm|R^2C;|4YI3V3$@q;^vPk{m9smYVl0P*0Y=$FU+HzJjC zwdBccf%Vp+08*Gh$6zt{HynJsHyTUWHukxR?;k9GEd@poq}N);tzNu2f?uTyzqm3+R4Ce1UfaSSd=gKE5$YP?g7yh~j2+jERePe8>5-P7?-&!%n%@OZty(e~VvjbQ`$hvQ1{|${GZ-HzePCN}I*uv<&Cnh3 zch~LoUkRX5g+KFCBQN5}b=l+I3t!y}HIs?-4*H;4HfTfwP99%yU^Jc?Q6nOhkS_#{ zI3X=LRwleJw%=kJSx(!Sodn&PK32^6oAp$Anw@fCmem16u;MP_*qq(AZzWX?E?qix zp7elp=g6ZpMN4exqZBTaH)XrB|JuX;W^Pj5pwysTjIeGe-emo}71wt2F~URYlAbD& z^r1-$yn+hTXMqzbP+*!orcE`8C57*Qmog18K-)L@dGhEyN%}JEZQ8pXr^KU|9N}C@ z5In2tYrxe3vH1hlprO&DYYVv+R_}xQKpU>BYpJv7`VX6}HdpmFg4Tfd77_F?*LhFi zON2f$lXLrb8>0jN`>5s0Qxlhad}jAmoV<%px<8KJNl;xK0M6^$0c3dzfzC945aw|W zk)&s;WXlBDV1Ev09TOi8&B0ZL8*lU$}Z;fw95#ctHZAS zu0oHleUIx$VB6&~Cfri5>pc6lE!;=fbv4{Y5whU#Y$#-w^W>y;+vo`Q?0UJ1`KloY zrpux<4JXs??t_|9+XHU^)<3wL5`|9(FUVeZKG2sWg6)RCkr8jkvzYW1ZS3$VJ({&B z*-B2Z{1oorX{V_ZQJzDZP7=O-Gmg=>W=;#k>DUzMJsM2WW7yHzVkt!0G-F*vQ zZST&={#V?we3YWo76v6~MSw4`-0Lpv;8L@iiT*EKo|3~)oGp=}4?01C2F&|=A@L+~ zPUY!*R=_SgMfDlg0rOukyT>O(kUDa=G1;MkqdyFFM=cjtA=T>T1A`#3PiUzG1O$^> z-XoiT80)ai!2+~RYeq*8g z`v%WnZk(cUu))={XS61;9RZDFD*E@T80yN`VxZ9yqC-+=mM#I#pP&v9)DI9f|21*K zImX_uW08*K6)X4;d5~3pc0Ca*tq9DbEU;{XwDCDmj+z`|vXM%wk?%#$NWsjPP8a%8 zhK?80p362ko!mZduU016IL7~OmDD5l-}f}tWCzj{hs}rR#-MVnTsolZR0M1?ed}g- z9e4@@DNay#v?jbrNggPvnyMmetLJR)MP=~UI(5T*J^I6R;orSt3v(;(yBNw+G}E_A zDHm!fNf|R=UUul=QQcE4Hs6tk#Z_=hl)(ayYMyUA$RaEw<-&O1-R8US+$u~rNp&Q) zlhRw>V6~L_Ne&g%(=5_JA>KUfg91)*1gy&pMRnOg+bpZL4$5aX=V3Z&Azs;NE@XB| znyGU}@6HIDtQE?_b?_o`{0m3kua5~jrSXM?Sb_Rla-2uJ6`xV3F0aj<<&&t!K{bWw zTq{f9eoj&y7|E_E;drj_BV61w>=fel{y2Op;!=Wh)$I$5)=VLVjN6cdPwHK*25QPZ z>DGy01uE7CJuR0Q%tu13;Q4uyR(V0)dVkaWdi(gAV)6wC{@@%Ndlc@N`-ZS@`%Qyd zfy+Z`F>I)m?$22HmR;mv3#T%V746?0KUqjfMl&n+zc}@bO<}T?%8XXtQQ)d}9O)4W zTZ-I4c2b$@@U^AG_f_O$Qic%r?7)>x*$+G`Zl@?Xqz&G=)eFpamkJATCjsPT5?loS zZ2ja3pg*3-aF1~vj*Ri=Q17VxiiCNafIiqawAFz4 z>YaC$px~b76%BJtLApLvvhg&N_2d&yx-@!3pDf!?JR*^q8kbtm8BdT<&@?IO%V6*$;|Y4q7A@HRO~Px6UorWCy}rXI%#qmHVh*J-v;u7P~1yF z;@^)_Z(gW)J?slNnGXS!+Qy{WpZg7Ib=GOw_jSq^yqNhJ5C!gJDzt?>C<30En7VY+ z27jGA-6`w0#{3Y4Xe_IJfEcaGWRZNfUg6!8NQ2HZgLktN=rSLOmepXKG+mvOMw&g5 znsO71tMMDTOe`~82{T_gmE46Xuk_?T8;Y6%A^66uFRS|p`oLif(^tpvU$ZU2-bR-~ zjK_9@zDN6uQ&34z&C8%DmfmM%pl`kQSZRIIyg(+6zK*Z<(%FY%eXsC`(=x(u98RF&f;9P0$n{K=FDAIZbOll@oT!5$Z1PRVlW4%nxme5%ZAWlN!1LQe1g zvlFfKs?mzuLd+#3dI;8SbTY#+JXJ6?{X1c}B%&W%sT{J*!^qK067^Et9s4^PE893M z#NTx_K()gS%SC-9hqBOlmB2#AOBx6}_OdjoUdKVuTA-~P=-oPbJe$d5_ z{zHyp*;)vsh?cdK=mPyR8%aI%t9$D?Q|FI0k-?ua3J2!hUCP276nSubHVZ%MgLwh6@xjbD z|M7!bOfA;0a~$X0vZ;ciw=GG(4aqA5FWe5i1DF4v$b~>(ZZM2c2OeMG?)8mOHz6pd zE8IaZ@K=&n{O!FBD?h-N(fFMLwNFxo_k8?2AXaBtbFXEEBU)iqyiAyetH5~O@2?Sv zc3bNgubQs_0jZq9bwloTu0?r*u7c*+1s9I&vM_h(i{BgKt$;0^y~|U}@6G4Q$#%?M z;BSfK8VkbHh67>AoK4A-J3KY2B`nDjXKmp#*l>E9GT?n^s#d|Jjk z{(?_z@Zl`Hu&qG1KaNKXQqNFYy(?K8kw|$D0KK~UWHOF z!?AiYw83DLp4@@|CdH^w;Zf=4>I(JL#$lFaFD}WnX~nn5q>R7_iq@MlRJ1G+fPyM| zTL^oiP(jYs_?cHCr)CdLgT!MBYcTuvjBc_;TX#7g_}u-DeQ%-SZCN9$`YYr0xlP4fW25znZ+Wz$hn;D}6i(!)GfOzU-Dpb=NSz>H zi_zXSIX5~G!8j#8`g=r~K0M1tfo;W3HKzk|fBiH@7WwByW>|V3)r z>qD4>HXmSrkB1(q%&?`JZM|z|0$~66>xQ@fxN#JT$r{i)wWN_0Q$-7ct?G~n0pwzx zSvshSmh)!pZ^|SrI4Sb-e`ExIs}K7&djlm!Kr;%pFO_SYF;gwTxypml4BSuhp(QGQ zXA&$T(--F7(w@sJqMB83ms%bu_nGkZ*JFO+a0*C%jW96>Ezl}U{;Qedr17n{zAmIG z9NLw5r^p-SDX-OEvG?b(y?PF$P}%n0wLP3i;6-f4fkI1%s-WGl4f$?&pm<#6+_A%u zrSz(#QNRn`{fc~s9bcGm#w^h8*F=cHl5yJN?+tJ}hv<^Yd=5Pn>t(AQk60TkdcX#7u z8NZ)CF8!v^%ieKAy! zQ0375)#f`{If#AW61;<5O<;e85Fw>!Rc-Kp!kgB@X>8jh?*S+)y$doc!;8H$_+}TU z5%cAN?4(ULNru+D5xr;`LXS6v?Mp6KBE}(%KN#l{l?J*%7mwd7?3Gf3Tv$6K zGPBW{gMWj}_5$=O-R87A8ZDevz*3zza-mPyORO@y+q5>}Gp@mMXz)_SeG8RPrSd{) zvj>>WiCVbR3VJ&m0<@iQN2E=Wc_|hMavIwe?1hE{cA-%?y3R1$T;50y*rjenXx%Ne zupP4y*nK6MxKJ#w1ynRnsqI;1_IiZ#L-yHJc9pl5Zh(^moF=y*s#wQqX>0Exl_;M= zXG~N3niIEw%OP7ea-c&E>mvcG!=-7Z9^dFxqerN4WtObcnuP7)Tx`8R*Vocw`CZsM zwJ*KR9k(3i??w&ku80u^ONH9>kbJJs?p3wsi2)lA@v$5mpXUA#;bJdAr?p@Mury_YGjKnvD@ZNQYqwbGpx=-fSOmBuZo?gG z;Y<4+-?4d95QuXul{LPhR&INw`@t6DdcLX}0mJd(0ew-S zgZQ=yPGKA)XFRR7>CbXZu7&uvDAx>?hWcbWz5)bS9u&vkpR7QQ8X_5>Xswd4WQ_8} z?s&Q(OSG49i|pTU8&6^tJEHpAcUKCgVV@&|j+EJ#_Ica9Gxa!tcC<=b2923KanOW) z5rV=jZ_F=9I$%ICgC$!+`ew)&Le}pdJm7PasmMe?9c#7oe~!AnW(3?K1wiD8qe-xr z!UIYaItxS^ohA;hCON5#LCD5DfqQj+IDaoTQeC)xp)Ou}D8X3qk$P)hgDtl}Fdq9X zw}jsRKqh@$n5Th~FoT8!U#|!;v}*;->^=w#uMd39G2;-?t5aGh)&|;X7> z7e}lKGHVwJKmWPS%a_`Tkki*=Mi!238$R-jQC}iK(url6{575X-v$$0Q@tWX-E%$8 z3TwGth=WE$zVT73E9F^;BqgRf!M7;PHs7BiJm+Y*jAl@g+^1k&`BQHiN-499{08?o zK0T5`qOATxCt$V-7T;sJA7}>U*nvSp)4QQ-*7I}MH-{38?8_9?V3cBHG`7|6^2s?5wPYuyh z2d+{(ZdN|u&9B;D<&WQQi_Uzyq5`5u@mV0xr--Mfo)cu(M+tbPu*kLe_<27y8Dk6)JFmk zA*;kGt4!eKL6a{|BE9@?@rk7ei?*%8_jPs5jXtH2N$~yBw&k2R2~Bc)^-cRO1QKkf=sUS*_p>ltQrwInS9M`+>hza%S# zVW@VzR+y#3;*nR5olFNoe_pc)kd}9mmxwV2<=rKamrh=E0BGitN5yiIQ}?9>+I?>3 zy7#0vb{ylzSWQTlje_2=9Iy9udP{*sxWx~vR=`Sy2!p!`m zA-o=n%^#Y_rj5=v^p;CE8IVWd)m^ycs{c~%@{XmLmTW)6dE_zmeb0`0G(}uwo8Hedt{*>!U^5X zNqZWikrXvLyr0vo3%y3^N{(P>3$*|AZny}yn)QVi12=#d2Df7{N3~`5H*?5J*Jv;W8n9>@;llTZ5kCT5F(4V81BiAq;Wv9gNx%5;?-q={ayvkii zt>^?H0jl30VfFoS*>vXli~bR^K!!+ikz&cb#O&m=dPaz&QEsJcagZ!&R&2;oa|t=y zy}?=M!fK`=a<;8hr!27PhZ?6`)=ktc>Xac2Z_cSTia%&D;>|QpP11(8N6j!QC;#a0 zrYSWtnCoZY#JsiDeAJL?;BkdlM`*(~Ev&Is2Fj$GD)`uWJfdKqhfXQ!1-FvdV(-lu}id(xk{W^$K=v@uLa_3971;hWH4b5@gQ}%pOzOK)_6Rpk|%Dt#7 z2{3Jh@q%R>T~g|~*~8ltO2{v*K+Fx<_9g~C78^Ll1 zY}7cPP?4Sq4t4}S;`nHMG_+B9DLmo3OB{StCFEi*;2Gd9)wsU1;Q~)d2S-JkljRtN z^~5oUHn8i%PDKDwtxIrX(5lt-`qFql^>Jkkxl+0BJX%YWD zvf~wZ%ku`>G#Q3i#ck^ULS|uf#w@mA-|D$uOiMk5NpQ|SVa%GGEZW-SR(>AV;Ab@5 zopRjrHA;~;|IU-3=`RwtqE>8p)V8O7@d|H>di4Q*5fnwaP1_+r#fLfy*CL(W4Zr}p z%SZ}(hbxpA%v?odaHVvSkmngW-fZfkAc|KXU|7LiPrrGWZ=4rkD$JVKoE3`?Oj$|r zd$ahi+33jYl}%;ry9>DlZtmr80c`2tL%VF42Vde~*>$OoN6aUOUb$ItTV=Gv88*($ z1MsX>;={?T$t9$+C=^ZJikRpH0CFXj$U3Sd%fy;4e@4Vhpnx@dx(A6Zr7~J9j&n9u zgw>69s|0jy$2D z%Ty_D%kDk4S`QN~CAaJ@{us9!Y}`FEV{SEqSayL$W%5sn^Ka=HNB3VEz{V%d(5NR* zbzSLYk`>Zx&37HeqgLhzUj>)x4TK#-d!~=(ZySo>bvKjin$pi6Y+w1e{hFNsy^4+i;%Kt=mMVUJz9W(qTpkut&ktdxh^cruk!71h75%~?cB(~LKV zbA62Det~A@Bq%Et3bx0_y^~6n0Ywy9P3M%FRU4Z7-#5f9!QOSeQke58J{0K)RFDkS zQwy;yDH~$&l&q9~eq~H>N_6jLiAQaq1(gz9q36}AjMbrvjCIdC0gE9nPfKwv_UZ>s zFrSJ|RVpyTL_&iq^AR1?QrkUUybgauNCo-S=nV(?EfUPBZwKCKcg_k>Z$Z6&EsH3> z{}2lh?-iZ1>4L2G<_f$dPUChWyjUm$p{rB5GyobcjB+$BN-gC9*_xj;5Vnlq3F)40Z^PuunlAixyl5;uUsW#c__s4wQ= zcb!DN1NMEtjj-P6z!>qZ=rvBE-z-Tyo;`8dFv622nE%K|JN8v^kK=W+``(7HflJIH zLy?@wHyTYYxgvadS-MclJWU$>26Wm`M`FV(#Lg4w6|+Uc6;h*u2_sppVeYqQeBY13 zTraIz|JMd5ptC|YH>*&2p%CDc{rpbt(8L)bwIZv*B{*|;Ze%M}+>RRM!vOSAN0n+l zyCg>Q5H7X~*-ze&9KIYK>VNj@J4wB39}Gwb)4%C7+Iw-&DpzJ&kk}Z;yiiNfPOT(X zifFH)BmMrc4rAWPXaqBwXSaszEU=tCEM>F%x+DNUD{?aaB4IUN(>kH+i*0iwy3((g~1UrHtjtRxS#`=NyRE}saXFVm>Gt|7!(U|Wd#1H$-2_Vshk zL=&uu+LX>=P45>d+Z_&e9Dm6wJH=Mm!o}alO4p%{W6ZYAl^vqgm{#AJ@Kb?I>m1w^ zg4B(7gH1%^3#Eq8qsLy$k7@{_{!TT&#a19pX|ubF{;j3A2BwSbZPvE?`3$F3<4^9^5Lwnmmg8*ZGDp+5;8Qq5sFTq4Ox2ra$_%T?beyRws7E zV(kRKZa7TUcuGVvGR&;O?^EA75FU}9#to)@aA?ZI?#*Hm8Lvtk4S8LFp`KE6LuEEi zjeBfDj8KYFo#g%3H}puX^tGw&&umE4#rLu^apHuhV8*);KoiD}Mm#^?Q9mlAexaj- za;*bi2=^2GHf}xynU>*0g&UZ=cRZ+ud3_J;e4-JmRwK8~gChxw>1xu~gq0?WSVEfP z@Kh{Xup7KdPsgU@p4%Cucvb?P%1T(TE-#+ArWd0Ts4-Se&ES=D%lXOWMsPdhlBw22 zPRNg?ezHVa{g16|9P`hzN>l@3eX0^Z$X@KY#H;{r>+%(dp~3QgixjYw48}CSfRH(5 z1oG>ZoWrNGuppg6j_39~>;ZCl6iB6h8=6JR!_$s4N_EZD{=)>q`8JBz-DI7s<&=kF zaF;Ui6ImufNMDkBAtX~(()9}g`CXeeP@CHT^{l%of#1;JEDfK~rNE5i+ohIQ4RK7D zNcW>to;EhBdvbDQyF2g{rzfJld_|o7l$-seJlQ-awG^=@*VgNlsY0e`gHUyKPbxzS zYBON?nK>DMg_BWRxsB?BDSxKKVWjhy=eRvkEb zSHk^jk2>54zZ|&XRDCQEqSErznLin3VOJAY?_>}VhwZaonI8H`>XZHiQdrZSh zu!DGp-KE$sHOkH)ij#@8VT)WVkQ__~5$un9nx!!}NN5?$_q3r!(zoK7p726`RfYe7CqHH}Uix=GZG&&YnfQ=;&9nHC}Y(a#(b(!*bTS&kv<17+#1Ny2?}x zu}H>sBRtB6d(iPtk>)mhHJtVQ&8XaR9m4K4NM^~5Y6;i12(#JM^gqWtZ@-Rc;etjQ zU}$4>t~`NauawJ;=wZ|0AIoYeCxvdJNAkV>8oX&TMT&wq_8mXP)XNq6-q#k4aMHo` z?c0NAtrQYb+NtsKWAYLsh7qUDRrjN2NALw2a=o~O51FKCN;i-zv(-Ix-mXEHETxY4 zS@FyI9u-x!Z*R!giHmtk~MJOcM z7OqUl6W<9q4$qtX9YuSkRXuM;M=VCcbOjc~vvwV(I4q@}>|y7g-$ZT*baEZ(>#w1A z?pa4~Ur8lsTk_M8@FC1${`Er-nY3j&&2m)Xfs^T+*?m�!5R33T-s7CnZk*gR+z3E zEDhr6*Cpq6x#WiCS1%lbsvh#-qra2UemMvm_0q)yd9L#A(9Psl9%=cB5#*^k-rl4Y zG^Afp?e_b;qT*kM-(2lxCFKYwC7>`Wgxa@EhmqS>R{lla>{}M8tUr_>73?^M0~4XC z^S(SoWgdTJ@R%3L=bVp{1LG%W_!-E?qtHKb z`vFJX9S-KdMO)q2;#cX5C;wnmQ*)>`#Fbaghk6R|w~wJDg|iCYJcBgND-r;{IZeKn z*1p~S`#&QY#x;NYJ1y*Rn^bON9h#IB1do^kG_8&4ALfHDC}tMmPArrzkTDLT#I&q` z1V`bl6_)F87NA1)f+KOO#21?C)mbTuP**brh8hBG#?>?U9d zoxKvZmWpZTQMJBXgt``lVdx~a@iFYKyjH`#IcF4m;nAk7zFVuuN93vW9ud4#-?{9- zn$kE_L&w~&>qLV$zvZ^74$7}h4N3Ttr0nNj^xc&|Tv!?OQ#Q3)0Tdf_DRoc*ltkvE z7AX)xvUgYAb}UzVGo6VDy?h`-&P@Yz^5zH`Zi}>3X5=%2E&R;+2s-%&G5m%2zc1+H zFKD@C{AXnz7zl`GDw858C9vg~$$~Pp^{U>F$v!NaAA$owdLram_+@wDdu&QNRh*6tA{>KtK+9H{&8nL*pJzMu4 zxpy>Cd{KJfy_5QG-tdi~Y!6m*oek3apkmyhY}~*Q=_P0_RL`P58Unw;X_EBMHhx9h zPMnSwcXiY%D+Od@Iv`HhmIeh+$Z4M5$%yPil?C5svnbPTf6yE`;!NsyV#11FOK_oF zA`P#j@5Jbn{cN2LhT+MR(l-~poMRWXzCSEuw4x9fO^^z|QPJ8QtvjM$RSQn0c*Htj zYPqARjTZ@BS8iZ?E$0$w4T)Jl-iX#AEnZ zBOerDRQ{1HH}Ln2ubj7*z{DqFb=|6ed4F>m7_11#q9L2!A!>sa2;V6KVJ_VL(MG-G zbTshyFg0+-a(r{f$un(p=h#V@V7)qSXf_1u7xx(_1{(5bV=)#z>f3pYyI9|xlnCO zML&1iQt{y%Y$>xc8QOSW;s1Mn{{!8ppV-Nvg8~8BOAVw0r3Ev5NUfy%iauh;P~K); ztuyCz_zRlUtPr!&FH0hPGA;j6Id7PMiNL;!x-H#za9mavHhdfRq~iAN+biVRzA$1# zZN;LkxYeMscnI3i2g>6DO}U=$ULGE<(n_px&P9hAXp_=9##$D8lI$x4SnG%T){ecv za?=+M>Gqzhclqnkcxit_a05Xdz-~AjdUVT?XB|UwOMf_Y^>U3`k)335zXTd}KeiA# zr2nQcZhVRNmTTtGQVY6wIc^4dkr}387G0#dA z4EEGi%B+ky&&BVJV&IOU{+(w-w$+C7 zPhv?P#WiGu{c|ILI*{Vqd~K~9qwmWTPt;U!Pd-(@i>inj*N+EvIZk`NX0SIZ~B5>&#mJLpzpI(9~Dyh^cjfxjz&nZEOeUvOuXObjqRx8w! z-8G&f=K752&+;vf+j}#v;mn3eKniKBWV>BvOH3V`D3U)ruyYylH|~OE^k}_L8GjU$ zRX>A2xll=AH@+t+1taLLn$v9n&&uZtN5t?@`<_k`R~N*90|d16SDGAG{ka{^tI%oF zZO&31q~{AC5c>Uo!5W<8hk5|6Q<-&$S2hAJt~n^M4mOdMTVuCy{Drb&jSy8)v2*9G z)zk~KPpZS&*$eeM=<s0$DUW)vY;bV>t}1Nm;ROR-=7L0I~QFmBRf zH-RaU&E><3K%tUb9pdi&rF}1ArePL~iR>egXKfmf2kx8XgSGIx!9N@5OC7E3wr%KJ zaBZs!$`<)!)f5C|V+>peq(XaJCpP1r4oP(BrVdvsFX>lnoUKC~tZdebtFK&_h2d4X zP8;jaSQ59b6&FmxtE=92=kFE(`MSwk*f6yQOJEbJi7f$M{Ke!5nuJ z33KM_U5>zCM0@VIC0jPrj)z94>?v)`)A}BX|da9~fIR`pxcY{gPCt_m4#P*|W z7InKw%;eMimdOOj}O6OV*61M%m(EYZ+pmAG>ibE#d&uOBrg%bO<<;+Yu>#O+rT zppJ@nX^$s=2MPmQJtdNWC?Ky_w8YGFEBzg;I@J>z*>Urqcdh!AWn1E-x{hTt+mJqE zhmz(`7xd}dhx+d1FM;txCpU;eG5Sb_Hi9~2M)-kFm5#A?YhL)N^ML!HKXm^SIr4%+ z-MnBSPOy?y(^`;FD3MCEOn=-F49f@r+&vUvr=7O`R2zyk;lfFO6>p`D9C_x>gx))5 zqr)SpNHcHaH&p-Qv`>&y}m?G7EX%oAj zLs#)~<%!MgIlF0R6`hiel*! zpLls|X=(1SiWRUgP@pOxFBh=GyO$-=?G5=F^jcwjfo?o+;Esh+kzFNsAT_DhX_pv& zxn6vmci<3HnvMMXn5P8WY%=qZ!fb5K@Qh0Jv5= z&u2Je@`WVpX80-goIPvR4~=M}-RUSZPsgcYrE@{$Mg)T!>irmR!4$jDCnjztllRPR zHAgzZ%~5`^eKl7+?J>%g4F+1W<{^&4J-tBxe&@+%V6q6$cRtPgH6E4+M0CDY{VeT>E`d%{%giLKo4CWrF|P&&$h= zKpv1nTD=F9?oI!#%Z*FW_c)# z9}Loo4pQ9?{}ENdEIEumK(0lBI;A7D^OXs(>IswwgHKo8TrL-cBHWEV1xqV5kSGZ29l_~VEH4T zHTwMcQ%g8NkpSH9uyHv*S)iYq;c<>_jeOCdN9DBHRS5D8@@i_o>`~LJ?|I3GHDWJ_@++0Th z=_~-98sP{xDY4%mimIfOCxZ3s{C+upxJ2}YbdKhA`KxA$ECr?p4nk4xmw=brhHp!E!Rj?uNCBuaYQL;N`EalTNy34`0O@!VExZ8uAF@A#<-BMH!7Lt? zO35P93H%27+KE^{>Zp!ZhB{-jhhkd17@zDw?Vh3$wVVtHIfJz(NCQH|?kqYo&?NiuoQx>W@0IWSSuGL2AEkat=q1h#^W1gFhk6_8s3 zi;939m=;(BJ@%W7nP4h_q?nebn(CMH52(bf$(YRf*%eei&O!{PBtteo{RUsL@U&qs zlm*MXtQH0xqVK=z>`Iw4xS^0|4(m}NQy_=UpwF&eu2NLinfC3 zNszHJs=>^qbT_&m)58z)S_O`Z=e3eXbjuxEhu=qodk+@c=p=Un( z_6MYmH3YTQ!Po|XNx!mpUwC3bhrsXK^?UW^q{iPy_|>s#_|~*hMKviRN9~e#bkzf_ z$N{07ZIWn%lKl(*vZXwh2TJ-kU4a*=kYiG8%9kX#xXO7C zIYPLCes2CR&)56A6UI;HrcZ^!-f;Y*>HYgba*U}hu3}a3pg_{D_?NinM+sXb24j1~ zZ&VN?{-#detX-N)7wmr!5{b)BpP|kN#b6SR@oy~~& zm<{!wjF|DKj3SInQ9t3|HU!7do|TZYLdQn1%?GTVablD(t9cvt8hM z9%{NlXPv5X>wwLim3Z$ILN>c;5*r2oFR8J(Tils?0E0@ACWRxDlCaMVlM3*NVN0Q< z;U_z4Pj>eN@qP|7?^?C2dBM~ulnKMjM~pNzwd%*4;Kfwp=vHE3QX0oGA^yGjYxH5X z_tlU3)o5d}OcQ8f{Dh|4=ud2UCSG3}6|$FXQq|rU>MGIr6OQOaD<4->7wNgOM|O&a zgb-cLetvYCtZ@esEBP60o*ZDDcq+F@lage>F3T=R_IKUUj8Elq&{sb?e}4X|u#Jj# zacjhsZQ+&~(CA`eX#W5gGD>QIlMU7b#71NA2*8{lIqu zl~%VdOb&O=sq%g6yPDyf(PI~P-}7fYag&)uG>S|`Ved`7D1O_ijRE#TQ-@6%;9yo_ zMJW-Oi?n2qwXGn{0nKQ?Kp?SCb45P)QEV1f^78bF8~MaQk~D|vSVrB-A)$hUARcm& zYP1C@$*~nqgY-B6ULtW`P}}b{ff7QMraSeE5(UTB+oC&0fxeL+jtQqQmA1PHo!d%K z2_p-)qv=?RKVZ2$_yG3!C!EOCBZ%)?ewNAxzL*wlv8oeHmC}UpNFzOkf+Sb&ZLYjl z@lFRaExMGT(blK|RMq=6w_fAPLZZDR!YOkYbhlOkPRG@!B>v@kXg#Wfi5#))GEjJpk;^T2kUJk$322wf_%9Sg5Th8dVy1v%uf+%u0%(t(pFPq2nD^7+c4YQgJP5dMx#!+|shKho($ z+qQJ^2bc@CLX|kLNQD;Y`_!W*!Wa8|X_S&gV{*ptcp+rD_~GaqbiZRWSO_UWJ1bT$ zGTs2sydf+3O&RrG4)0T+<^8Lz1#xfnEty&=&V-4+*N9lpzrRPicooU~9n}#=M6NgK zTB#hisDv=T;vXTKhFb>q`6F)6ME}FpH*jYHY|91{XJXqE+qP}noY?td+qN^YZQHhO z>*d`0y!tQn>aJZ?yJ`~KR3Kj;J0n{NlN9NCsLP75=>S96=q0;2P_Hwk|4Lz%Jf?g7m3ABu{0& zO`AvMsFYBmxI_3mtAUL&6%9rE+q}`j2Jr5E@^O;^&M>%-?q#Atxn~XT(NQ;r+~Zv$ znA?;xLfLPJX}%KjZmJLj8I$`@lXKe6q}ayE-q$g}ETdWOcb%HCJ%kVdJxI{Wsnf$? zafWaI;ZfLvi@r+7pc|(d=2* zX#J!_bsPz$8t#lZW+kejRAsdNx0YaN+ z+Cp7S1J>9J(k(*FIIo_7aNj!vjC=tV-8=c@;w>sKnRKGLkSwCe|L2T_sQKXx>rlb@ zjpgj^beX;Fw5t2^Pe?K=TQ|7+d@^>O>l<9z)1+J@Zi5M|iVXH+0&T^raJeObgGM>p zOuYFni;u>#q1glgs!P+hq@0*g5anx= zw)7UOY2&8hByF`0-}cI=Tjjd}nY0z($%9QR;;Q!>`2QWT=~D1aaejDM?B6Nf{J_|N zAT_HWu@~iYOE2$6NMEI4@1LgtEjqPr6P8p4kwW_~0R(y^8~Y@YsKNxd=x1{gDpGLO8&hMHdZfc_j%-7zko z;eF}J%tvL@d`2SpBNbXFeHg?J?2;@179IrM7nYv3_8|APXCZ%lfV74E&Kx3Vnp#>? z`5BZY1$@f0Hbgkj2&Edla=o_6eOf7X<&SZHw-815&#Et0llE*R&2fJX15_~D-GIcDkVGHW77ZfH-a{%O8AT4dAXQ&StkW~3)EF$sXtr( z64AcufoHE6@yFq?Bh~njoazt&I(wL8Ktk<7wgQ6K$*`C|}qWT5f#;4^~;xe!&vNT$L#E!(?=hv$`8M%+V^oP_%0`SSH;x>?p+ z)_fo6{bT@`#8}weD){k*T4s8yk$ku$3*@}9(wUd{57jc2ja*j5gwG~`NvHx{Dnj*V7a zr?f%wd+Ki;U(0l|U3(jkjl19myKEEgw2nrTPN(6%wk;R_`kVMc#H0R-lwat z(8^E1n(MFGfmU>WxM~YK?zLO~o{$(F&OFu%LS}Jl=Mh^XhMG?w#(th-X=VVl$;IRH z;%}uFjBq4JI>a7jF)jyBG?$}X=b76fpAL*;`pQy`ijPiwI$pou-Mt+|Q!IcTSM%S| zYloIg!7SJX(0I*&p}j!jY*diICgOloA#Ny*jXH&om{*b;S#xf--*x_&;5he*h#v#?dAp8*_JZul=^Qv^n9M zZK&Yu#CGbmpg;DB#1kzy`FTtiX^pyyJ8`&e2~mQj8dlT6C72=}wH4R_89@aRN_-() z%{FIxoA@e&`lbZc+MJ16W=P6@l_q^bPVVmfV&uGbcHC<7WDg|kE$eLK_TpZ-9bI23 zKgzaHvdA8gA4OK^wvzPk-^`z@UFMThI_7^ijd>Y}0kyGAvGrC)^Aj??($-F_)K3_0 zD_U{QI<@|`*ZLRE##Q5ZVd0^HG`3f6Fmg!&lh`XzT{jJ4ds`8Dgxf zexJFKPApx3H2eG2OZ~NrT+?|LLN5_;Jv>YG z_e?m$4%%K#LzYLjk1C~|;AZ9Hd~iF#5Y1<2V&));+7L1NS7u#Ur6rS=jqRN3AgT?G z3R4OjXX`G3>nWIz2Alm>KDN})b6&}=*N7C$;Tt!LUj67gRG&4=@0%9A0-;Aucomc& zR7hRGrtb+(gi`A;dzZIoz=HRS{%8B58}0VhwVnJ=oOZO_WJgufR$zz6zS~=9$CyB9 z;UMW!niNi$FgMW≪0-cg8+F2bPJVdO2MO5%2zhF~-QK(i_;jD)5A-=oPHqwte-+v=K zdp_s#@R%DFIN~3eqQZSc{GVUsKWd(L_MUDKC=k#xG!PIn5KzkQJO~P)QB^8to*tp= zSPizMNlIJ`0jH__mnKy0p7RQ-VdGjrMoSc7Sj4_HcKL_vPz;I7TGbA}>e*V_Fx&m4 zTjuGY2oU;>p9#(p;@70XB-n?si3U|K>h_YqjUp7C**zOSV-pb-(jd3moE&wrhy?P_ z;0PT{5j4Hrd}+0i3XTt`wzIt=iYM7u2q&2TJ$m{84fur_R8tkM&Zrw{C)hG3t`RIR zkt_oT%&UaFz8;B^5pI1FkLH0-B|^_j^l2*fYjpR<`7vOq&aZMui;|>(bi+`5O4T70 zj5Hp^PfXOcr%?iufsVvLBn;EE23cCMZYxIxm(kn86>Yam7Z5&H)0MNANrf+#f3tNNC)2PVaiqL+*L5P%@1|h zlraby0|Vh7`h_BZlGCxcV!(C9Red^>PqAg&NI1`cqQQbM6Ih&F!sp(f_qRgi0m32P zRGxHz7?HJD-<*?!F_ulFP9%-Aifoe!1JS5SXOX!ZBoO{Zmtr_&vbMI1SiaqQ*sNmA zS^o%gKawfTcPC9V+6$6aC@G3c^6!6~yt0xu9GYo#4LmM|;WID^#lrw`Ry-Fy`Nm z`Cf1v47J{?k)0Hp&7x$NZ^pfuK+|niT&|A8j~n)YPvNk)Mf<$W4pTFCN0LcC>G0>b zqgmHD6CZZwwey>5JBF6zShb?S#Kam1MG|?gfD6c-?oGj&NmgVHzD;S6PX(;4Kc9)% zunUiB0UAP%qoFaG*Jx=L`mx?Te?5D;2Qj}kBeK*sK8ZM^eY&71>8v7Eyt z-DtTP`37$U0(;4WXpg{DLI+FqgbuV;4HNq?-KL#808=!jRC?Q&oh-d3J{y~7=U zDmtr^{2x!Tz3+4#|lm#DJ;&v%f;TbQiB2s6etSXMI zO>8 z7(9Grk@@=8B9(PGNIZzb;V2r2$;I^#N7N)SH)JM9Mv-W|XZStbIULv8?BIi3B9pU( z`C1VmoqmuL2t?x2s;*zMxF1iB4c_!b$-0HaakEvy_uCD1Y|<$(>E10+G`MCbp(IRS zw06btjPL(_fDP-<=COZZd{s)B3NSTrbIOtmFgL)hXwhxU?&x#Nlj)jgczyl653d7T z6bh&1#T95iuy>PQCJ04aF4;e*o+E@R1%3+%DF~U7uqubT@Zoc k6~WY3pz#}S$> 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 K>tSjI^Zx=48&&a<=57&&(e+="_"),e+t}return t},viewToString:function(e){for(var t,a=e;a;)t=t?a.id+"."+t:a.id,a=a.parent;return t},copy:function(e,t,o){return a.copy(e,t,o),s.copy||(s.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),e},browser:t,event:{POINTER_START:t.POINTER_START,POINTER_MOVE:t.POINTER_MOVE,POINTER_END:t.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(e){var t;try{t=e.getBoundingClientRect()}catch(a){t={top:e.offsetTop,left:e.offsetLeft,right:e.offsetLeft+e.offsetWidth,bottom:e.offsetTop+e.offsetHeight}}var r=(o.pageXOffset||n.scrollLeft)-(n.clientLeft||0)||0,i=(o.pageYOffset||n.scrollTop)-(n.clientTop||0)||0,s=o.getComputedStyle?getComputedStyle(e):e.currentStyle,c=parseInt,h=c(s.paddingLeft)+c(s.borderLeftWidth)||0,d=c(s.paddingTop)+c(s.borderTopWidth)||0,f=c(s.paddingRight)+c(s.borderRightWidth)||0,l=c(s.paddingBottom)+c(s.borderBottomWidth)||0,g=t.top||0,p=t.left||0,T=t.right||0,u=t.bottom||0;return{left:p+r+h,top:g+i+d,width:T-f-p-h,height:u-l-g-d}},createElement:function(e,t){var a,o,n,i=r.createElement(e);for(a in t)if(o=t[a],"style"===a)for(n in o)i.style[n]=o[n];else i[a]=o;return i},getElement:function(e){return r.getElementById(e)},setElementStyleByView:function(e){var t=e.drawable,a=t.domElement.style,o=e._stateCache||(e._stateCache={}),r=c.browser.jsVendor,n="px",i=!1;if(this.cacheStateIfChanged(e,["visible"],o)&&(a.display=e.visible?"":"none"),this.cacheStateIfChanged(e,["alpha"],o)&&(a.opacity=e.alpha),e.visible&&!(e.alpha<=0)){this.cacheStateIfChanged(e,["width"],o)&&(a.width=e.width+n),this.cacheStateIfChanged(e,["height"],o)&&(a.height=e.height+n),this.cacheStateIfChanged(e,["depth"],o)&&(a.zIndex=e.depth+1),(i=this.cacheStateIfChanged(e,["pivotX","pivotY"],o))&&(a[r+"TransformOrigin"]=e.pivotX+n+" "+e.pivotY+n),(this.cacheStateIfChanged(e,["x","y","rotation","scaleX","scaleY"],o)||i)&&(a[r+"Transform"]=this.getTransformCSS(e)),this.cacheStateIfChanged(e,["background"],o)&&(a.backgroundColor=e.background),a.pointerEvents||(a.pointerEvents="none");var s=t.image;if(s){var h=s.src;h!==o.image&&(o.image=h,a.backgroundImage="url("+h+")");var d=t.rect;if(d){var f=d[0],l=d[1];f!==o.sx&&(o.sx=f,a.backgroundPositionX=-f+n),l!==o.sy&&(o.sy=l,a.backgroundPositionY=-l+n)}}var g=e.mask;if(g){var p=g.drawable.domElement.style.backgroundImage;p!==o.maskImage&&(o.maskImage=p,a[r+"MaskImage"]=p,a[r+"MaskRepeat"]="no-repeat");var T=g.x,u=g.y;T===o.maskX&&u===o.maskY||(o.maskX=T,o.maskY=u,a[r+"MaskPosition"]=T+n+" "+u+n)}}},cacheStateIfChanged:function(e,t,a){var o,r,n,i,s=!1;for(o=0,r=t.length;o=48&&a<=57&&(t+="_"),t+e}return e},viewToString:function(t){for(var e,a=t;a;)e=e?a.id+"."+e:a.id,a=a.parent;return e},copy:function(t,e,r){return a.copy(t,e,r),s.copy||(s.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),t},browser:e,event:{POINTER_START:e.POINTER_START,POINTER_MOVE:e.POINTER_MOVE,POINTER_END:e.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(t){var e;try{e=t.getBoundingClientRect()}catch(a){e={top:t.offsetTop,left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,bottom:t.offsetTop+t.offsetHeight}}var o=(r.pageXOffset||i.scrollLeft)-(i.clientLeft||0)||0,n=(r.pageYOffset||i.scrollTop)-(i.clientTop||0)||0,s=r.getComputedStyle?getComputedStyle(t):t.currentStyle,c=parseInt,h=c(s.paddingLeft)+c(s.borderLeftWidth)||0,d=c(s.paddingTop)+c(s.borderTopWidth)||0,f=c(s.paddingRight)+c(s.borderRightWidth)||0,l=c(s.paddingBottom)+c(s.borderBottomWidth)||0,g=e.top||0,p=e.left||0,m=e.right||0,T=e.bottom||0;return{left:p+o+h,top:g+n+d,width:m-f-p-h,height:T-l-g-d}},createElement:function(t,e){var a,r,i,n=o.createElement(t);for(a in e)if(r=e[a],"style"===a)for(i in r)n.style[i]=r[i];else n[a]=r;return n},getElement:function(t){return o.getElementById(t)},setElementStyleByView:function(t){var e=t.drawable,a=e.domElement.style,r=t._stateCache||(t._stateCache={}),o=c.browser.jsVendor,i="px",n=!1;if(this.cacheStateIfChanged(t,["visible"],r)&&(a.display=t.visible?"":"none"),this.cacheStateIfChanged(t,["alpha"],r)&&(a.opacity=t.alpha),t.visible&&!(t.alpha<=0)){if(this.cacheStateIfChanged(t,["width"],r)&&(a.width=t.width+i),this.cacheStateIfChanged(t,["height"],r)&&(a.height=t.height+i),this.cacheStateIfChanged(t,["depth"],r)&&(a.zIndex=t.depth+1),t.transform){var s=t.transform;(n=this.cacheStateIfChanged(t,["pivotX","pivotY"],r))&&(a[o+"TransformOrigin"]="0 0"),a[o+"Transform"]="matrix3d("+s.a+", "+s.b+", 0, 0, "+s.c+", "+s.d+", 0, 0, 0, 0, 1, 0, "+s.tx+", "+s.ty+", 0, 1)"}else(n=this.cacheStateIfChanged(t,["pivotX","pivotY"],r))&&(a[o+"TransformOrigin"]=t.pivotX+i+" "+t.pivotY+i),(this.cacheStateIfChanged(t,["x","y","rotation","scaleX","scaleY"],r)||n)&&(a[o+"Transform"]=this.getTransformCSS(t));this.cacheStateIfChanged(t,["background"],r)&&(a.backgroundColor=t.background),a.pointerEvents||(a.pointerEvents="none");var h=e.image;if(h){var d=h.src;d!==r.image&&(r.image=d,a.backgroundImage="url("+d+")");var f=e.rect;if(f){var l=f[0],g=f[1];l!==r.sx&&(r.sx=l,a.backgroundPositionX=-l+i),g!==r.sy&&(r.sy=g,a.backgroundPositionY=-g+i)}}var p=t.mask;if(p){var m=p.drawable.domElement.style.backgroundImage;m!==r.maskImage&&(r.maskImage=m,a[o+"MaskImage"]=m,a[o+"MaskRepeat"]="no-repeat");var T=p.x,u=p.y;T===r.maskX&&u===r.maskY||(r.maskX=T,r.maskY=u,a[o+"MaskPosition"]=T+i+" "+u+i)}}},cacheStateIfChanged:function(t,e,a){var r,o,i,n,s=!1;for(r=0,o=e.length;r=6?(i=c[0],s=c[1],h=c[2],n=c[3],r=c[4],a=c[5]):(i=t.a,s=t.b,h=t.c,n=t.d,r=t.tx,a=t.ty),this.a=e*i+o*h,this.b=e*s+o*n,this.c=u*i+y*h,this.d=u*s+y*n,this.tx=x*i+d*h+r,this.ty=x*s+d*n+a,this},rotate:function(t){var i=Math.sin(t),s=Math.cos(t),h=this.a,n=this.b,r=this.c,a=this.d,c=this.tx,e=this.ty;return this.a=h*s-n*i,this.b=h*i+n*s,this.c=r*s-a*i,this.d=r*i+a*s,this.tx=c*s-e*i,this.ty=c*i+e*s,this},scale:function(t,i){return this.a*=t,this.d*=i,this.c*=t,this.b*=i,this.tx*=t,this.ty*=i,this},translate:function(t,i){return this.tx+=t,this.ty+=i,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,i=this.b,s=this.c,h=this.d,n=this.tx,r=t*h-i*s;return this.a=h/r,this.b=-i/r,this.c=-s/r,this.d=t/r,this.tx=(s*this.ty-h*n)/r,this.ty=-(t*this.ty-i*n)/r,this},transformPoint:function(t,i,s){var h=t.x*this.a+t.y*this.c+this.tx,n=t.x*this.b+t.y*this.d+this.ty;return i&&(h=h+.5>>0,n=n+.5>>0),s?{x:h,y:n}:(t.x=h,t.y=n,t)}});return s},{requires:["hilo/core/Class"]}); \ No newline at end of file +KISSY.add("hilo/geom/Matrix",function(t,i){var s=i.create({constructor:function(t,i,s,h,n,r){this.a=t,this.b=i,this.c=s,this.d=h,this.tx=n,this.ty=r},set:function(t,i,s,h,n,r){return this.a=t,this.b=i,this.c=s,this.d=h,this.tx=n,this.ty=r,this},copy:function(t){return this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.tx=t.tx,this.ty=t.ty,this},clone:function(){return(new s).copy(this)},concat:function(t){var i,s,h,n,r,c,a=arguments,e=this.a,o=this.b,u=this.c,y=this.d,x=this.tx,d=this.ty;return a.length>=6?(i=a[0],s=a[1],h=a[2],n=a[3],r=a[4],c=a[5]):(i=t.a,s=t.b,h=t.c,n=t.d,r=t.tx,c=t.ty),this.a=e*i+o*h,this.b=e*s+o*n,this.c=u*i+y*h,this.d=u*s+y*n,this.tx=x*i+d*h+r,this.ty=x*s+d*n+c,this},rotate:function(t){var i=Math.sin(t),s=Math.cos(t),h=this.a,n=this.b,r=this.c,c=this.d,a=this.tx,e=this.ty;return this.a=h*s-n*i,this.b=h*i+n*s,this.c=r*s-c*i,this.d=r*i+c*s,this.tx=a*s-e*i,this.ty=a*i+e*s,this},scale:function(t,i){return this.a*=t,this.d*=i,this.c*=t,this.b*=i,this.tx*=t,this.ty*=i,this},translate:function(t,i){return this.tx+=t,this.ty+=i,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,i=this.b,s=this.c,h=this.d,n=this.tx,r=t*h-i*s;return this.a=h/r,this.b=-i/r,this.c=-s/r,this.d=t/r,this.tx=(s*this.ty-h*n)/r,this.ty=-(t*this.ty-i*n)/r,this},transformPoint:function(t,i,s){var h=t.x*this.a+t.y*this.c+this.tx,n=t.x*this.b+t.y*this.d+this.ty;return i&&(h=h+.5>>0,n=n+.5>>0),s?{x:h,y:n}:(t.x=h,t.y=n,t)}});return s},{requires:["hilo/core/Class"]}); \ No newline at end of file diff --git a/build/kissy/hilo/loader/ImageLoader.js b/build/kissy/hilo/loader/ImageLoader.js index 3213e744..6b3f5b21 100644 --- a/build/kissy/hilo/loader/ImageLoader.js +++ b/build/kissy/hilo/loader/ImageLoader.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/loader/ImageLoader.min.js b/build/kissy/hilo/loader/ImageLoader.min.js index f9455c18..1bada7e4 100644 --- a/build/kissy/hilo/loader/ImageLoader.min.js +++ b/build/kissy/hilo/loader/ImageLoader.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/loader/LoadQueue.js b/build/kissy/hilo/loader/LoadQueue.js index af6177b3..3ae89038 100644 --- a/build/kissy/hilo/loader/LoadQueue.js +++ b/build/kissy/hilo/loader/LoadQueue.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -49,6 +49,7 @@ var LoadQueue = Class.create(/** @lends LoadQueue.prototype */{ *

  • loader - specified resource loader. If you specify this,we abandon choosing loader inside
  • *
  • noCache - a tag that set on or off to prevent cache,implemented by adding timestamp inside
  • *
  • size - predicted resource size, help calculating loading progress
  • + *
  • crossOrigin - Whether cross-domain is needed. eg:crossOrigin='anonymous'
  • * * @returns {LoadQueue} 下载队列实例本身。 */ diff --git a/build/kissy/hilo/loader/LoadQueue.min.js b/build/kissy/hilo/loader/LoadQueue.min.js index fa3b7967..2ee83701 100644 --- a/build/kissy/hilo/loader/LoadQueue.min.js +++ b/build/kissy/hilo/loader/LoadQueue.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/loader/ScriptLoader.js b/build/kissy/hilo/loader/ScriptLoader.js index 208eb90e..5598e7c0 100644 --- a/build/kissy/hilo/loader/ScriptLoader.js +++ b/build/kissy/hilo/loader/ScriptLoader.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/loader/ScriptLoader.min.js b/build/kissy/hilo/loader/ScriptLoader.min.js index ee3ad048..2c26acbf 100644 --- a/build/kissy/hilo/loader/ScriptLoader.min.js +++ b/build/kissy/hilo/loader/ScriptLoader.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/media/HTMLAudio.js b/build/kissy/hilo/media/HTMLAudio.js index 00d752a1..d837f835 100644 --- a/build/kissy/hilo/media/HTMLAudio.js +++ b/build/kissy/hilo/media/HTMLAudio.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/media/HTMLAudio.min.js b/build/kissy/hilo/media/HTMLAudio.min.js index 62925c9c..c07d22c0 100644 --- a/build/kissy/hilo/media/HTMLAudio.min.js +++ b/build/kissy/hilo/media/HTMLAudio.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/media/WebAudio.js b/build/kissy/hilo/media/WebAudio.js index ad145535..70ff9861 100644 --- a/build/kissy/hilo/media/WebAudio.js +++ b/build/kissy/hilo/media/WebAudio.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/media/WebAudio.min.js b/build/kissy/hilo/media/WebAudio.min.js index ad99b884..3cc2fe2d 100644 --- a/build/kissy/hilo/media/WebAudio.min.js +++ b/build/kissy/hilo/media/WebAudio.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/media/WebSound.js b/build/kissy/hilo/media/WebSound.js index 3f2d5e56..813e311f 100644 --- a/build/kissy/hilo/media/WebSound.js +++ b/build/kissy/hilo/media/WebSound.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/media/WebSound.min.js b/build/kissy/hilo/media/WebSound.min.js index a90ec1aa..1b8bcf70 100644 --- a/build/kissy/hilo/media/WebSound.min.js +++ b/build/kissy/hilo/media/WebSound.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/renderer/CanvasRenderer.js b/build/kissy/hilo/renderer/CanvasRenderer.js index d98bb38d..ab0702c9 100644 --- a/build/kissy/hilo/renderer/CanvasRenderer.js +++ b/build/kissy/hilo/renderer/CanvasRenderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -18,26 +18,26 @@ KISSY.add('hilo/renderer/CanvasRenderer', function(S, Class, Hilo, Renderer){ * @requires hilo/renderer/Renderer * @property {CanvasRenderingContext2D} context The context of the canvas element, readonly. */ -var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ +var CanvasRenderer = Class.create( /** @lends CanvasRenderer.prototype */ { Extends: Renderer, - constructor: function(properties){ + constructor: function(properties) { CanvasRenderer.superclass.constructor.call(this, properties); this.context = this.canvas.getContext("2d"); }, - renderType:'canvas', + renderType: 'canvas', context: null, /** * @private * @see Renderer#startDraw */ - startDraw: function(target){ - if(target.visible && target.alpha > 0){ - if(target === this.stage){ + startDraw: function(target) { + if (target.visible && target.alpha > 0) { + if (target === this.stage) { this.context.clearRect(0, 0, target.width, target.height); } - if(target.blendMode !== this.blendMode){ + if (target.blendMode !== this.blendMode) { this.context.globalCompositeOperation = this.blendMode = target.blendMode; } this.context.save(); @@ -50,31 +50,38 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#draw */ - draw: function(target){ - var ctx = this.context, w = target.width, h = target.height; + draw: function(target) { + var ctx = this.context, + w = target.width, + h = target.height; //draw background var bg = target.background; - if(bg){ + if (bg) { ctx.fillStyle = bg; ctx.fillRect(0, 0, w, h); } //draw image - var drawable = target.drawable, image = drawable && drawable.image; - if(image){ - var rect = drawable.rect, sw = rect[2], sh = rect[3], offsetX = rect[4], offsetY = rect[5]; + var drawable = target.drawable, + image = drawable && drawable.image; + if (image) { + var rect = drawable.rect, + sw = rect[2], + sh = rect[3], + offsetX = rect[4], + offsetY = rect[5]; //ie9+浏览器宽高为0时会报错 fixed ie9 bug. - if(!sw || !sh){ + if (!sw || !sh) { return; } - if(!w && !h){ + if (!w && !h) { //fix width/height TODO: how to get rid of this? w = target.width = sw; h = target.height = sh; } //the pivot is the center of frame if has offset, otherwise is (0, 0) - if(offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); + if (offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); ctx.drawImage(image, rect[0], rect[1], sw, sh, 0, 0, w, h); } }, @@ -83,7 +90,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#endDraw */ - endDraw: function(target){ + endDraw: function(target) { this.context.restore(); }, @@ -91,9 +98,9 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#transform */ - transform: function(target){ + transform: function(target) { var drawable = target.drawable; - if(drawable && drawable.domElement){ + if (drawable && drawable.domElement) { Hilo.setElementStyleByView(target); return; } @@ -102,66 +109,72 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ scaleX = target.scaleX, scaleY = target.scaleY; - if(target === this.stage){ + if (target === this.stage) { var style = this.canvas.style, oldScaleX = target._scaleX, oldScaleY = target._scaleY, isStyleChange = false; - if((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)){ + if ((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)) { target._scaleX = scaleX; style.width = scaleX * target.width + "px"; isStyleChange = true; } - if((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)){ + if ((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)) { target._scaleY = scaleY; style.height = scaleY * target.height + "px"; isStyleChange = true; } - if(isStyleChange){ + if (isStyleChange) { target.updateViewport(); } - }else{ + } else { var x = target.x, y = target.y, pivotX = target.pivotX, pivotY = target.pivotY, rotation = target.rotation % 360, + transform = target.transform, mask = target.mask; - if(mask){ + if (mask) { mask._render(this); ctx.clip(); } //alignment var align = target.align; - if(align){ + if (align) { var pos = target.getAlignPosition(); x = pos.x; y = pos.y; } + + if (transform) { + ctx.transform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); + } else { + if (x != 0 || y != 0) ctx.translate(x, y); + if (rotation != 0) ctx.rotate(rotation * Math.PI / 180); + if (scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); + if (pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); + } - if(x != 0 || y != 0) ctx.translate(x, y); - if(rotation != 0) ctx.rotate(rotation * Math.PI / 180); - if(scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); - if(pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); } - if(target.alpha > 0) ctx.globalAlpha *= target.alpha; + if (target.alpha > 0) ctx.globalAlpha *= target.alpha; }, /** * @private * @see Renderer#remove */ - remove: function(target){ + remove: function(target) { var drawable = target.drawable; var elem = drawable && drawable.domElement; - if(elem){ + if (elem) { var parentElem = elem.parentNode; - if(parentElem){ + if (parentElem) { parentElem.removeChild(elem); } } @@ -171,7 +184,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#clear */ - clear: function(x, y, width, height){ + clear: function(x, y, width, height) { this.context.clearRect(x, y, width, height); }, @@ -179,7 +192,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#resize */ - resize: function(width, height){ + resize: function(width, height) { var canvas = this.canvas; var stage = this.stage; var style = canvas.style; diff --git a/build/kissy/hilo/renderer/CanvasRenderer.min.js b/build/kissy/hilo/renderer/CanvasRenderer.min.js index 3c8d86c7..4179a278 100644 --- a/build/kissy/hilo/renderer/CanvasRenderer.min.js +++ b/build/kissy/hilo/renderer/CanvasRenderer.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ -KISSY.add("hilo/renderer/CanvasRenderer",function(e,t,a,i){var r=t.create({Extends:i,constructor:function(e){r.superclass.constructor.call(this,e),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(e){return!!(e.visible&&e.alpha>0)&&(e===this.stage&&this.context.clearRect(0,0,e.width,e.height),e.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=e.blendMode),this.context.save(),!0)},draw:function(e){var t=this.context,a=e.width,i=e.height,r=e.background;r&&(t.fillStyle=r,t.fillRect(0,0,a,i));var n=e.drawable,s=n&&n.image;if(s){var l=n.rect,o=l[2],h=l[3],c=l[4],d=l[5];if(!o||!h)return;a||i||(a=e.width=o,i=e.height=h),(c||d)&&t.translate(c-.5*o,d-.5*h),t.drawImage(s,l[0],l[1],o,h,0,0,a,i)}},endDraw:function(e){this.context.restore()},transform:function(e){var t=e.drawable;if(t&&t.domElement)return void a.setElementStyleByView(e);var i=this.context,r=e.scaleX,n=e.scaleY;if(e===this.stage){var s=this.canvas.style,l=e._scaleX,o=e._scaleY,h=!1;(!l&&1!=r||l&&l!=r)&&(e._scaleX=r,s.width=r*e.width+"px",h=!0),(!o&&1!=n||o&&o!=n)&&(e._scaleY=n,s.height=n*e.height+"px",h=!0),h&&e.updateViewport()}else{var c=e.x,d=e.y,v=e.pivotX,g=e.pivotY,u=e.rotation%360,f=e.mask;f&&(f._render(this),i.clip());var p=e.align;if(p){var w=e.getAlignPosition();c=w.x,d=w.y}0==c&&0==d||i.translate(c,d),0!=u&&i.rotate(u*Math.PI/180),1==r&&1==n||i.scale(r,n),0==v&&0==g||i.translate(-v,-g)}e.alpha>0&&(i.globalAlpha*=e.alpha)},remove:function(e){var t=e.drawable,a=t&&t.domElement;if(a){var i=a.parentNode;i&&i.removeChild(a)}},clear:function(e,t,a,i){this.context.clearRect(e,t,a,i)},resize:function(e,t){var a=this.canvas,i=this.stage,r=a.style;a.width=e,a.height=t,r.width=i.width*i.scaleX+"px",r.height=i.height*i.scaleY+"px"}});return r},{requires:["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer"]}); \ No newline at end of file +KISSY.add("hilo/renderer/CanvasRenderer",function(t,e,a,r){var i=e.create({Extends:r,constructor:function(t){i.superclass.constructor.call(this,t),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(t){return!!(t.visible&&t.alpha>0)&&(t===this.stage&&this.context.clearRect(0,0,t.width,t.height),t.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=t.blendMode),this.context.save(),!0)},draw:function(t){var e=this.context,a=t.width,r=t.height,i=t.background;i&&(e.fillStyle=i,e.fillRect(0,0,a,r));var n=t.drawable,s=n&&n.image;if(s){var l=n.rect,o=l[2],h=l[3],c=l[4],d=l[5];if(!o||!h)return;a||r||(a=t.width=o,r=t.height=h),(c||d)&&e.translate(c-.5*o,d-.5*h),e.drawImage(s,l[0],l[1],o,h,0,0,a,r)}},endDraw:function(t){this.context.restore()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void a.setElementStyleByView(t);var r=this.context,i=t.scaleX,n=t.scaleY;if(t===this.stage){var s=this.canvas.style,l=t._scaleX,o=t._scaleY,h=!1;(!l&&1!=i||l&&l!=i)&&(t._scaleX=i,s.width=i*t.width+"px",h=!0),(!o&&1!=n||o&&o!=n)&&(t._scaleY=n,s.height=n*t.height+"px",h=!0),h&&t.updateViewport()}else{var c=t.x,d=t.y,v=t.pivotX,f=t.pivotY,g=t.rotation%360,u=t.transform,p=t.mask;p&&(p._render(this),r.clip());var x=t.align;if(x){var w=t.getAlignPosition();c=w.x,d=w.y}u?r.transform(u.a,u.b,u.c,u.d,u.tx,u.ty):(0==c&&0==d||r.translate(c,d),0!=g&&r.rotate(g*Math.PI/180),1==i&&1==n||r.scale(i,n),0==v&&0==f||r.translate(-v,-f))}t.alpha>0&&(r.globalAlpha*=t.alpha)},remove:function(t){var e=t.drawable,a=e&&e.domElement;if(a){var r=a.parentNode;r&&r.removeChild(a)}},clear:function(t,e,a,r){this.context.clearRect(t,e,a,r)},resize:function(t,e){var a=this.canvas,r=this.stage,i=a.style;a.width=t,a.height=e,i.width=r.width*r.scaleX+"px",i.height=r.height*r.scaleY+"px"}});return i},{requires:["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer"]}); \ No newline at end of file diff --git a/build/kissy/hilo/renderer/DOMRenderer.js b/build/kissy/hilo/renderer/DOMRenderer.js index 25c88685..6815f688 100644 --- a/build/kissy/hilo/renderer/DOMRenderer.js +++ b/build/kissy/hilo/renderer/DOMRenderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/renderer/DOMRenderer.min.js b/build/kissy/hilo/renderer/DOMRenderer.min.js index 4621ad1c..440b2ade 100644 --- a/build/kissy/hilo/renderer/DOMRenderer.min.js +++ b/build/kissy/hilo/renderer/DOMRenderer.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/renderer/Renderer.js b/build/kissy/hilo/renderer/Renderer.js index 32596b71..996f8832 100644 --- a/build/kissy/hilo/renderer/Renderer.js +++ b/build/kissy/hilo/renderer/Renderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/renderer/Renderer.min.js b/build/kissy/hilo/renderer/Renderer.min.js index 088f6f7e..cfb78f1e 100644 --- a/build/kissy/hilo/renderer/Renderer.min.js +++ b/build/kissy/hilo/renderer/Renderer.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/renderer/WebGLRenderer.js b/build/kissy/hilo/renderer/WebGLRenderer.js index 75913110..e2fc56fb 100644 --- a/build/kissy/hilo/renderer/WebGLRenderer.js +++ b/build/kissy/hilo/renderer/WebGLRenderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -423,21 +423,28 @@ var WebGLRenderer = Class.create(/** @lends WebGLRenderer.prototype */{ var cos = 1, sin = 0, rotation = view.rotation % 360, pivotX = view.pivotX, pivotY = view.pivotY, - scaleX = view.scaleX, scaleY = view.scaleY; + scaleX = view.scaleX, scaleY = view.scaleY, + transform = view.transform; - if(rotation){ - var r = rotation * DEG2RAD; - cos = Math.cos(r); - sin = Math.sin(r); + if (transform) { + mtx.copy(transform); } + else { + if(rotation){ + var r = rotation * DEG2RAD; + cos = Math.cos(r); + sin = Math.sin(r); + } + + var pos = view.getAlignPosition(); - var pos = view.getAlignPosition(); - mtx.a = cos*scaleX; - mtx.b = sin*scaleX; - mtx.c = -sin*scaleY; - mtx.d = cos*scaleY; - mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; - mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + mtx.a = cos*scaleX; + mtx.b = sin*scaleX; + mtx.c = -sin*scaleY; + mtx.d = cos*scaleY; + mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; + mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + } mtx.concat(ancestor.__webglWorldMatrix); }, diff --git a/build/kissy/hilo/renderer/WebGLRenderer.min.js b/build/kissy/hilo/renderer/WebGLRenderer.min.js index 8024ebc9..9f3794f5 100644 --- a/build/kissy/hilo/renderer/WebGLRenderer.min.js +++ b/build/kissy/hilo/renderer/WebGLRenderer.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ -KISSY.add("hilo/renderer/WebGLRenderer",function(t,e,r,i,a){var n=Math.PI/180,s=e.create({Extends:i,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var t=document.createElement("canvas");t.getContext&&(t.getContext("webgl")||t.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(t){s.superclass.constructor.call(this,t);var e=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=s.MAX_BATCH_NUM,this.positionStride=4*s.ATTRIBUTE_NUM;var r=this.maxBatchNum*s.ATTRIBUTE_NUM*4,i=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*r),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(i);for(var a=0,n=0;a0)&&(t===this.stage&&this.clear(),!0)},draw:function(t){var e=t.width,r=t.height,i=(t.background,t.drawable),a=i&&i.image;if(a){var n=i.rect,s=n[2],o=n[3];e||r||(e=t.width=s,r=t.height=o),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var h=this._createVertexs(a,n[0],n[1],s,o,0,0,e,r),_=this.batchIndex*this.positionStride,c=this.float32Array,d=this.uint32Array,l=(t.tint>>16)+(65280&t.tint)+((255&t.tint)<<16)+(255*t.__webglRenderAlpha<<24);c[_+0]=h[0],c[_+1]=h[1],c[_+2]=h[2],c[_+3]=h[3],d[_+4]=l,c[_+5]=h[4],c[_+6]=h[5],c[_+7]=h[6],c[_+8]=h[7],d[_+9]=l,c[_+10]=h[8],c[_+11]=h[9],c[_+12]=h[10],c[_+13]=h[11],d[_+14]=l,c[_+15]=h[12],c[_+16]=h[13],c[_+17]=h[14],c[_+18]=h[15],d[_+19]=l;for(var u=t.__webglWorldMatrix,f=0;f<4;f++){var g=c[_+5*f],T=c[_+5*f+1];c[_+5*f]=u.a*g+u.c*T+u.tx,c[_+5*f+1]=u.b*g+u.d*T+u.ty}t.__textureImage=a,this.sprites[this.batchIndex++]=t}},endDraw:function(t){t===this.stage&&this._renderBatches()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void r.setElementStyleByView(t);var i=t.scaleX,n=t.scaleY;if(t===this.stage){var s=this.canvas.style,o=t._scaleX,h=t._scaleY,_=!1;(!o&&1!=i||o&&o!=i)&&(t._scaleX=i,s.width=i*t.width+"px",_=!0),(!h&&1!=n||h&&h!=n)&&(t._scaleY=n,s.height=n*t.height+"px",_=!0),_&&t.updateViewport(),t.__webglWorldMatrix=t.__webglWorldMatrix||new a(1,0,0,1,0,0)}else t.parent&&(t.__webglWorldMatrix=t.__webglWorldMatrix||new a(1,0,0,1,0,0),this._setConcatenatedMatrix(t,t.parent));t.alpha>0&&(t.parent&&t.parent.__webglRenderAlpha?t.__webglRenderAlpha=t.alpha*t.parent.__webglRenderAlpha:t.__webglRenderAlpha=t.alpha)},remove:function(t){var e=t.drawable,r=e&&e.domElement;if(r){var i=r.parentNode;i&&i.removeChild(r)}},clear:function(t,e,r,i){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(t,e){if(this.width!==t||this.height!==e){var r=this.canvas,i=this.stage,a=r.style;this.width=r.width=t,this.height=r.height=e,a.width=i.width*i.scaleX+"px",a.height=i.height*i.scaleY+"px",this.gl.viewport(0,0,t,e),this.canvasHalfWidth=.5*t,this.canvasHalfHeight=.5*e,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var t=this.gl;t.bufferSubData(t.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var e=0,r=0,i=null,a=0;a0&&(r.bindTexture(r.TEXTURE_2D,this._getTexture(this.sprites[t])),r.drawElements(r.TRIANGLES,6*i,r.UNSIGNED_SHORT,6*t*2))},_uploadProjectionTransform:function(t){this._projectionTransformElements&&!t||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var t=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",e="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new o(this,{v:t,f:e},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(t,e,r,i,a,n,s,o,h){var _=this.__tempVertexs||[],c=t.width,d=t.height;i/=c,a/=d,e/=c,r/=d,o=o,h=h,n=n,s=s,i+e>1&&(i=1-e),a+r>1&&(a=1-r);var l=0;return _[l++]=n,_[l++]=s,_[l++]=e,_[l++]=r,_[l++]=n+o,_[l++]=s,_[l++]=e+i,_[l++]=r,_[l++]=n,_[l++]=s+h,_[l++]=e,_[l++]=r+a,_[l++]=n+o,_[l++]=s+h,_[l++]=e+i,_[l++]=r+a,_},_setConcatenatedMatrix:function(t,e){var r=t.__webglWorldMatrix,i=1,a=0,s=t.rotation%360,o=t.pivotX,h=t.pivotY,_=t.scaleX,c=t.scaleY;if(s){var d=s*n;i=Math.cos(d),a=Math.sin(d)}var l=t.getAlignPosition();r.a=i*_,r.b=a*_,r.c=-a*c,r.d=i*c,r.tx=l.x-r.a*o-r.c*h,r.ty=l.y-r.b*o-r.d*h,r.concat(e.__webglWorldMatrix)},_getTexture:function(t){var e=t.__textureImage,r=this._cacheTexture[e.src];return r||(r=this.activeShader.uploadTexture(e)),r}}),o=function(t,e,r){this.renderer=t,this.gl=t.gl,this.program=this._createProgram(this.gl,e.v,e.f),r=r||{},this.attributes=r.attributes||[],this.uniforms=r.uniforms||[]};return o.prototype={active:function(){var t=this,e=t.renderer,r=t.gl,i=t.program;i&&r&&(e.activeShader=t,r.useProgram(i),t.attributes.forEach(function(t){e[t]=r.getAttribLocation(i,t),r.enableVertexAttribArray(e[t])}),t.uniforms.forEach(function(t){e[t]=r.getUniformLocation(i,t)}),t.width===e.width&&t.height===e.height||(t.width=e.width,t.height=e.height,e._uploadProjectionTransform()))},uploadTexture:function(t){var e=this.gl,r=this.renderer,i=e.createTexture(),a=r.u_Sampler;return e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,i),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.uniform1i(a,0),e.bindTexture(e.TEXTURE_2D,null),this.renderer._cacheTexture[t.src]=i,i},_createProgram:function(t,e,r){var i=this._createShader(t,t.VERTEX_SHADER,e),a=this._createShader(t,t.FRAGMENT_SHADER,r);if(!i||!a)return null;var n=t.createProgram();if(n){t.attachShader(n,i),t.attachShader(n,a),t.linkProgram(n),t.deleteShader(a),t.deleteShader(i);var s=t.getProgramParameter(n,t.LINK_STATUS);if(!s){var o=t.getProgramInfoLog(n);return console.log("Failed to link program: "+o),t.deleteProgram(n),null}}return n},_createShader:function(t,e,r){var i=t.createShader(e);if(i){t.shaderSource(i,r),t.compileShader(i);var a=t.getShaderParameter(i,t.COMPILE_STATUS);if(!a){var n=t.getShaderInfoLog(i);return console.log("Failed to compile shader: "+n),t.deleteShader(i),null}}return i}},s},{requires:["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer","hilo/geom/Matrix"]}); \ No newline at end of file +KISSY.add("hilo/renderer/WebGLRenderer",function(t,e,r,i,a){var n=Math.PI/180,s=e.create({Extends:i,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var t=document.createElement("canvas");t.getContext&&(t.getContext("webgl")||t.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(t){s.superclass.constructor.call(this,t);var e=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=s.MAX_BATCH_NUM,this.positionStride=4*s.ATTRIBUTE_NUM;var r=this.maxBatchNum*s.ATTRIBUTE_NUM*4,i=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*r),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(i);for(var a=0,n=0;a0)&&(t===this.stage&&this.clear(),!0)},draw:function(t){var e=t.width,r=t.height,i=(t.background,t.drawable),a=i&&i.image;if(a){var n=i.rect,s=n[2],o=n[3];e||r||(e=t.width=s,r=t.height=o),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var h=this._createVertexs(a,n[0],n[1],s,o,0,0,e,r),c=this.batchIndex*this.positionStride,_=this.float32Array,l=this.uint32Array,d=(t.tint>>16)+(65280&t.tint)+((255&t.tint)<<16)+(255*t.__webglRenderAlpha<<24);_[c+0]=h[0],_[c+1]=h[1],_[c+2]=h[2],_[c+3]=h[3],l[c+4]=d,_[c+5]=h[4],_[c+6]=h[5],_[c+7]=h[6],_[c+8]=h[7],l[c+9]=d,_[c+10]=h[8],_[c+11]=h[9],_[c+12]=h[10],_[c+13]=h[11],l[c+14]=d,_[c+15]=h[12],_[c+16]=h[13],_[c+17]=h[14],_[c+18]=h[15],l[c+19]=d;for(var u=t.__webglWorldMatrix,f=0;f<4;f++){var g=_[c+5*f],T=_[c+5*f+1];_[c+5*f]=u.a*g+u.c*T+u.tx,_[c+5*f+1]=u.b*g+u.d*T+u.ty}t.__textureImage=a,this.sprites[this.batchIndex++]=t}},endDraw:function(t){t===this.stage&&this._renderBatches()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void r.setElementStyleByView(t);var i=t.scaleX,n=t.scaleY;if(t===this.stage){var s=this.canvas.style,o=t._scaleX,h=t._scaleY,c=!1;(!o&&1!=i||o&&o!=i)&&(t._scaleX=i,s.width=i*t.width+"px",c=!0),(!h&&1!=n||h&&h!=n)&&(t._scaleY=n,s.height=n*t.height+"px",c=!0),c&&t.updateViewport(),t.__webglWorldMatrix=t.__webglWorldMatrix||new a(1,0,0,1,0,0)}else t.parent&&(t.__webglWorldMatrix=t.__webglWorldMatrix||new a(1,0,0,1,0,0),this._setConcatenatedMatrix(t,t.parent));t.alpha>0&&(t.parent&&t.parent.__webglRenderAlpha?t.__webglRenderAlpha=t.alpha*t.parent.__webglRenderAlpha:t.__webglRenderAlpha=t.alpha)},remove:function(t){var e=t.drawable,r=e&&e.domElement;if(r){var i=r.parentNode;i&&i.removeChild(r)}},clear:function(t,e,r,i){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(t,e){if(this.width!==t||this.height!==e){var r=this.canvas,i=this.stage,a=r.style;this.width=r.width=t,this.height=r.height=e,a.width=i.width*i.scaleX+"px",a.height=i.height*i.scaleY+"px",this.gl.viewport(0,0,t,e),this.canvasHalfWidth=.5*t,this.canvasHalfHeight=.5*e,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var t=this.gl;t.bufferSubData(t.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var e=0,r=0,i=null,a=0;a0&&(r.bindTexture(r.TEXTURE_2D,this._getTexture(this.sprites[t])),r.drawElements(r.TRIANGLES,6*i,r.UNSIGNED_SHORT,6*t*2))},_uploadProjectionTransform:function(t){this._projectionTransformElements&&!t||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var t=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",e="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new o(this,{v:t,f:e},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(t,e,r,i,a,n,s,o,h){var c=this.__tempVertexs||[],_=t.width,l=t.height;i/=_,a/=l,e/=_,r/=l,o=o,h=h,n=n,s=s,i+e>1&&(i=1-e),a+r>1&&(a=1-r);var d=0;return c[d++]=n,c[d++]=s,c[d++]=e,c[d++]=r,c[d++]=n+o,c[d++]=s,c[d++]=e+i,c[d++]=r,c[d++]=n,c[d++]=s+h,c[d++]=e,c[d++]=r+a,c[d++]=n+o,c[d++]=s+h,c[d++]=e+i,c[d++]=r+a,c},_setConcatenatedMatrix:function(t,e){var r=t.__webglWorldMatrix,i=1,a=0,s=t.rotation%360,o=t.pivotX,h=t.pivotY,c=t.scaleX,_=t.scaleY,l=t.transform;if(l)r.copy(l);else{if(s){var d=s*n;i=Math.cos(d),a=Math.sin(d)}var u=t.getAlignPosition();r.a=i*c,r.b=a*c,r.c=-a*_,r.d=i*_,r.tx=u.x-r.a*o-r.c*h,r.ty=u.y-r.b*o-r.d*h}r.concat(e.__webglWorldMatrix)},_getTexture:function(t){var e=t.__textureImage,r=this._cacheTexture[e.src];return r||(r=this.activeShader.uploadTexture(e)),r}}),o=function(t,e,r){this.renderer=t,this.gl=t.gl,this.program=this._createProgram(this.gl,e.v,e.f),r=r||{},this.attributes=r.attributes||[],this.uniforms=r.uniforms||[]};return o.prototype={active:function(){var t=this,e=t.renderer,r=t.gl,i=t.program;i&&r&&(e.activeShader=t,r.useProgram(i),t.attributes.forEach(function(t){e[t]=r.getAttribLocation(i,t),r.enableVertexAttribArray(e[t])}),t.uniforms.forEach(function(t){e[t]=r.getUniformLocation(i,t)}),t.width===e.width&&t.height===e.height||(t.width=e.width,t.height=e.height,e._uploadProjectionTransform()))},uploadTexture:function(t){var e=this.gl,r=this.renderer,i=e.createTexture(),a=r.u_Sampler;return e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,i),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.uniform1i(a,0),e.bindTexture(e.TEXTURE_2D,null),this.renderer._cacheTexture[t.src]=i,i},_createProgram:function(t,e,r){var i=this._createShader(t,t.VERTEX_SHADER,e),a=this._createShader(t,t.FRAGMENT_SHADER,r);if(!i||!a)return null;var n=t.createProgram();if(n){t.attachShader(n,i),t.attachShader(n,a),t.linkProgram(n),t.deleteShader(a),t.deleteShader(i);var s=t.getProgramParameter(n,t.LINK_STATUS);if(!s){var o=t.getProgramInfoLog(n);return console.log("Failed to link program: "+o),t.deleteProgram(n),null}}return n},_createShader:function(t,e,r){var i=t.createShader(e);if(i){t.shaderSource(i,r),t.compileShader(i);var a=t.getShaderParameter(i,t.COMPILE_STATUS);if(!a){var n=t.getShaderInfoLog(i);return console.log("Failed to compile shader: "+n),t.deleteShader(i),null}}return i}},s},{requires:["hilo/core/Class","hilo/core/Hilo","hilo/renderer/Renderer","hilo/geom/Matrix"]}); \ No newline at end of file diff --git a/build/kissy/hilo/tween/Ease.js b/build/kissy/hilo/tween/Ease.js index d8bde452..7c7874c8 100644 --- a/build/kissy/hilo/tween/Ease.js +++ b/build/kissy/hilo/tween/Ease.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/tween/Ease.min.js b/build/kissy/hilo/tween/Ease.min.js index 618ff34d..f2185205 100644 --- a/build/kissy/hilo/tween/Ease.min.js +++ b/build/kissy/hilo/tween/Ease.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/tween/Tween.js b/build/kissy/hilo/tween/Tween.js index 4df37f97..3730e20b 100644 --- a/build/kissy/hilo/tween/Tween.js +++ b/build/kissy/hilo/tween/Tween.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/tween/Tween.min.js b/build/kissy/hilo/tween/Tween.min.js index 1d47ff9e..5a8f1dfc 100644 --- a/build/kissy/hilo/tween/Tween.min.js +++ b/build/kissy/hilo/tween/Tween.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/util/TextureAtlas.js b/build/kissy/hilo/util/TextureAtlas.js index 9fb09302..43bdb117 100644 --- a/build/kissy/hilo/util/TextureAtlas.js +++ b/build/kissy/hilo/util/TextureAtlas.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/util/TextureAtlas.min.js b/build/kissy/hilo/util/TextureAtlas.min.js index ee63fc06..0a3da5d6 100644 --- a/build/kissy/hilo/util/TextureAtlas.min.js +++ b/build/kissy/hilo/util/TextureAtlas.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/util/Ticker.js b/build/kissy/hilo/util/Ticker.js index 671419ad..7289dc2d 100644 --- a/build/kissy/hilo/util/Ticker.js +++ b/build/kissy/hilo/util/Ticker.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/util/Ticker.min.js b/build/kissy/hilo/util/Ticker.min.js index d6f98645..646eb332 100644 --- a/build/kissy/hilo/util/Ticker.min.js +++ b/build/kissy/hilo/util/Ticker.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/util/browser.js b/build/kissy/hilo/util/browser.js index 08daa654..33f7afdf 100644 --- a/build/kissy/hilo/util/browser.js +++ b/build/kissy/hilo/util/browser.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/util/browser.min.js b/build/kissy/hilo/util/browser.min.js index a71d5d7c..684c695d 100644 --- a/build/kissy/hilo/util/browser.min.js +++ b/build/kissy/hilo/util/browser.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/util/drag.js b/build/kissy/hilo/util/drag.js index 6f8b2cc4..d8ef224d 100644 --- a/build/kissy/hilo/util/drag.js +++ b/build/kissy/hilo/util/drag.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/util/drag.min.js b/build/kissy/hilo/util/drag.min.js index dc6688c9..2c5e1eaa 100644 --- a/build/kissy/hilo/util/drag.min.js +++ b/build/kissy/hilo/util/drag.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/util/polyfill.js b/build/kissy/hilo/util/polyfill.js index 22083abc..8a1f2021 100644 --- a/build/kissy/hilo/util/polyfill.js +++ b/build/kissy/hilo/util/polyfill.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/util/polyfill.min.js b/build/kissy/hilo/util/polyfill.min.js index 019a0d31..80c7a727 100644 --- a/build/kissy/hilo/util/polyfill.min.js +++ b/build/kissy/hilo/util/polyfill.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/util/util.js b/build/kissy/hilo/util/util.js index d2f95f14..c4057fb9 100644 --- a/build/kissy/hilo/util/util.js +++ b/build/kissy/hilo/util/util.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/util/util.min.js b/build/kissy/hilo/util/util.min.js index 6b471e8e..5b650cd3 100644 --- a/build/kissy/hilo/util/util.min.js +++ b/build/kissy/hilo/util/util.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/Bitmap.js b/build/kissy/hilo/view/Bitmap.js index f33b6dbc..5877ba92 100644 --- a/build/kissy/hilo/view/Bitmap.js +++ b/build/kissy/hilo/view/Bitmap.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/Bitmap.min.js b/build/kissy/hilo/view/Bitmap.min.js index 1088da9e..ea51bcca 100644 --- a/build/kissy/hilo/view/Bitmap.min.js +++ b/build/kissy/hilo/view/Bitmap.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/BitmapText.js b/build/kissy/hilo/view/BitmapText.js index 2288e0ba..411663c4 100644 --- a/build/kissy/hilo/view/BitmapText.js +++ b/build/kissy/hilo/view/BitmapText.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/BitmapText.min.js b/build/kissy/hilo/view/BitmapText.min.js index 37aadbfe..1aaba967 100644 --- a/build/kissy/hilo/view/BitmapText.min.js +++ b/build/kissy/hilo/view/BitmapText.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/Button.js b/build/kissy/hilo/view/Button.js index 02c8b04c..5cb918ca 100644 --- a/build/kissy/hilo/view/Button.js +++ b/build/kissy/hilo/view/Button.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/Button.min.js b/build/kissy/hilo/view/Button.min.js index ba23e418..c6c837b0 100644 --- a/build/kissy/hilo/view/Button.min.js +++ b/build/kissy/hilo/view/Button.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/CacheMixin.js b/build/kissy/hilo/view/CacheMixin.js index 582cc5c6..6d9a8b6d 100644 --- a/build/kissy/hilo/view/CacheMixin.js +++ b/build/kissy/hilo/view/CacheMixin.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/CacheMixin.min.js b/build/kissy/hilo/view/CacheMixin.min.js index 963c2686..ece975ab 100644 --- a/build/kissy/hilo/view/CacheMixin.min.js +++ b/build/kissy/hilo/view/CacheMixin.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/Container.js b/build/kissy/hilo/view/Container.js index 85599bdb..d5cb49d3 100644 --- a/build/kissy/hilo/view/Container.js +++ b/build/kissy/hilo/view/Container.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/Container.min.js b/build/kissy/hilo/view/Container.min.js index c16bfd65..feaab3fd 100644 --- a/build/kissy/hilo/view/Container.min.js +++ b/build/kissy/hilo/view/Container.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/DOMElement.js b/build/kissy/hilo/view/DOMElement.js index 44d9a717..e3df86dc 100644 --- a/build/kissy/hilo/view/DOMElement.js +++ b/build/kissy/hilo/view/DOMElement.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -84,7 +84,8 @@ var DOMElement = Class.create(/** @lends DOMElement.prototype */{ style:{ 'position':'absolute', 'transform':'scale3d(' + stage.scaleX + ',' + stage.scaleY + ', 1)', - 'transformOrigin':'0 0' + 'transformOrigin':'0 0', + 'zIndex':'1' } }); canvas.parentNode.insertBefore(renderer._domElementContainer, canvas.nextSibling); diff --git a/build/kissy/hilo/view/DOMElement.min.js b/build/kissy/hilo/view/DOMElement.min.js index d3788b8a..5d4da6a3 100644 --- a/build/kissy/hilo/view/DOMElement.min.js +++ b/build/kissy/hilo/view/DOMElement.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ -KISSY.add("hilo/view/DOMElement",function(e,t,i,n,r){var s=i.create({Extends:n,constructor:function(e){e=e||{},this.id=this.id||e.id||t.getUid("DOMElement"),s.superclass.constructor.call(this,e),this.drawable=new r;var i=this.drawable.domElement=e.element||t.createElement("div");i.id=this.id,this.pointerEnabled&&!i.style.pointerEvents&&(i.style.pointerEvents="visible")},_render:function(e,t){this.onUpdate&&this.onUpdate(t)===!1||(e.transform(this),this.visible&&this.alpha>0&&this.render(e,t))},render:function(e,i){if("dom"!==e.renderType){var n=e.canvas,r=this.parent,s=e._domElementContainer;e._domElementContainer||(s=e._domElementContainer=t.createElement("div",{style:{position:"absolute",transform:"scale3d("+r.scaleX+","+r.scaleY+", 1)",transformOrigin:"0 0"}}),n.parentNode.insertBefore(e._domElementContainer,n.nextSibling));var o,a=this.drawable.domElement,l=this.depth,d=s.childNodes[0];if(a.parentNode)return;for(;d&&3!=d.nodeType&&(o=parseInt(d.style.zIndex)||0,!(o<=0||o>l));)d=d.nextSibling;s.insertBefore(this.drawable.domElement,d)}else e.draw(this)}});return s},{requires:["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/Drawable"]}); \ No newline at end of file +KISSY.add("hilo/view/DOMElement",function(e,t,i,n,r){var s=i.create({Extends:n,constructor:function(e){e=e||{},this.id=this.id||e.id||t.getUid("DOMElement"),s.superclass.constructor.call(this,e),this.drawable=new r;var i=this.drawable.domElement=e.element||t.createElement("div");i.id=this.id,this.pointerEnabled&&!i.style.pointerEvents&&(i.style.pointerEvents="visible")},_render:function(e,t){this.onUpdate&&this.onUpdate(t)===!1||(e.transform(this),this.visible&&this.alpha>0&&this.render(e,t))},render:function(e,i){if("dom"!==e.renderType){var n=e.canvas,r=this.parent,s=e._domElementContainer;e._domElementContainer||(s=e._domElementContainer=t.createElement("div",{style:{position:"absolute",transform:"scale3d("+r.scaleX+","+r.scaleY+", 1)",transformOrigin:"0 0",zIndex:"1"}}),n.parentNode.insertBefore(e._domElementContainer,n.nextSibling));var o,a=this.drawable.domElement,l=this.depth,d=s.childNodes[0];if(a.parentNode)return;for(;d&&3!=d.nodeType&&(o=parseInt(d.style.zIndex)||0,!(o<=0||o>l));)d=d.nextSibling;s.insertBefore(this.drawable.domElement,d)}else e.draw(this)}});return s},{requires:["hilo/core/Hilo","hilo/core/Class","hilo/view/View","hilo/view/Drawable"]}); \ No newline at end of file diff --git a/build/kissy/hilo/view/Drawable.js b/build/kissy/hilo/view/Drawable.js index 32290ffe..c8febeea 100644 --- a/build/kissy/hilo/view/Drawable.js +++ b/build/kissy/hilo/view/Drawable.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/Drawable.min.js b/build/kissy/hilo/view/Drawable.min.js index 287560b1..a3a2fd96 100644 --- a/build/kissy/hilo/view/Drawable.min.js +++ b/build/kissy/hilo/view/Drawable.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/Graphics.js b/build/kissy/hilo/view/Graphics.js index 166abc01..fc368102 100644 --- a/build/kissy/hilo/view/Graphics.js +++ b/build/kissy/hilo/view/Graphics.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/Graphics.min.js b/build/kissy/hilo/view/Graphics.min.js index b4d5d266..627b3b14 100644 --- a/build/kissy/hilo/view/Graphics.min.js +++ b/build/kissy/hilo/view/Graphics.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/Sprite.js b/build/kissy/hilo/view/Sprite.js index 4940dfc7..88d0c7cf 100644 --- a/build/kissy/hilo/view/Sprite.js +++ b/build/kissy/hilo/view/Sprite.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/Sprite.min.js b/build/kissy/hilo/view/Sprite.min.js index 09d91942..b8052915 100644 --- a/build/kissy/hilo/view/Sprite.min.js +++ b/build/kissy/hilo/view/Sprite.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/Stage.js b/build/kissy/hilo/view/Stage.js index 13ea04ad..062e1495 100644 --- a/build/kissy/hilo/view/Stage.js +++ b/build/kissy/hilo/view/Stage.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/Stage.min.js b/build/kissy/hilo/view/Stage.min.js index dd5a09f0..5a0577c9 100644 --- a/build/kissy/hilo/view/Stage.min.js +++ b/build/kissy/hilo/view/Stage.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/Text.js b/build/kissy/hilo/view/Text.js index e96a0a8d..4732b39c 100644 --- a/build/kissy/hilo/view/Text.js +++ b/build/kissy/hilo/view/Text.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/Text.min.js b/build/kissy/hilo/view/Text.min.js index d81d872c..547e9eb5 100644 --- a/build/kissy/hilo/view/Text.min.js +++ b/build/kissy/hilo/view/Text.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/kissy/hilo/view/View.js b/build/kissy/hilo/view/View.js index 9d5ac49d..e18f6565 100644 --- a/build/kissy/hilo/view/View.js +++ b/build/kissy/hilo/view/View.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -33,6 +33,7 @@ KISSY.add('hilo/view/View', function(S, Hilo, Class, EventMixin, Matrix, util){ * @property {Number} pivotY Position of the center point on the y axis of the view, default value is 0. * @property {Number} scaleX The x axis scale factor of the view, default value is 1. * @property {Number} scaleY The y axis scale factor of the view, default value is 1. + * @property {Matrix} transform The transform of the view.If set the transform, x, y, scaleX, scaleY, rotation, pivotX, pivotY will be ignored.default is null. * @property {Boolean} pointerEnabled Is the view can receive DOM events, default value is true. * @property {Object} background The background style to fill the view, can be css color, gradient or pattern of canvas * @property {Graphics} mask Sets a mask for the view. A mask is an object that limits the visibility of an object to the shape of the mask applied to it. A regular mask must be a Hilo.Graphics object. This allows for much faster masking in canvas as it utilises shape clipping. To remove a mask, set this property to null. @@ -74,6 +75,7 @@ return Class.create(/** @lends View.prototype */{ boundsArea: null, parent: null, depth: -1, + transform: null, blendMode:'source-over', /** @@ -186,19 +188,26 @@ return Class.create(/** @lends View.prototype */{ var cos = 1, sin = 0, rotation = o.rotation % 360, pivotX = o.pivotX, pivotY = o.pivotY, - scaleX = o.scaleX, scaleY = o.scaleY; + scaleX = o.scaleX, scaleY = o.scaleY, + transform = o.transform; - if(rotation){ - var r = rotation * Math.PI / 180; - cos = Math.cos(r); - sin = Math.sin(r); + if(transform) { + mtx.concat(transform); } + else{ + if(rotation){ + var r = rotation * Math.PI / 180; + cos = Math.cos(r); + sin = Math.sin(r); + } - if(pivotX != 0) mtx.tx -= pivotX; - if(pivotY != 0) mtx.ty -= pivotY; + if(pivotX != 0) mtx.tx -= pivotX; + if(pivotY != 0) mtx.ty -= pivotY; - var pos = o.getAlignPosition(); - mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + var pos = o.getAlignPosition(); + mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + } + } return mtx; }, diff --git a/build/kissy/hilo/view/View.min.js b/build/kissy/hilo/view/View.min.js index 46442d96..a46a52ed 100644 --- a/build/kissy/hilo/view/View.min.js +++ b/build/kissy/hilo/view/View.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for kissy + * Hilo 1.2.0 for kissy * Copyright 2016 alibaba.com * Licensed under the MIT License */ -KISSY.add("hilo/view/View",function(t,e,i,r,n,o){var a=function(){function t(t,e,i){for(var r,n,o,a,s=0,h=!1,u=0,y=i.length;uc.x?(r=c.x,n=l.x):(r=l.x,n=c.x),t>=r&&t<=n))h=!0;else if(l.y>c.y?(o=c.y,a=l.y):(o=l.y,a=c.y),!(ea)){var d=(e-l.y)*(c.x-l.x)/(c.y-l.y)+l.x;if(d>t?s++:d==t&&(h=!0),l.x>t&&l.y==e){var x=i[(y+u-1)%y];(x.ye||x.y>e&&c.ys?s=y:yu?u=y:y=0)return!1;l>i.overlap&&(i.overlap=l,i.normal.x=x.x,i.normal.y=x.y)}return i}return i.create({Mixes:r,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("View"),o.copy(this,t,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,r,n,o,a,s=this.width,h=this.height,u=this.getConcatenatedMatrix(),y=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:h},{x:0,y:h}],l=[],c=0,d=y.length;ce?r=e:ni?o=i:a>1,r=0;break;case"TR":i=a-n,r=0;break;case"L":i=0,r=s-o>>1;break;case"C":i=a-n>>1,r=s-o>>1;break;case"R":i=a-n,r=s-o>>1;break;case"BL":i=0,r=s-o;break;case"B":i=a-n>>1,r=s-o;break;case"BR":i=a-n,r=s-o}}return{x:i,y:r}},hitTestPoint:function(e,i,r){var n=this.getBounds(),o=e>=n.x&&e<=n.x+n.width&&i>=n.y&&i<=n.y+n.height;return o&&r&&(o=t(e,i,n)),o},hitTestObject:function(t,e){var i=this.getBounds(),r=t.getBounds(),n=i.x<=r.x+r.width&&r.x<=i.x+i.width&&i.y<=r.y+r.height&&r.y<=i.y+i.height;return n&&e&&(n=a(i,r)),!!n},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=o.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return e.viewToString(this)}})}();return a},{requires:["hilo/core/Hilo","hilo/core/Class","hilo/event/EventMixin","hilo/geom/Matrix","hilo/util/util"]}); \ No newline at end of file +KISSY.add("hilo/view/View",function(t,e,i,r,n,o){var a=function(){function t(t,e,i){for(var r,n,o,a,s=0,h=!1,u=0,l=i.length;uc.x?(r=c.x,n=y.x):(r=y.x,n=c.x),t>=r&&t<=n))h=!0;else if(y.y>c.y?(o=c.y,a=y.y):(o=y.y,a=c.y),!(ea)){var d=(e-y.y)*(c.x-y.x)/(c.y-y.y)+y.x;if(d>t?s++:d==t&&(h=!0),y.x>t&&y.y==e){var x=i[(l+u-1)%l];(x.ye||x.y>e&&c.ys?s=l:lu?u=l:l=0)return!1;y>i.overlap&&(i.overlap=y,i.normal.x=x.x,i.normal.y=x.y)}return i}return i.create({Mixes:r,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("View"),o.copy(this,t,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,transform:null,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,r,n,o,a,s=this.width,h=this.height,u=this.getConcatenatedMatrix(),l=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:h},{x:0,y:h}],y=[],c=0,d=l.length;ce?r=e:ni?o=i:a>1,r=0;break;case"TR":i=a-n,r=0;break;case"L":i=0,r=s-o>>1;break;case"C":i=a-n>>1,r=s-o>>1;break;case"R":i=a-n,r=s-o>>1;break;case"BL":i=0,r=s-o;break;case"B":i=a-n>>1,r=s-o;break;case"BR":i=a-n,r=s-o}}return{x:i,y:r}},hitTestPoint:function(e,i,r){var n=this.getBounds(),o=e>=n.x&&e<=n.x+n.width&&i>=n.y&&i<=n.y+n.height;return o&&r&&(o=t(e,i,n)),o},hitTestObject:function(t,e){var i=this.getBounds(),r=t.getBounds(),n=i.x<=r.x+r.width&&r.x<=i.x+i.width&&i.y<=r.y+r.height&&r.y<=i.y+i.height;return n&&e&&(n=a(i,r)),!!n},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=o.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return e.viewToString(this)}})}();return a},{requires:["hilo/core/Hilo","hilo/core/Class","hilo/event/EventMixin","hilo/geom/Matrix","hilo/util/util"]}); \ No newline at end of file diff --git a/build/physics/physics.js b/build/physics/physics.js index 8b1ec7ab..27fee138 100644 --- a/build/physics/physics.js +++ b/build/physics/physics.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.13 for physics + * Hilo 1.2.0 for physics * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/physics/physics.min.js b/build/physics/physics.min.js index e97c11ee..05578baf 100644 --- a/build/physics/physics.min.js +++ b/build/physics/physics.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.13 for physics + * Hilo 1.2.0 for physics * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo-standalone.js b/build/standalone/hilo-standalone.js index d363654c..4f4b3d42 100644 --- a/build/standalone/hilo-standalone.js +++ b/build/standalone/hilo-standalone.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -190,7 +190,7 @@ var browser = (function(){ window.Hilo.browser = browser; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -225,7 +225,7 @@ var util = { window.Hilo.util = util; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -255,7 +255,7 @@ var Hilo = { * Hilo version * @type String */ - version: '1.1.11', + version: '1.2.0', /** * @language=en * Gets a globally unique id. Such as Stage1, Bitmap2 etc. @@ -459,12 +459,23 @@ var Hilo = { if (this.cacheStateIfChanged(obj, ['depth'], stateCache)) { style.zIndex = obj.depth + 1; } - if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { - style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + if (obj.transform){ + var transform = obj.transform; + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = '0 0'; + } + style[prefix + 'Transform'] = 'matrix3d(' + transform.a + ', '+ transform.b + ', 0, 0, '+ transform.c + ', '+ transform.d + ', 0, 0, 0, 0, 1, 0, '+ transform.tx + ', '+ transform.ty + ', 0, 1)'; } - if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { - style[prefix + 'Transform'] = this.getTransformCSS(obj); + else{ + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + } + + if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { + style[prefix + 'Transform'] = this.getTransformCSS(obj); + } } + if (this.cacheStateIfChanged(obj, ['background'], stateCache)) { style.backgroundColor = obj.background; } @@ -550,7 +561,7 @@ var Hilo = { for(var i in Hilo){window.Hilo[i] = Hilo[i];} })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -731,7 +742,7 @@ return {create:create, mix:mix}; window.Hilo.Class = Class; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -762,6 +773,50 @@ var Matrix = Class.create(/** @lends Matrix.prototype */{ this.ty = ty; }, + /** + * set + * @param {Number} a + * @param {Number} b + * @param {Number} c + * @param {Number} d + * @param {Number} tx + * @param {Number} ty + */ + set: function(a, b, c, d, tx, ty){ + this.a = a; + this.b = b; + this.c = c; + this.d = d; + this.tx = tx; + this.ty = ty; + + return this; + }, + + /** + * copy + * @param {Matrix} mat + * @return {Matrix} this + */ + copy: function(mat){ + this.a = mat.a; + this.b = mat.b; + this.c = mat.c; + this.d = mat.d; + this.tx = mat.tx; + this.ty = mat.ty; + + return this; + }, + + /** + * clone + * @return {Matrix} + */ + clone: function(){ + return new Matrix().copy(this); + }, + /** * @language=en * Link a Matrix to current Matrix, in order to make geometry effects on these two composed more effective. @@ -910,7 +965,7 @@ var Matrix = Class.create(/** @lends Matrix.prototype */{ window.Hilo.Matrix = Matrix; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1062,7 +1117,7 @@ if(RawEvent){ window.Hilo.EventMixin = EventMixin; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1143,7 +1198,7 @@ var Drawable = Class.create(/** @lends Drawable.prototype */{ window.Hilo.Drawable = Drawable; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1237,7 +1292,7 @@ var Renderer = Class.create(/** @lends Renderer.prototype */{ window.Hilo.Renderer = Renderer; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1258,26 +1313,26 @@ var Hilo = window.Hilo;var Renderer = window.Hilo.Renderer; * @requires hilo/renderer/Renderer * @property {CanvasRenderingContext2D} context The context of the canvas element, readonly. */ -var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ +var CanvasRenderer = Class.create( /** @lends CanvasRenderer.prototype */ { Extends: Renderer, - constructor: function(properties){ + constructor: function(properties) { CanvasRenderer.superclass.constructor.call(this, properties); this.context = this.canvas.getContext("2d"); }, - renderType:'canvas', + renderType: 'canvas', context: null, /** * @private * @see Renderer#startDraw */ - startDraw: function(target){ - if(target.visible && target.alpha > 0){ - if(target === this.stage){ + startDraw: function(target) { + if (target.visible && target.alpha > 0) { + if (target === this.stage) { this.context.clearRect(0, 0, target.width, target.height); } - if(target.blendMode !== this.blendMode){ + if (target.blendMode !== this.blendMode) { this.context.globalCompositeOperation = this.blendMode = target.blendMode; } this.context.save(); @@ -1290,31 +1345,38 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#draw */ - draw: function(target){ - var ctx = this.context, w = target.width, h = target.height; + draw: function(target) { + var ctx = this.context, + w = target.width, + h = target.height; //draw background var bg = target.background; - if(bg){ + if (bg) { ctx.fillStyle = bg; ctx.fillRect(0, 0, w, h); } //draw image - var drawable = target.drawable, image = drawable && drawable.image; - if(image){ - var rect = drawable.rect, sw = rect[2], sh = rect[3], offsetX = rect[4], offsetY = rect[5]; + var drawable = target.drawable, + image = drawable && drawable.image; + if (image) { + var rect = drawable.rect, + sw = rect[2], + sh = rect[3], + offsetX = rect[4], + offsetY = rect[5]; //ie9+浏览器宽高为0时会报错 fixed ie9 bug. - if(!sw || !sh){ + if (!sw || !sh) { return; } - if(!w && !h){ + if (!w && !h) { //fix width/height TODO: how to get rid of this? w = target.width = sw; h = target.height = sh; } //the pivot is the center of frame if has offset, otherwise is (0, 0) - if(offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); + if (offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); ctx.drawImage(image, rect[0], rect[1], sw, sh, 0, 0, w, h); } }, @@ -1323,7 +1385,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#endDraw */ - endDraw: function(target){ + endDraw: function(target) { this.context.restore(); }, @@ -1331,9 +1393,9 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#transform */ - transform: function(target){ + transform: function(target) { var drawable = target.drawable; - if(drawable && drawable.domElement){ + if (drawable && drawable.domElement) { Hilo.setElementStyleByView(target); return; } @@ -1342,66 +1404,72 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ scaleX = target.scaleX, scaleY = target.scaleY; - if(target === this.stage){ + if (target === this.stage) { var style = this.canvas.style, oldScaleX = target._scaleX, oldScaleY = target._scaleY, isStyleChange = false; - if((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)){ + if ((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)) { target._scaleX = scaleX; style.width = scaleX * target.width + "px"; isStyleChange = true; } - if((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)){ + if ((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)) { target._scaleY = scaleY; style.height = scaleY * target.height + "px"; isStyleChange = true; } - if(isStyleChange){ + if (isStyleChange) { target.updateViewport(); } - }else{ + } else { var x = target.x, y = target.y, pivotX = target.pivotX, pivotY = target.pivotY, rotation = target.rotation % 360, + transform = target.transform, mask = target.mask; - if(mask){ + if (mask) { mask._render(this); ctx.clip(); } //alignment var align = target.align; - if(align){ + if (align) { var pos = target.getAlignPosition(); x = pos.x; y = pos.y; } + + if (transform) { + ctx.transform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); + } else { + if (x != 0 || y != 0) ctx.translate(x, y); + if (rotation != 0) ctx.rotate(rotation * Math.PI / 180); + if (scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); + if (pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); + } - if(x != 0 || y != 0) ctx.translate(x, y); - if(rotation != 0) ctx.rotate(rotation * Math.PI / 180); - if(scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); - if(pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); } - if(target.alpha > 0) ctx.globalAlpha *= target.alpha; + if (target.alpha > 0) ctx.globalAlpha *= target.alpha; }, /** * @private * @see Renderer#remove */ - remove: function(target){ + remove: function(target) { var drawable = target.drawable; var elem = drawable && drawable.domElement; - if(elem){ + if (elem) { var parentElem = elem.parentNode; - if(parentElem){ + if (parentElem) { parentElem.removeChild(elem); } } @@ -1411,7 +1479,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#clear */ - clear: function(x, y, width, height){ + clear: function(x, y, width, height) { this.context.clearRect(x, y, width, height); }, @@ -1419,7 +1487,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#resize */ - resize: function(width, height){ + resize: function(width, height) { var canvas = this.canvas; var stage = this.stage; var style = canvas.style; @@ -1435,7 +1503,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ window.Hilo.CanvasRenderer = CanvasRenderer; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -1618,7 +1686,7 @@ function createDOMDrawable(view, imageObj){ window.Hilo.DOMRenderer = DOMRenderer; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -2045,21 +2113,28 @@ var WebGLRenderer = Class.create(/** @lends WebGLRenderer.prototype */{ var cos = 1, sin = 0, rotation = view.rotation % 360, pivotX = view.pivotX, pivotY = view.pivotY, - scaleX = view.scaleX, scaleY = view.scaleY; + scaleX = view.scaleX, scaleY = view.scaleY, + transform = view.transform; - if(rotation){ - var r = rotation * DEG2RAD; - cos = Math.cos(r); - sin = Math.sin(r); + if (transform) { + mtx.copy(transform); } + else { + if(rotation){ + var r = rotation * DEG2RAD; + cos = Math.cos(r); + sin = Math.sin(r); + } + + var pos = view.getAlignPosition(); - var pos = view.getAlignPosition(); - mtx.a = cos*scaleX; - mtx.b = sin*scaleX; - mtx.c = -sin*scaleY; - mtx.d = cos*scaleY; - mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; - mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + mtx.a = cos*scaleX; + mtx.b = sin*scaleX; + mtx.c = -sin*scaleY; + mtx.d = cos*scaleY; + mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; + mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + } mtx.concat(ancestor.__webglWorldMatrix); }, @@ -2189,7 +2264,7 @@ Shader.prototype = { window.Hilo.WebGLRenderer = WebGLRenderer; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -2227,6 +2302,7 @@ var util = window.Hilo.util; * @property {Number} pivotY Position of the center point on the y axis of the view, default value is 0. * @property {Number} scaleX The x axis scale factor of the view, default value is 1. * @property {Number} scaleY The y axis scale factor of the view, default value is 1. + * @property {Matrix} transform The transform of the view.If set the transform, x, y, scaleX, scaleY, rotation, pivotX, pivotY will be ignored.default is null. * @property {Boolean} pointerEnabled Is the view can receive DOM events, default value is true. * @property {Object} background The background style to fill the view, can be css color, gradient or pattern of canvas * @property {Graphics} mask Sets a mask for the view. A mask is an object that limits the visibility of an object to the shape of the mask applied to it. A regular mask must be a Hilo.Graphics object. This allows for much faster masking in canvas as it utilises shape clipping. To remove a mask, set this property to null. @@ -2268,6 +2344,7 @@ return Class.create(/** @lends View.prototype */{ boundsArea: null, parent: null, depth: -1, + transform: null, blendMode:'source-over', /** @@ -2380,19 +2457,26 @@ return Class.create(/** @lends View.prototype */{ var cos = 1, sin = 0, rotation = o.rotation % 360, pivotX = o.pivotX, pivotY = o.pivotY, - scaleX = o.scaleX, scaleY = o.scaleY; + scaleX = o.scaleX, scaleY = o.scaleY, + transform = o.transform; - if(rotation){ - var r = rotation * Math.PI / 180; - cos = Math.cos(r); - sin = Math.sin(r); + if(transform) { + mtx.concat(transform); } + else{ + if(rotation){ + var r = rotation * Math.PI / 180; + cos = Math.cos(r); + sin = Math.sin(r); + } - if(pivotX != 0) mtx.tx -= pivotX; - if(pivotY != 0) mtx.ty -= pivotY; + if(pivotX != 0) mtx.tx -= pivotX; + if(pivotY != 0) mtx.ty -= pivotY; - var pos = o.getAlignPosition(); - mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + var pos = o.getAlignPosition(); + mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + } + } return mtx; }, @@ -2679,7 +2763,7 @@ function doSATCheck(poly1, poly2, result){ window.Hilo.View = View; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -2745,7 +2829,7 @@ var CacheMixin = /** @lends CacheMixin# */ { window.Hilo.CacheMixin = CacheMixin; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3119,7 +3203,7 @@ var Container = Class.create(/** @lends Container.prototype */{ window.Hilo.Container = Container; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3391,7 +3475,7 @@ var Stage = Class.create(/** @lends Stage.prototype */{ window.Hilo.Stage = Stage; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3470,7 +3554,7 @@ var Drawable = window.Hilo.Drawable; window.Hilo.Bitmap = Bitmap; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3742,7 +3826,7 @@ var Sprite = Class.create(/** @lends Sprite.prototype */{ window.Hilo.Sprite = Sprite; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -3830,7 +3914,8 @@ var DOMElement = Class.create(/** @lends DOMElement.prototype */{ style:{ 'position':'absolute', 'transform':'scale3d(' + stage.scaleX + ',' + stage.scaleY + ', 1)', - 'transformOrigin':'0 0' + 'transformOrigin':'0 0', + 'zIndex':'1' } }); canvas.parentNode.insertBefore(renderer._domElementContainer, canvas.nextSibling); @@ -3857,7 +3942,7 @@ var DOMElement = Class.create(/** @lends DOMElement.prototype */{ window.Hilo.DOMElement = DOMElement; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -4411,7 +4496,7 @@ return Class.create(/** @lends Graphics.prototype */{ window.Hilo.Graphics = Graphics; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -4665,7 +4750,7 @@ var Text = Class.create(/** @lends Text.prototype */{ window.Hilo.Text = Text; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -4850,7 +4935,7 @@ var BitmapText = Class.create(/** @lends BitmapText.prototype */{ window.Hilo.BitmapText = BitmapText; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5031,7 +5116,7 @@ var util = window.Hilo.util; window.Hilo.Button = Button; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5267,7 +5352,7 @@ function isNumber(value){ window.Hilo.TextureAtlas = TextureAtlas; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5496,7 +5581,7 @@ var Ticker = Class.create(/** @lends Ticker.prototype */{ window.Hilo.Ticker = Ticker; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5544,7 +5629,7 @@ if (!fnProto.bind) { window.Hilo.undefined = undefined; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -5681,7 +5766,7 @@ var drag = { window.Hilo.drag = drag; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6130,7 +6215,7 @@ return Class.create(/** @lends Tween.prototype */{ window.Hilo.Tween = Tween; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6400,7 +6485,7 @@ return { window.Hilo.Ease = Ease; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6447,7 +6532,7 @@ var ImageLoader = Class.create({ window.Hilo.ImageLoader = ImageLoader; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6513,7 +6598,7 @@ var ScriptLoader = Class.create({ window.Hilo.ScriptLoader = ScriptLoader; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6567,6 +6652,7 @@ var LoadQueue = Class.create(/** @lends LoadQueue.prototype */{ *
  • loader - specified resource loader. If you specify this,we abandon choosing loader inside
  • *
  • noCache - a tag that set on or off to prevent cache,implemented by adding timestamp inside
  • *
  • size - predicted resource size, help calculating loading progress
  • + *
  • crossOrigin - Whether cross-domain is needed. eg:crossOrigin='anonymous'
  • * * @returns {LoadQueue} 下载队列实例本身。 */ @@ -6764,7 +6850,7 @@ function getExtension(src){ window.Hilo.LoadQueue = LoadQueue; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -6968,7 +7054,7 @@ var HTMLAudio = Class.create(/** @lends HTMLAudio.prototype */{ window.Hilo.HTMLAudio = HTMLAudio; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7286,7 +7372,7 @@ return Class.create(/** @lends WebAudio.prototype */{ window.Hilo.WebAudio = WebAudio; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7390,7 +7476,7 @@ var WebSound = { window.Hilo.WebSound = WebSound; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7483,7 +7569,7 @@ var Camera = Class.create(/** @lends Camera.prototype */{ window.Hilo.Camera = Camera; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -7670,7 +7756,7 @@ var Camera3d = (function(){ window.Hilo.Camera3d = Camera3d; })(window); /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo-standalone.min.js b/build/standalone/hilo-standalone.min.js index 67dd7311..81b28ef7 100644 --- a/build/standalone/hilo-standalone.min.js +++ b/build/standalone/hilo-standalone.min.js @@ -1,8 +1,8 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ -!function(t){t.Hilo||(t.Hilo={});var e=function(){var e=navigator.userAgent,i=document,n=t,r=i.documentElement,a={iphone:/iphone/i.test(e),ipad:/ipad/i.test(e),ipod:/ipod/i.test(e),ios:/iphone|ipad|ipod/i.test(e),android:/android/i.test(e),webkit:/webkit/i.test(e),chrome:/chrome/i.test(e),safari:/safari/i.test(e),firefox:/firefox/i.test(e),ie:/msie/i.test(e),opera:/opera/i.test(e),supportTouch:"ontouchstart"in n,supportCanvas:null!=i.createElement("canvas").getContext,supportStorage:!1,supportOrientation:"orientation"in n||"orientation"in n.screen,supportDeviceMotion:"ondevicemotion"in n};try{var o="hilo";localStorage.setItem(o,o),localStorage.removeItem(o),a.supportStorage=!0}catch(s){}var l=a.jsVendor=a.webkit?"webkit":a.firefox?"webkit":a.opera?"o":a.ie?"ms":"",h=a.cssVendor="-"+l+"-",c=i.createElement("div"),u=c.style,d=void 0!=u[l+"Transform"],f=void 0!=u[l+"Perspective"];f&&(c.id="test3d",u=i.createElement("style"),u.textContent="@media ("+h+"transform-3d){#test3d{height:3px}}",i.head.appendChild(u),r.appendChild(c),f=3==c.offsetHeight,i.head.removeChild(u),r.removeChild(c)),a.supportTransform=d,a.supportTransform3D=f;var p=a.supportTouch,v=p?"touchstart":"mousedown",m=p?"touchmove":"mousemove",g=p?"touchend":"mouseup";return a.POINTER_START=v,a.POINTER_MOVE=m,a.POINTER_END=g,a}();t.Hilo.browser=e}(window),function(t){t.Hilo||(t.Hilo={});var e={copy:function(t,e,i){for(var n in e)i&&!t.hasOwnProperty(n)&&void 0===t[n]||(t[n]=e[n]);return t}};t.Hilo.util=e}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.browser,i=t.Hilo.util,n=t,r=document,a=r.documentElement,o=0,s={},l={version:"1.1.11",getUid:function(t){var e=++o;if(t){var i=t.charCodeAt(t.length-1);return i>=48&&i<=57&&(t+="_"),t+e}return e},viewToString:function(t){for(var e,i=t;i;)e=e?i.id+"."+e:i.id,i=i.parent;return e},copy:function(t,e,n){return i.copy(t,e,n),s.copy||(s.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),t},browser:e,event:{POINTER_START:e.POINTER_START,POINTER_MOVE:e.POINTER_MOVE,POINTER_END:e.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(t){var e;try{e=t.getBoundingClientRect()}catch(i){e={top:t.offsetTop,left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,bottom:t.offsetTop+t.offsetHeight}}var r=(n.pageXOffset||a.scrollLeft)-(a.clientLeft||0)||0,o=(n.pageYOffset||a.scrollTop)-(a.clientTop||0)||0,s=n.getComputedStyle?getComputedStyle(t):t.currentStyle,l=parseInt,h=l(s.paddingLeft)+l(s.borderLeftWidth)||0,c=l(s.paddingTop)+l(s.borderTopWidth)||0,u=l(s.paddingRight)+l(s.borderRightWidth)||0,d=l(s.paddingBottom)+l(s.borderBottomWidth)||0,f=e.top||0,p=e.left||0,v=e.right||0,m=e.bottom||0;return{left:p+r+h,top:f+o+c,width:v-u-p-h,height:m-d-f-c}},createElement:function(t,e){var i,n,a,o=r.createElement(t);for(i in e)if(n=e[i],"style"===i)for(a in n)o.style[a]=n[a];else o[i]=n;return o},getElement:function(t){return r.getElementById(t)},setElementStyleByView:function(t){var e=t.drawable,i=e.domElement.style,n=t._stateCache||(t._stateCache={}),r=l.browser.jsVendor,a="px",o=!1;if(this.cacheStateIfChanged(t,["visible"],n)&&(i.display=t.visible?"":"none"),this.cacheStateIfChanged(t,["alpha"],n)&&(i.opacity=t.alpha),t.visible&&!(t.alpha<=0)){this.cacheStateIfChanged(t,["width"],n)&&(i.width=t.width+a),this.cacheStateIfChanged(t,["height"],n)&&(i.height=t.height+a),this.cacheStateIfChanged(t,["depth"],n)&&(i.zIndex=t.depth+1),(o=this.cacheStateIfChanged(t,["pivotX","pivotY"],n))&&(i[r+"TransformOrigin"]=t.pivotX+a+" "+t.pivotY+a),(this.cacheStateIfChanged(t,["x","y","rotation","scaleX","scaleY"],n)||o)&&(i[r+"Transform"]=this.getTransformCSS(t)),this.cacheStateIfChanged(t,["background"],n)&&(i.backgroundColor=t.background),i.pointerEvents||(i.pointerEvents="none");var s=e.image;if(s){var h=s.src;h!==n.image&&(n.image=h,i.backgroundImage="url("+h+")");var c=e.rect;if(c){var u=c[0],d=c[1];u!==n.sx&&(n.sx=u,i.backgroundPositionX=-u+a),d!==n.sy&&(n.sy=d,i.backgroundPositionY=-d+a)}}var f=t.mask;if(f){var p=f.drawable.domElement.style.backgroundImage;p!==n.maskImage&&(n.maskImage=p,i[r+"MaskImage"]=p,i[r+"MaskRepeat"]="no-repeat");var v=f.x,m=f.y;v===n.maskX&&m===n.maskY||(n.maskX=v,n.maskY=m,i[r+"MaskPosition"]=v+a+" "+m+a)}}},cacheStateIfChanged:function(t,e,i){var n,r,a,o,s=!1;for(n=0,r=e.length;n=6?(e=s[0],i=s[1],n=s[2],r=s[3],a=s[4],o=s[5]):(e=t.a,i=t.b,n=t.c,r=t.d,a=t.tx,o=t.ty),this.a=l*e+h*n,this.b=l*i+h*r,this.c=c*e+u*n,this.d=c*i+u*r,this.tx=d*e+f*n+a,this.ty=d*i+f*r+o,this},rotate:function(t){var e=Math.sin(t),i=Math.cos(t),n=this.a,r=this.b,a=this.c,o=this.d,s=this.tx,l=this.ty;return this.a=n*i-r*e,this.b=n*e+r*i,this.c=a*i-o*e,this.d=a*e+o*i,this.tx=s*i-l*e,this.ty=s*e+l*i,this},scale:function(t,e){return this.a*=t,this.d*=e,this.c*=t,this.b*=e,this.tx*=t,this.ty*=e,this},translate:function(t,e){return this.tx+=t,this.ty+=e,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,e=this.b,i=this.c,n=this.d,r=this.tx,a=t*n-e*i;return this.a=n/a,this.b=-e/a,this.c=-i/a,this.d=t/a,this.tx=(i*this.ty-n*r)/a,this.ty=-(t*this.ty-e*r)/a,this},transformPoint:function(t,e,i){var n=t.x*this.a+t.y*this.c+this.tx,r=t.x*this.b+t.y*this.d+this.ty;return e&&(n=n+.5>>0,r=r+.5>>0),i?{x:n,y:r}:(t.x=n,t.y=r,t)}});t.Hilo.Matrix=i}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,i={_listeners:null,on:function(t,e,i){for(var n=this._listeners=this._listeners||{},r=n[t]=n[t]||[],a=0,o=r.length;a-1&&o.splice(c,1)}}return 0==o.length&&delete a[r],!0}return!1}},n=e.create({constructor:function(t,e,i){this.type=t,this.target=e,this.detail=i,this.timeStamp=+new Date},type:null,target:null,detail:null,timeStamp:0,stopImmediatePropagation:function(){this._stopped=!0}}),r=t.Event;if(r){var a=r.prototype,o=a.stopImmediatePropagation;a.stopImmediatePropagation=function(){o&&o.call(this),this._stopped=!0}}t.Hilo.EventMixin=i}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,i=t.Hilo.util,n=e.create({constructor:function(t){this.init(t)},image:null,rect:null,init:function(t){var e=this,r=e.image;n.isDrawable(t)?e.image=t:i.copy(e,t,!0);var a=e.image;if("string"==typeof a){if(!r||a!==r.getAttribute("src")){e.image=null;var o=new Image;return t.crossOrigin&&(o.crossOrigin=t.crossOrigin),o.onload=function(){o.onload=null,e.init(o)},void(o.src=a)}a=e.image=r}a&&!e.rect&&(e.rect=[0,0,a.width,a.height])},Statics:{isDrawable:function(t){if(!t||!t.tagName)return!1;var e=t.tagName.toLowerCase();return"img"===e||"canvas"===e||"video"===e}}});t.Hilo.Drawable=n}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,i=t.Hilo.util,n=e.create({constructor:function(t){t=t||{},i.copy(this,t,!0)},renderType:null,canvas:null,stage:null,blendMode:"source-over",startDraw:function(t){},draw:function(t){},endDraw:function(t){},transform:function(){},hide:function(){},remove:function(t){},clear:function(t,e,i,n){},resize:function(t,e){}});t.Hilo.Renderer=n}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,i=t.Hilo,n=t.Hilo.Renderer,r=e.create({Extends:n,constructor:function(t){r.superclass.constructor.call(this,t),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(t){return!!(t.visible&&t.alpha>0)&&(t===this.stage&&this.context.clearRect(0,0,t.width,t.height),t.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=t.blendMode),this.context.save(),!0)},draw:function(t){var e=this.context,i=t.width,n=t.height,r=t.background;r&&(e.fillStyle=r,e.fillRect(0,0,i,n));var a=t.drawable,o=a&&a.image;if(o){var s=a.rect,l=s[2],h=s[3],c=s[4],u=s[5];if(!l||!h)return;i||n||(i=t.width=l,n=t.height=h),(c||u)&&e.translate(c-.5*l,u-.5*h),e.drawImage(o,s[0],s[1],l,h,0,0,i,n)}},endDraw:function(t){this.context.restore()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void i.setElementStyleByView(t);var n=this.context,r=t.scaleX,a=t.scaleY;if(t===this.stage){var o=this.canvas.style,s=t._scaleX,l=t._scaleY,h=!1;(!s&&1!=r||s&&s!=r)&&(t._scaleX=r,o.width=r*t.width+"px",h=!0),(!l&&1!=a||l&&l!=a)&&(t._scaleY=a,o.height=a*t.height+"px",h=!0),h&&t.updateViewport()}else{var c=t.x,u=t.y,d=t.pivotX,f=t.pivotY,p=t.rotation%360,v=t.mask;v&&(v._render(this),n.clip());var m=t.align;if(m){var g=t.getAlignPosition();c=g.x,u=g.y}0==c&&0==u||n.translate(c,u),0!=p&&n.rotate(p*Math.PI/180),1==r&&1==a||n.scale(r,a),0==d&&0==f||n.translate(-d,-f)}t.alpha>0&&(n.globalAlpha*=t.alpha)},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var n=i.parentNode;n&&n.removeChild(i)}},clear:function(t,e,i,n){this.context.clearRect(t,e,i,n)},resize:function(t,e){var i=this.canvas,n=this.stage,r=i.style;i.width=t,i.height=e,r.width=n.width*n.scaleX+"px",r.height=n.height*n.scaleY+"px"}});t.Hilo.CanvasRenderer=r}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,i=t.Hilo,n=t.Hilo.Renderer,r=t.Hilo.Drawable,a=function(){function t(t,e){var n=t.tagName||"div",r=e.image,a=t.width||r&&r.width,o=t.height||r&&r.height,s=i.createElement(n),l=s.style;if(t.id&&(s.id=t.id),l.position="absolute",l.left=(t.left||0)+"px",l.top=(t.top||0)+"px",l.width=a+"px",l.height=o+"px","canvas"==n){if(s.width=a,s.height=o,r){var h=s.getContext("2d"),c=e.rect||[0,0,a,o];h.drawImage(r,c[0],c[1],c[2],c[3],t.x||0,t.y||0,t.width||c[2],t.height||c[3])}}else if(l.opacity=void 0!=t.alpha?t.alpha:1,(t===this.stage||t.clipChildren)&&(l.overflow="hidden"),r&&r.src){l.backgroundImage="url("+r.src+")";var u=t.rectX||0,d=t.rectY||0;l.backgroundPosition=-u+"px "+-d+"px"}return s}return e.create({Extends:n,constructor:function(t){a.superclass.constructor.call(this,t)},renderType:"dom",startDraw:function(e){var i=e.drawable=e.drawable||new r;return i.domElement=i.domElement||t(e,i),!0},draw:function(t){var e=t.parent,i=t.drawable.domElement,n=i.parentNode;if(e){var r=e.drawable.domElement;if(r!=n&&r.appendChild(i),!t.width&&!t.height){var a=t.drawable.rect;a&&(a[2]||a[3])&&(t.width=a[2],t.height=a[3])}}else t!==this.stage||n||(i.style.overflow="hidden",this.canvas.appendChild(i))},transform:function(t){if(i.setElementStyleByView(t),t===this.stage){var e=this.canvas.style,n=t._scaleX,r=t._scaleY,a=t.scaleX,o=t.scaleY;(!n&&1!=a||n&&n!=a)&&(t._scaleX=a,e.width=a*t.width+"px"),(!r&&1!=o||r&&r!=o)&&(t._scaleY=o,e.height=o*t.height+"px")}},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var n=i.parentNode;n&&n.removeChild(i)}},hide:function(t){var e=t.drawable&&t.drawable.domElement;e&&(e.style.display="none")},resize:function(t,e){var i=this.canvas.style;i.width=t+"px",i.height=e+"px","absolute"!=i.position&&(i.position="relative")}})}();t.Hilo.DOMRenderer=a}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,i=t.Hilo,n=t.Hilo.Renderer,r=t.Hilo.Matrix,a=Math.PI/180,o=e.create({Extends:n,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var t=document.createElement("canvas");t.getContext&&(t.getContext("webgl")||t.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(t){o.superclass.constructor.call(this,t);var e=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=o.MAX_BATCH_NUM,this.positionStride=4*o.ATTRIBUTE_NUM;var i=this.maxBatchNum*o.ATTRIBUTE_NUM*4,n=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*i),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(n);for(var r=0,a=0;r0)&&(t===this.stage&&this.clear(),!0)},draw:function(t){var e=t.width,i=t.height,n=(t.background,t.drawable),r=n&&n.image;if(r){var a=n.rect,o=a[2],s=a[3];e||i||(e=t.width=o,i=t.height=s),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var l=this._createVertexs(r,a[0],a[1],o,s,0,0,e,i),h=this.batchIndex*this.positionStride,c=this.float32Array,u=this.uint32Array,d=(t.tint>>16)+(65280&t.tint)+((255&t.tint)<<16)+(255*t.__webglRenderAlpha<<24);c[h+0]=l[0],c[h+1]=l[1],c[h+2]=l[2],c[h+3]=l[3],u[h+4]=d,c[h+5]=l[4],c[h+6]=l[5],c[h+7]=l[6],c[h+8]=l[7],u[h+9]=d,c[h+10]=l[8],c[h+11]=l[9],c[h+12]=l[10],c[h+13]=l[11],u[h+14]=d,c[h+15]=l[12],c[h+16]=l[13],c[h+17]=l[14],c[h+18]=l[15],u[h+19]=d;for(var f=t.__webglWorldMatrix,p=0;p<4;p++){var v=c[h+5*p],m=c[h+5*p+1];c[h+5*p]=f.a*v+f.c*m+f.tx,c[h+5*p+1]=f.b*v+f.d*m+f.ty}t.__textureImage=r,this.sprites[this.batchIndex++]=t}},endDraw:function(t){t===this.stage&&this._renderBatches()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void i.setElementStyleByView(t);var n=t.scaleX,a=t.scaleY;if(t===this.stage){var o=this.canvas.style,s=t._scaleX,l=t._scaleY,h=!1;(!s&&1!=n||s&&s!=n)&&(t._scaleX=n,o.width=n*t.width+"px",h=!0),(!l&&1!=a||l&&l!=a)&&(t._scaleY=a,o.height=a*t.height+"px",h=!0),h&&t.updateViewport(),t.__webglWorldMatrix=t.__webglWorldMatrix||new r(1,0,0,1,0,0)}else t.parent&&(t.__webglWorldMatrix=t.__webglWorldMatrix||new r(1,0,0,1,0,0),this._setConcatenatedMatrix(t,t.parent));t.alpha>0&&(t.parent&&t.parent.__webglRenderAlpha?t.__webglRenderAlpha=t.alpha*t.parent.__webglRenderAlpha:t.__webglRenderAlpha=t.alpha)},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var n=i.parentNode;n&&n.removeChild(i)}},clear:function(t,e,i,n){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(t,e){if(this.width!==t||this.height!==e){var i=this.canvas,n=this.stage,r=i.style;this.width=i.width=t,this.height=i.height=e,r.width=n.width*n.scaleX+"px",r.height=n.height*n.scaleY+"px",this.gl.viewport(0,0,t,e),this.canvasHalfWidth=.5*t,this.canvasHalfHeight=.5*e,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var t=this.gl;t.bufferSubData(t.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var e=0,i=0,n=null,r=0;r0&&(i.bindTexture(i.TEXTURE_2D,this._getTexture(this.sprites[t])),i.drawElements(i.TRIANGLES,6*n,i.UNSIGNED_SHORT,6*t*2))},_uploadProjectionTransform:function(t){this._projectionTransformElements&&!t||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var t=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",e="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new s(this,{v:t,f:e},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(t,e,i,n,r,a,o,s,l){var h=this.__tempVertexs||[],c=t.width,u=t.height;n/=c,r/=u,e/=c,i/=u,s=s,l=l,a=a,o=o,n+e>1&&(n=1-e),r+i>1&&(r=1-i);var d=0;return h[d++]=a,h[d++]=o,h[d++]=e,h[d++]=i,h[d++]=a+s,h[d++]=o,h[d++]=e+n,h[d++]=i,h[d++]=a,h[d++]=o+l,h[d++]=e,h[d++]=i+r,h[d++]=a+s,h[d++]=o+l,h[d++]=e+n,h[d++]=i+r,h},_setConcatenatedMatrix:function(t,e){var i=t.__webglWorldMatrix,n=1,r=0,o=t.rotation%360,s=t.pivotX,l=t.pivotY,h=t.scaleX,c=t.scaleY;if(o){var u=o*a;n=Math.cos(u),r=Math.sin(u)}var d=t.getAlignPosition();i.a=n*h,i.b=r*h,i.c=-r*c,i.d=n*c,i.tx=d.x-i.a*s-i.c*l,i.ty=d.y-i.b*s-i.d*l,i.concat(e.__webglWorldMatrix)},_getTexture:function(t){var e=t.__textureImage,i=this._cacheTexture[e.src];return i||(i=this.activeShader.uploadTexture(e)),i}}),s=function(t,e,i){this.renderer=t,this.gl=t.gl,this.program=this._createProgram(this.gl,e.v,e.f),i=i||{},this.attributes=i.attributes||[],this.uniforms=i.uniforms||[]};s.prototype={active:function(){var t=this,e=t.renderer,i=t.gl,n=t.program;n&&i&&(e.activeShader=t,i.useProgram(n),t.attributes.forEach(function(t){e[t]=i.getAttribLocation(n,t),i.enableVertexAttribArray(e[t])}),t.uniforms.forEach(function(t){e[t]=i.getUniformLocation(n,t)}),t.width===e.width&&t.height===e.height||(t.width=e.width,t.height=e.height,e._uploadProjectionTransform()))},uploadTexture:function(t){var e=this.gl,i=this.renderer,n=e.createTexture(),r=i.u_Sampler;return e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,n),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.uniform1i(r,0),e.bindTexture(e.TEXTURE_2D,null),this.renderer._cacheTexture[t.src]=n,n},_createProgram:function(t,e,i){var n=this._createShader(t,t.VERTEX_SHADER,e),r=this._createShader(t,t.FRAGMENT_SHADER,i);if(!n||!r)return null;var a=t.createProgram();if(a){t.attachShader(a,n),t.attachShader(a,r),t.linkProgram(a),t.deleteShader(r),t.deleteShader(n);var o=t.getProgramParameter(a,t.LINK_STATUS);if(!o){var s=t.getProgramInfoLog(a);return console.log("Failed to link program: "+s),t.deleteProgram(a),null}}return a},_createShader:function(t,e,i){var n=t.createShader(e);if(n){t.shaderSource(n,i),t.compileShader(n);var r=t.getShaderParameter(n,t.COMPILE_STATUS);if(!r){var a=t.getShaderInfoLog(n);return console.log("Failed to compile shader: "+a),t.deleteShader(n),null}}return n}},t.Hilo.WebGLRenderer=o}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo,i=t.Hilo.Class,n=t.Hilo.EventMixin,r=t.Hilo.Matrix,a=t.Hilo.util,o=function(){function t(t,e,i){for(var n,r,a,o,s=0,l=!1,h=0,c=i.length;hd.x?(n=d.x,r=u.x):(n=u.x,r=d.x),t>=n&&t<=r))l=!0;else if(u.y>d.y?(a=d.y,o=u.y):(a=u.y,o=d.y),!(eo)){var f=(e-u.y)*(d.x-u.x)/(d.y-u.y)+u.x;if(f>t?s++:f==t&&(l=!0),u.x>t&&u.y==e){var p=i[(c+h-1)%c];(p.ye||p.y>e&&d.ys?s=c:ch?h=c:c=0)return!1;u>i.overlap&&(i.overlap=u,i.normal.x=p.x,i.normal.y=p.y)}return i}return i.create({Mixes:n,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("View"),a.copy(this,t,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,n,r,a,o,s=this.width,l=this.height,h=this.getConcatenatedMatrix(),c=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:l},{x:0,y:l}],u=[],d=0,f=c.length;de?n=e:ri?a=i:o>1,n=0;break;case"TR":i=o-r,n=0;break;case"L":i=0,n=s-a>>1;break;case"C":i=o-r>>1,n=s-a>>1;break;case"R":i=o-r,n=s-a>>1;break;case"BL":i=0,n=s-a;break;case"B":i=o-r>>1,n=s-a;break;case"BR":i=o-r,n=s-a}}return{x:i,y:n}},hitTestPoint:function(e,i,n){var r=this.getBounds(),a=e>=r.x&&e<=r.x+r.width&&i>=r.y&&i<=r.y+r.height;return a&&n&&(a=t(e,i,r)),a},hitTestObject:function(t,e){var i=this.getBounds(),n=t.getBounds(),r=i.x<=n.x+n.width&&n.x<=i.x+i.width&&i.y<=n.y+n.height&&n.y<=i.y+i.height;return r&&e&&(r=o(i,n)),!!r},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=a.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return e.viewToString(this)}})}();t.Hilo.View=o}(window),function(t){t.Hilo||(t.Hilo={});var e,i,n=t.Hilo.Drawable,r=t.Hilo.browser,a={_cacheDirty:!0,cache:function(t){(t||this._cacheDirty||!this.drawable)&&this.updateCache()},updateCache:function(){r.supportCanvas&&(e||(e=document.createElement("canvas"),i=e.getContext("2d")),e.width=this.width,e.height=this.height,this._draw(i),this.drawable=this.drawable||new n,this.drawable.init({image:e.toDataURL()}),this._cacheDirty=!1)},setCacheDirty:function(t){this._cacheDirty=t}};t.Hilo.CacheMixin=a}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo,i=t.Hilo.Class,n=t.Hilo.View,r=i.create({Extends:n,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("Container"),r.superclass.constructor.call(this,t),this.children?this._updateChildren():this.children=[]},children:null,pointerChildren:!0,clipChildren:!1,getNumChildren:function(){return this.children.length},addChildAt:function(t,e){var i=this.children,n=i.length,r=t.parent;e=e<0?0:e>n?n:e;var a=this.getChildIndex(t);if(a==e)return this;if(a>=0?(i.splice(a,1),e=e==n?n-1:e):r&&r.removeChild(t),i.splice(e,0,t),a<0)this._updateChildren(e);else{var o=a=e.length)return null;var i=e[t];if(i){if(!i.__renderer)for(var n=i;n=n.parent;){if(n.renderer){i.__renderer=n.renderer;break}if(n.__renderer){i.__renderer=n.__renderer;break}}i.__renderer&&i.__renderer.remove(i),i.parent=null,i.depth=-1}return e.splice(t,1),this._updateChildren(t),i},removeChild:function(t){return this.removeChildAt(this.getChildIndex(t))},removeChildById:function(t){for(var e,i=this.children,n=0,r=i.length;n=e.length?null:e[t]},getChildById:function(t){for(var e,i=this.children,n=0,r=i.length;n=0&&n!=e){var r=i.length;e=e<0?0:e>=r?r-1:e,i.splice(n,1),i.splice(e,0,t),this._updateChildren()}return this},swapChildren:function(t,e){var i=this.children,n=this.getChildIndex(t),r=this.getChildIndex(e);t.depth=r,i[r]=t,e.depth=n,i[n]=e},swapChildrenAt:function(t,e){var i=this.children,n=this.getChildAt(t),r=this.getChildAt(e);n.depth=e,i[e]=n,r.depth=t,i[t]=r},sortChildren:function(t){var e=t,i=this.children;if("string"==typeof e){var n=e;e=function(t,e){return e[n]-t[n]}}i.sort(e),this._updateChildren()},_updateChildren:function(t,e){var i,n=this.children;t=t||0,e=e||n.length;for(var r=t;r=0;h--)if(a=l[h],!(!a||!a.visible||a.alpha<=0||r&&!a.pointerEnabled))if(a.children&&a.children.length&&(!r||a.pointerChildren)&&(o=a.getViewAtPoint(t,e,i,n,r)),o){if(!n)return o;o.length&&(s=s.concat(o))}else if(a.hitTestPoint(t,e,i)){if(!n)return a;s.push(a)}return n&&s.length?s:null},render:function(t,e){r.superclass.render.call(this,t,e);var i,n,a,o=this.children.slice(0);for(i=0,n=o.length;in?n:e,i[e]=t,t.name&&(this._frameNames[t.name]=t),(0!=e||this.width)&&this.height||(this.width=t.rect[2],this.height=t.rect[3]),this},getFrame:function(t){if("number"==typeof t){var e=this._frames;return t<0||t>=e.length?null:e[t]}return this._frameNames[t]},getFrameIndex:function(t){var e=this._frames,i=e.length,n=-1;if("number"==typeof t)n=t;else{var r="string"==typeof t?this._frameNames[t]:t;if(r)for(var a=0;a=i?i-1:n,this.paused=e,this._firstRender=!0,this},_render:function(t,e){var i,n=this.currentFrame;if(this._firstRender?(i=n,this._firstRender=!1):i=this._nextFrame(e),i!=n){this.currentFrame=i;var r=this._frames[i].callback;r&&r.call(this)}this.onEnterFrame&&this.onEnterFrame(i),this.drawable.init(this._frames[i]),a.superclass._render.call(this,t,e)},_nextFrame:function(t){var e=this._frames,i=e.length,n=this.currentFrame,r=e[n],a=r.duration||this.interval,o=this._frameElapsed,s=0!=n||this.drawable?o+(this.timeBased?t:1):0;return o=this._frameElapsed=s=i-1)&&this.stop(),this.paused||0!=o||(null!=r.next?n=this.getFrameIndex(r.next):n>=i-1?n=0:this.drawable&&n++),n},setFrameCallback:function(t,e){return t=this.getFrame(t),t&&(t.callback=e),this},onEnterFrame:null});t.Hilo.Sprite=a}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo,i=t.Hilo.Class,n=t.Hilo.View,r=t.Hilo.Drawable,a=i.create({Extends:n,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("DOMElement"),a.superclass.constructor.call(this,t),this.drawable=new r;var i=this.drawable.domElement=t.element||e.createElement("div");i.id=this.id,this.pointerEnabled&&!i.style.pointerEvents&&(i.style.pointerEvents="visible")},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||(t.transform(this),this.visible&&this.alpha>0&&this.render(t,e))},render:function(t,i){if("dom"!==t.renderType){var n=t.canvas,r=this.parent,a=t._domElementContainer;t._domElementContainer||(a=t._domElementContainer=e.createElement("div",{style:{position:"absolute",transform:"scale3d("+r.scaleX+","+r.scaleY+", 1)",transformOrigin:"0 0"}}),n.parentNode.insertBefore(t._domElementContainer,n.nextSibling));var o,s=this.drawable.domElement,l=this.depth,h=a.childNodes[0];if(s.parentNode)return;for(;h&&3!=h.nodeType&&(o=parseInt(h.style.zIndex)||0,!(o<=0||o>l));)h=h.nextSibling;a.insertBefore(this.drawable.domElement,h)}else t.draw(this)}});t.Hilo.DOMElement=a}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo,i=t.Hilo.Class,n=t.Hilo.View,r=t.Hilo.CacheMixin,a=function(){var t=document.createElement("canvas"),o=t.getContext&&t.getContext("2d");return i.create({Extends:n,Mixes:r,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("Graphics"),a.superclass.constructor.call(this,t),this._actions=[]},lineWidth:1,lineAlpha:1,lineCap:null,lineJoin:null,miterLimit:10,hasStroke:!1,strokeStyle:"0",hasFill:!1,fillStyle:"0",fillAlpha:0,lineStyle:function(t,e,i,n,r,a){var o=this,s=o._addAction;return s.call(o,["lineWidth",o.lineWidth=t||1]),s.call(o,["strokeStyle",o.strokeStyle=e||"0"]),s.call(o,["lineAlpha",o.lineAlpha=i||1]),void 0!=n&&s.call(o,["lineCap",o.lineCap=n]),void 0!=r&&s.call(o,["lineJoin",o.lineJoin=r]),void 0!=a&&s.call(o,["miterLimit",o.miterLimit=a]),o.hasStroke=!0,o},beginFill:function(t,e){var i=this,n=i._addAction;return n.call(i,["fillStyle",i.fillStyle=t]),n.call(i,["fillAlpha",i.fillAlpha=e||1]),i.hasFill=!0,i},endFill:function(){var t=this,e=t._addAction;return t.hasStroke&&e.call(t,["stroke"]),t.hasFill&&e.call(t,["fill"]),t.setCacheDirty(!0),t},beginLinearGradientFill:function(t,e,i,n,r,a){for(var s=this,l=o.createLinearGradient(t,e,i,n),h=0,c=r.length;h1?a.slice(1):null;"function"==typeof t[o]?t[o].apply(t,s):t[o]=a[1]}},render:function(t,e){var i=this;"canvas"===t.renderType?i._draw(t.context):(i.cache(),t.draw(i))},clear:function(){var t=this;return t._actions.length=0,t.lineWidth=1,t.lineAlpha=1,t.lineCap=null,t.lineJoin=null,t.miterLimit=10,t.hasStroke=!1,t.strokeStyle="0",t.hasFill=!1,t.fillStyle="0",t.fillAlpha=1,t.setCacheDirty(!0),t},_addAction:function(t){var e=this;return e._actions.push(t),e}})}();t.Hilo.Graphics=a}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,i=t.Hilo,n=t.Hilo.View,r=t.Hilo.CacheMixin,a=e.create({Extends:n,Mixes:r,constructor:function(t){t=t||{},this.id=this.id||t.id||i.getUid("Text"),a.superclass.constructor.call(this,t),t.font||(this.font="12px arial"),this._fontHeight=a.measureFontHeight(this.font)},text:null,color:"#000",textAlign:null,textVAlign:null,outline:!1,lineSpacing:0,maxWidth:200,font:null,textWidth:0,textHeight:0,setFont:function(t){var e=this;return e.font!==t&&(e.font=t,e._fontHeight=a.measureFontHeight(t)),e},render:function(t,e){var i=this;if("canvas"===t.renderType)this.drawable?t.draw(i):i._draw(t.context);else if("dom"===t.renderType){var n=i.drawable,r=n.domElement,a=r.style;a.font=i.font,a.textAlign=i.textAlign,a.color=i.color,a.width=i.width+"px",a.height=i.height+"px",a.lineHeight=i._fontHeight+i.lineSpacing+"px",r.innerHTML=i.text,t.draw(this)}else i.cache(),t.draw(i)},_draw:function(t){var e=this,i=e.text.toString();if(i){t.font=e.font,t.textAlign=e.textAlign,t.textBaseline="top";var n,r,a,o,s,l=i.split(/\r\n|\r|\n|/),h=0,c=0,u=e._fontHeight+e.lineSpacing,d=[];for(n=0,o=l.length;ne.maxWidth?(d.push({text:m,y:c}),h>1;break;case"bottom":_=e.height-e.textHeight}var x=e.background;for(x&&(t.fillStyle=x,t.fillRect(0,0,e.width,e.height)),e.outline?t.strokeStyle=e.color:t.fillStyle=e.color,n=0;n>1;break;case"right":case"end":r=a}n.outline?t.strokeText(e,r,i):t.fillText(e,r,i)},Statics:{measureFontHeight:function(t){var e,n=document.documentElement,r=i.createElement("div",{style:{font:t,position:"absolute"},innerHTML:"M"});return n.appendChild(r),e=r.offsetHeight,n.removeChild(r),e}}});t.Hilo.Text=a}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,i=t.Hilo,n=t.Hilo.Container,r=t.Hilo.Bitmap,a=e.create({Extends:n,constructor:function(t){t=t||{},this.id=this.id||t.id||i.getUid("BitmapText"),a.superclass.constructor.call(this,t);var e=t.text+"";e&&(this.text="",this.setText(e)),this.pointerChildren=!1},glyphs:null,letterSpacing:0,text:"",textAlign:"left",setText:function(t){var e=this,i=t.toString(),n=i.length;if(e.text!=i){e.text=i;var r,a,o,s,l=0,h=0,c=0;for(r=0;r0?e.letterSpacing:0),e.children[r]?(s=e.children[r],s.setImage(o.image,o.rect)):(s=e._createBitmap(o),e.addChild(s)),s.x=c,l=c+o.rect[2],h=Math.max(h,o.rect[3]));for(r=e.children.length-1;r>=n;r--)e._releaseBitmap(e.children[r]),e.children[r].removeFromParent();return e.width=l,e.height=h,this.setTextAlign(),e}},_createBitmap:function(t){var e;return a._pool.length?(e=a._pool.pop(),e.setImage(t.image,t.rect)):e=new r({image:t.image,rect:t.rect}),e},_releaseBitmap:function(t){a._pool.push(t)},setTextAlign:function(t){switch(this.textAlign=t||this.textAlign,this.textAlign){case"center":this.pivotX=.5*this.width;break;case"right":this.pivotX=this.width;break;case"left":default:this.pivotX=0}return this},hasGlyphs:function(t){var e=this.glyphs;if(!e)return!1;t=t.toString();var i,n=t.length;for(i=0;i=this._targetFPS?(this._measuredFPS=1e3/(this._tickTime/this._tickCount)+.5>>0,this._tickCount=0,this._tickTime=0):this._tickTime+=t-this._lastTime,this._lastTime=t;for(var n=i.slice(0),r=0,a=n.length;r=0&&e.splice(i,1)},nextTick:function(t){var e=this,i={tick:function(n){e.removeTick(i),t()}};return e.addTick(i),i},timeout:function(t,e){var i=this,n=(new Date).getTime()+e,r={tick:function(){var e=(new Date).getTime(),a=e-n;a>=0&&(i.removeTick(r),t())}};return i.addTick(r),r},interval:function(t,e){var i=this,n=(new Date).getTime()+e,r={tick:function(){var i=(new Date).getTime(),r=i-n;r>=0&&(r=n)return-1;for(e<0&&(e=n+e),i=e;i=1?1:s;var h=r.ease?r.ease(s):s;r.reverse&&(r._reverseFlag<0&&(s=1-s,h=1-h),s<1e-7&&(r.repeat>0&&r._repeatCount++>=r.repeat||0==r.repeat&&!r.loop?l=!0:(r._startTime=t(),r._pausedTime=0,r._reverseFlag*=-1))),r.isStart||(r.setProps(r._fromProps,r._toProps),r.isStart=!0,r.onStart&&r.onStart.call(r,r)),r.time=a,r._render(h),(o=r.onUpdate)&&o.call(r,s,r),s>=1&&(r.reverse?(r._startTime=t(),r._pausedTime=0,r._reverseFlag*=-1):r.loop||r.repeat>0&&r._repeatCount++0&&u<=e?(c._render(s),c.time=a,i.add(c)):l&&(u<0||u>e)&&c.start()}return l?((o=r.onComplete)&&o.call(r,r),!0):void 0}}},Statics:{_tweens:[],tick:function(){var e,n,r=i._tweens,a=r.length;for(n=0;n-1&&r.splice(e,1);else for(e=0;e=i)return void t.fire("complete");if(t._currentIndexe.z})},tick:function(){this.sortZ()}});return o}();t.Hilo.Camera3d=n}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo,i=t.Hilo.Class,n=t.Hilo.View,r=t.Hilo.Container,a=t.Hilo.Drawable,o=t.Hilo.util,s=function(){function t(t,e){return e?t+2*(Math.random()-.5)*e:t}for(var s=["x","y","vx","vy","ax","ay","rotation","rotationV","scale","scaleV","alpha","alphaV","life"],l=[],h=0,c=s.length;h=this._emitTime&&(this._currentRunTime=0,this._emitTime=t(this.emitTime,this.emitTimeVar),this._emit()),this._totalRunTime>=this.totalTime&&this.stop())},_emit:function(){for(var e=t(this.emitNum,this.emitNumVar)>>0,i=0;i=0;e--)this.children[e].destroy()}}),v=i.create({Extends:n,constructor:function(t){this.id=this.id||t.id||e.getUid("Particle"),v.superclass.constructor.call(this,t),this.init(t)},onUpdate:function(t){if(t*=.001,this._died)return!1;var e=this.ax+this.system.gx,i=this.ay+this.system.gy;return this.vx+=e*t,this.vy+=i*t,this.x+=this.vx*t,this.y+=this.vy*t,this.rotation+=this.rotationV,this._time>.1&&(this.alpha+=this.alphaV),this.scale+=this.scaleV,this.scaleX=this.scaleY=this.scale,this._time+=t,this._time>=this.life||this.alpha<=0?(this.destroy(),!1):void 0},setImage:function(t,e){this.drawable=this.drawable||new a,e=e||[0,0,t.width,t.height],this.width=e[2],this.height=e[3],this.drawable.rect=e,this.drawable.image=t},destroy:function(){this._died=!0,this.alpha=0,this.removeFromParent(),f.push(this)},init:function(e){this.system=e.system,this._died=!1,this._time=0,this.alpha=1;for(var i=0,n=l.length;i>0]),this.setImage(e.image,o),void 0!==e.pivotX&&(this.pivotX=e.pivotX*o[2]),void 0!==e.pivotY&&(this.pivotY=e.pivotY*o[3])}},Statics:{create:function(t){if(f.length>0){var e=f.pop();return e.init(t),e}return new v(t)}}});return p}();t.Hilo.ParticleSystem=s}(window); \ No newline at end of file +!function(t){t.Hilo||(t.Hilo={});var e=function(){var e=navigator.userAgent,i=document,n=t,r=i.documentElement,a={iphone:/iphone/i.test(e),ipad:/ipad/i.test(e),ipod:/ipod/i.test(e),ios:/iphone|ipad|ipod/i.test(e),android:/android/i.test(e),webkit:/webkit/i.test(e),chrome:/chrome/i.test(e),safari:/safari/i.test(e),firefox:/firefox/i.test(e),ie:/msie/i.test(e),opera:/opera/i.test(e),supportTouch:"ontouchstart"in n,supportCanvas:null!=i.createElement("canvas").getContext,supportStorage:!1,supportOrientation:"orientation"in n||"orientation"in n.screen,supportDeviceMotion:"ondevicemotion"in n};try{var o="hilo";localStorage.setItem(o,o),localStorage.removeItem(o),a.supportStorage=!0}catch(s){}var l=a.jsVendor=a.webkit?"webkit":a.firefox?"webkit":a.opera?"o":a.ie?"ms":"",h=a.cssVendor="-"+l+"-",c=i.createElement("div"),u=c.style,d=void 0!=u[l+"Transform"],f=void 0!=u[l+"Perspective"];f&&(c.id="test3d",u=i.createElement("style"),u.textContent="@media ("+h+"transform-3d){#test3d{height:3px}}",i.head.appendChild(u),r.appendChild(c),f=3==c.offsetHeight,i.head.removeChild(u),r.removeChild(c)),a.supportTransform=d,a.supportTransform3D=f;var p=a.supportTouch,v=p?"touchstart":"mousedown",m=p?"touchmove":"mousemove",g=p?"touchend":"mouseup";return a.POINTER_START=v,a.POINTER_MOVE=m,a.POINTER_END=g,a}();t.Hilo.browser=e}(window),function(t){t.Hilo||(t.Hilo={});var e={copy:function(t,e,i){for(var n in e)i&&!t.hasOwnProperty(n)&&void 0===t[n]||(t[n]=e[n]);return t}};t.Hilo.util=e}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.browser,i=t.Hilo.util,n=t,r=document,a=r.documentElement,o=0,s={},l={version:"1.2.0",getUid:function(t){var e=++o;if(t){var i=t.charCodeAt(t.length-1);return i>=48&&i<=57&&(t+="_"),t+e}return e},viewToString:function(t){for(var e,i=t;i;)e=e?i.id+"."+e:i.id,i=i.parent;return e},copy:function(t,e,n){return i.copy(t,e,n),s.copy||(s.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),t},browser:e,event:{POINTER_START:e.POINTER_START,POINTER_MOVE:e.POINTER_MOVE,POINTER_END:e.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(t){var e;try{e=t.getBoundingClientRect()}catch(i){e={top:t.offsetTop,left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,bottom:t.offsetTop+t.offsetHeight}}var r=(n.pageXOffset||a.scrollLeft)-(a.clientLeft||0)||0,o=(n.pageYOffset||a.scrollTop)-(a.clientTop||0)||0,s=n.getComputedStyle?getComputedStyle(t):t.currentStyle,l=parseInt,h=l(s.paddingLeft)+l(s.borderLeftWidth)||0,c=l(s.paddingTop)+l(s.borderTopWidth)||0,u=l(s.paddingRight)+l(s.borderRightWidth)||0,d=l(s.paddingBottom)+l(s.borderBottomWidth)||0,f=e.top||0,p=e.left||0,v=e.right||0,m=e.bottom||0;return{left:p+r+h,top:f+o+c,width:v-u-p-h,height:m-d-f-c}},createElement:function(t,e){var i,n,a,o=r.createElement(t);for(i in e)if(n=e[i],"style"===i)for(a in n)o.style[a]=n[a];else o[i]=n;return o},getElement:function(t){return r.getElementById(t)},setElementStyleByView:function(t){var e=t.drawable,i=e.domElement.style,n=t._stateCache||(t._stateCache={}),r=l.browser.jsVendor,a="px",o=!1;if(this.cacheStateIfChanged(t,["visible"],n)&&(i.display=t.visible?"":"none"),this.cacheStateIfChanged(t,["alpha"],n)&&(i.opacity=t.alpha),t.visible&&!(t.alpha<=0)){if(this.cacheStateIfChanged(t,["width"],n)&&(i.width=t.width+a),this.cacheStateIfChanged(t,["height"],n)&&(i.height=t.height+a),this.cacheStateIfChanged(t,["depth"],n)&&(i.zIndex=t.depth+1),t.transform){var s=t.transform;(o=this.cacheStateIfChanged(t,["pivotX","pivotY"],n))&&(i[r+"TransformOrigin"]="0 0"),i[r+"Transform"]="matrix3d("+s.a+", "+s.b+", 0, 0, "+s.c+", "+s.d+", 0, 0, 0, 0, 1, 0, "+s.tx+", "+s.ty+", 0, 1)"}else(o=this.cacheStateIfChanged(t,["pivotX","pivotY"],n))&&(i[r+"TransformOrigin"]=t.pivotX+a+" "+t.pivotY+a),(this.cacheStateIfChanged(t,["x","y","rotation","scaleX","scaleY"],n)||o)&&(i[r+"Transform"]=this.getTransformCSS(t));this.cacheStateIfChanged(t,["background"],n)&&(i.backgroundColor=t.background),i.pointerEvents||(i.pointerEvents="none");var h=e.image;if(h){var c=h.src;c!==n.image&&(n.image=c,i.backgroundImage="url("+c+")");var u=e.rect;if(u){var d=u[0],f=u[1];d!==n.sx&&(n.sx=d,i.backgroundPositionX=-d+a),f!==n.sy&&(n.sy=f,i.backgroundPositionY=-f+a)}}var p=t.mask;if(p){var v=p.drawable.domElement.style.backgroundImage;v!==n.maskImage&&(n.maskImage=v,i[r+"MaskImage"]=v,i[r+"MaskRepeat"]="no-repeat");var m=p.x,g=p.y;m===n.maskX&&g===n.maskY||(n.maskX=m,n.maskY=g,i[r+"MaskPosition"]=m+a+" "+g+a)}}},cacheStateIfChanged:function(t,e,i){var n,r,a,o,s=!1;for(n=0,r=e.length;n=6?(e=s[0],i=s[1],n=s[2],r=s[3],a=s[4],o=s[5]):(e=t.a,i=t.b,n=t.c,r=t.d,a=t.tx,o=t.ty),this.a=l*e+h*n,this.b=l*i+h*r,this.c=c*e+u*n,this.d=c*i+u*r,this.tx=d*e+f*n+a,this.ty=d*i+f*r+o,this},rotate:function(t){var e=Math.sin(t),i=Math.cos(t),n=this.a,r=this.b,a=this.c,o=this.d,s=this.tx,l=this.ty;return this.a=n*i-r*e,this.b=n*e+r*i,this.c=a*i-o*e,this.d=a*e+o*i,this.tx=s*i-l*e,this.ty=s*e+l*i,this},scale:function(t,e){return this.a*=t,this.d*=e,this.c*=t,this.b*=e,this.tx*=t,this.ty*=e,this},translate:function(t,e){return this.tx+=t,this.ty+=e,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,e=this.b,i=this.c,n=this.d,r=this.tx,a=t*n-e*i;return this.a=n/a,this.b=-e/a,this.c=-i/a,this.d=t/a,this.tx=(i*this.ty-n*r)/a,this.ty=-(t*this.ty-e*r)/a,this},transformPoint:function(t,e,i){var n=t.x*this.a+t.y*this.c+this.tx,r=t.x*this.b+t.y*this.d+this.ty;return e&&(n=n+.5>>0,r=r+.5>>0),i?{x:n,y:r}:(t.x=n,t.y=r,t)}});t.Hilo.Matrix=i}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,i={_listeners:null,on:function(t,e,i){for(var n=this._listeners=this._listeners||{},r=n[t]=n[t]||[],a=0,o=r.length;a-1&&o.splice(c,1)}}return 0==o.length&&delete a[r],!0}return!1}},n=e.create({constructor:function(t,e,i){this.type=t,this.target=e,this.detail=i,this.timeStamp=+new Date},type:null,target:null,detail:null,timeStamp:0,stopImmediatePropagation:function(){this._stopped=!0}}),r=t.Event;if(r){var a=r.prototype,o=a.stopImmediatePropagation;a.stopImmediatePropagation=function(){o&&o.call(this),this._stopped=!0}}t.Hilo.EventMixin=i}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,i=t.Hilo.util,n=e.create({constructor:function(t){this.init(t)},image:null,rect:null,init:function(t){var e=this,r=e.image;n.isDrawable(t)?e.image=t:i.copy(e,t,!0);var a=e.image;if("string"==typeof a){if(!r||a!==r.getAttribute("src")){e.image=null;var o=new Image;return t.crossOrigin&&(o.crossOrigin=t.crossOrigin),o.onload=function(){o.onload=null,e.init(o)},void(o.src=a)}a=e.image=r}a&&!e.rect&&(e.rect=[0,0,a.width,a.height])},Statics:{isDrawable:function(t){if(!t||!t.tagName)return!1;var e=t.tagName.toLowerCase();return"img"===e||"canvas"===e||"video"===e}}});t.Hilo.Drawable=n}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,i=t.Hilo.util,n=e.create({constructor:function(t){t=t||{},i.copy(this,t,!0)},renderType:null,canvas:null,stage:null,blendMode:"source-over",startDraw:function(t){},draw:function(t){},endDraw:function(t){},transform:function(){},hide:function(){},remove:function(t){},clear:function(t,e,i,n){},resize:function(t,e){}});t.Hilo.Renderer=n}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,i=t.Hilo,n=t.Hilo.Renderer,r=e.create({Extends:n,constructor:function(t){r.superclass.constructor.call(this,t),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(t){return!!(t.visible&&t.alpha>0)&&(t===this.stage&&this.context.clearRect(0,0,t.width,t.height),t.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=t.blendMode),this.context.save(),!0)},draw:function(t){var e=this.context,i=t.width,n=t.height,r=t.background;r&&(e.fillStyle=r,e.fillRect(0,0,i,n));var a=t.drawable,o=a&&a.image;if(o){var s=a.rect,l=s[2],h=s[3],c=s[4],u=s[5];if(!l||!h)return;i||n||(i=t.width=l,n=t.height=h),(c||u)&&e.translate(c-.5*l,u-.5*h),e.drawImage(o,s[0],s[1],l,h,0,0,i,n)}},endDraw:function(t){this.context.restore()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void i.setElementStyleByView(t);var n=this.context,r=t.scaleX,a=t.scaleY;if(t===this.stage){var o=this.canvas.style,s=t._scaleX,l=t._scaleY,h=!1;(!s&&1!=r||s&&s!=r)&&(t._scaleX=r,o.width=r*t.width+"px",h=!0),(!l&&1!=a||l&&l!=a)&&(t._scaleY=a,o.height=a*t.height+"px",h=!0),h&&t.updateViewport()}else{var c=t.x,u=t.y,d=t.pivotX,f=t.pivotY,p=t.rotation%360,v=t.transform,m=t.mask;m&&(m._render(this),n.clip());var g=t.align;if(g){var _=t.getAlignPosition();c=_.x,u=_.y}v?n.transform(v.a,v.b,v.c,v.d,v.tx,v.ty):(0==c&&0==u||n.translate(c,u),0!=p&&n.rotate(p*Math.PI/180),1==r&&1==a||n.scale(r,a),0==d&&0==f||n.translate(-d,-f))}t.alpha>0&&(n.globalAlpha*=t.alpha)},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var n=i.parentNode;n&&n.removeChild(i)}},clear:function(t,e,i,n){this.context.clearRect(t,e,i,n)},resize:function(t,e){var i=this.canvas,n=this.stage,r=i.style;i.width=t,i.height=e,r.width=n.width*n.scaleX+"px",r.height=n.height*n.scaleY+"px"}});t.Hilo.CanvasRenderer=r}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,i=t.Hilo,n=t.Hilo.Renderer,r=t.Hilo.Drawable,a=function(){function t(t,e){var n=t.tagName||"div",r=e.image,a=t.width||r&&r.width,o=t.height||r&&r.height,s=i.createElement(n),l=s.style;if(t.id&&(s.id=t.id),l.position="absolute",l.left=(t.left||0)+"px",l.top=(t.top||0)+"px",l.width=a+"px",l.height=o+"px","canvas"==n){if(s.width=a,s.height=o,r){var h=s.getContext("2d"),c=e.rect||[0,0,a,o];h.drawImage(r,c[0],c[1],c[2],c[3],t.x||0,t.y||0,t.width||c[2],t.height||c[3])}}else if(l.opacity=void 0!=t.alpha?t.alpha:1,(t===this.stage||t.clipChildren)&&(l.overflow="hidden"),r&&r.src){l.backgroundImage="url("+r.src+")";var u=t.rectX||0,d=t.rectY||0;l.backgroundPosition=-u+"px "+-d+"px"}return s}return e.create({Extends:n,constructor:function(t){a.superclass.constructor.call(this,t)},renderType:"dom",startDraw:function(e){var i=e.drawable=e.drawable||new r;return i.domElement=i.domElement||t(e,i),!0},draw:function(t){var e=t.parent,i=t.drawable.domElement,n=i.parentNode;if(e){var r=e.drawable.domElement;if(r!=n&&r.appendChild(i),!t.width&&!t.height){var a=t.drawable.rect;a&&(a[2]||a[3])&&(t.width=a[2],t.height=a[3])}}else t!==this.stage||n||(i.style.overflow="hidden",this.canvas.appendChild(i))},transform:function(t){if(i.setElementStyleByView(t),t===this.stage){var e=this.canvas.style,n=t._scaleX,r=t._scaleY,a=t.scaleX,o=t.scaleY;(!n&&1!=a||n&&n!=a)&&(t._scaleX=a,e.width=a*t.width+"px"),(!r&&1!=o||r&&r!=o)&&(t._scaleY=o,e.height=o*t.height+"px")}},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var n=i.parentNode;n&&n.removeChild(i)}},hide:function(t){var e=t.drawable&&t.drawable.domElement;e&&(e.style.display="none")},resize:function(t,e){var i=this.canvas.style;i.width=t+"px",i.height=e+"px","absolute"!=i.position&&(i.position="relative")}})}();t.Hilo.DOMRenderer=a}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,i=t.Hilo,n=t.Hilo.Renderer,r=t.Hilo.Matrix,a=Math.PI/180,o=e.create({Extends:n,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var t=document.createElement("canvas");t.getContext&&(t.getContext("webgl")||t.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(t){o.superclass.constructor.call(this,t);var e=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=o.MAX_BATCH_NUM,this.positionStride=4*o.ATTRIBUTE_NUM;var i=this.maxBatchNum*o.ATTRIBUTE_NUM*4,n=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*i),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(n);for(var r=0,a=0;r0)&&(t===this.stage&&this.clear(),!0)},draw:function(t){var e=t.width,i=t.height,n=(t.background,t.drawable),r=n&&n.image;if(r){var a=n.rect,o=a[2],s=a[3];e||i||(e=t.width=o,i=t.height=s),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var l=this._createVertexs(r,a[0],a[1],o,s,0,0,e,i),h=this.batchIndex*this.positionStride,c=this.float32Array,u=this.uint32Array,d=(t.tint>>16)+(65280&t.tint)+((255&t.tint)<<16)+(255*t.__webglRenderAlpha<<24);c[h+0]=l[0],c[h+1]=l[1],c[h+2]=l[2],c[h+3]=l[3],u[h+4]=d,c[h+5]=l[4],c[h+6]=l[5],c[h+7]=l[6],c[h+8]=l[7],u[h+9]=d,c[h+10]=l[8],c[h+11]=l[9],c[h+12]=l[10],c[h+13]=l[11],u[h+14]=d,c[h+15]=l[12],c[h+16]=l[13],c[h+17]=l[14],c[h+18]=l[15],u[h+19]=d;for(var f=t.__webglWorldMatrix,p=0;p<4;p++){var v=c[h+5*p],m=c[h+5*p+1];c[h+5*p]=f.a*v+f.c*m+f.tx,c[h+5*p+1]=f.b*v+f.d*m+f.ty}t.__textureImage=r,this.sprites[this.batchIndex++]=t}},endDraw:function(t){t===this.stage&&this._renderBatches()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void i.setElementStyleByView(t);var n=t.scaleX,a=t.scaleY;if(t===this.stage){var o=this.canvas.style,s=t._scaleX,l=t._scaleY,h=!1;(!s&&1!=n||s&&s!=n)&&(t._scaleX=n,o.width=n*t.width+"px",h=!0),(!l&&1!=a||l&&l!=a)&&(t._scaleY=a,o.height=a*t.height+"px",h=!0),h&&t.updateViewport(),t.__webglWorldMatrix=t.__webglWorldMatrix||new r(1,0,0,1,0,0)}else t.parent&&(t.__webglWorldMatrix=t.__webglWorldMatrix||new r(1,0,0,1,0,0),this._setConcatenatedMatrix(t,t.parent));t.alpha>0&&(t.parent&&t.parent.__webglRenderAlpha?t.__webglRenderAlpha=t.alpha*t.parent.__webglRenderAlpha:t.__webglRenderAlpha=t.alpha)},remove:function(t){var e=t.drawable,i=e&&e.domElement;if(i){var n=i.parentNode;n&&n.removeChild(i)}},clear:function(t,e,i,n){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(t,e){if(this.width!==t||this.height!==e){var i=this.canvas,n=this.stage,r=i.style;this.width=i.width=t,this.height=i.height=e,r.width=n.width*n.scaleX+"px",r.height=n.height*n.scaleY+"px",this.gl.viewport(0,0,t,e),this.canvasHalfWidth=.5*t,this.canvasHalfHeight=.5*e,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var t=this.gl;t.bufferSubData(t.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var e=0,i=0,n=null,r=0;r0&&(i.bindTexture(i.TEXTURE_2D,this._getTexture(this.sprites[t])),i.drawElements(i.TRIANGLES,6*n,i.UNSIGNED_SHORT,6*t*2))},_uploadProjectionTransform:function(t){this._projectionTransformElements&&!t||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var t=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",e="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new s(this,{v:t,f:e},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(t,e,i,n,r,a,o,s,l){var h=this.__tempVertexs||[],c=t.width,u=t.height;n/=c,r/=u,e/=c,i/=u,s=s,l=l,a=a,o=o,n+e>1&&(n=1-e),r+i>1&&(r=1-i);var d=0;return h[d++]=a,h[d++]=o,h[d++]=e,h[d++]=i,h[d++]=a+s,h[d++]=o,h[d++]=e+n,h[d++]=i,h[d++]=a,h[d++]=o+l,h[d++]=e,h[d++]=i+r,h[d++]=a+s,h[d++]=o+l,h[d++]=e+n,h[d++]=i+r,h},_setConcatenatedMatrix:function(t,e){var i=t.__webglWorldMatrix,n=1,r=0,o=t.rotation%360,s=t.pivotX,l=t.pivotY,h=t.scaleX,c=t.scaleY,u=t.transform;if(u)i.copy(u);else{if(o){var d=o*a;n=Math.cos(d),r=Math.sin(d)}var f=t.getAlignPosition();i.a=n*h,i.b=r*h,i.c=-r*c,i.d=n*c,i.tx=f.x-i.a*s-i.c*l,i.ty=f.y-i.b*s-i.d*l}i.concat(e.__webglWorldMatrix)},_getTexture:function(t){var e=t.__textureImage,i=this._cacheTexture[e.src];return i||(i=this.activeShader.uploadTexture(e)),i}}),s=function(t,e,i){this.renderer=t,this.gl=t.gl,this.program=this._createProgram(this.gl,e.v,e.f),i=i||{},this.attributes=i.attributes||[],this.uniforms=i.uniforms||[]};s.prototype={active:function(){var t=this,e=t.renderer,i=t.gl,n=t.program;n&&i&&(e.activeShader=t,i.useProgram(n),t.attributes.forEach(function(t){e[t]=i.getAttribLocation(n,t),i.enableVertexAttribArray(e[t])}),t.uniforms.forEach(function(t){e[t]=i.getUniformLocation(n,t)}),t.width===e.width&&t.height===e.height||(t.width=e.width,t.height=e.height,e._uploadProjectionTransform()))},uploadTexture:function(t){var e=this.gl,i=this.renderer,n=e.createTexture(),r=i.u_Sampler;return e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,n),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.uniform1i(r,0),e.bindTexture(e.TEXTURE_2D,null),this.renderer._cacheTexture[t.src]=n,n},_createProgram:function(t,e,i){var n=this._createShader(t,t.VERTEX_SHADER,e),r=this._createShader(t,t.FRAGMENT_SHADER,i);if(!n||!r)return null;var a=t.createProgram();if(a){t.attachShader(a,n),t.attachShader(a,r),t.linkProgram(a),t.deleteShader(r),t.deleteShader(n);var o=t.getProgramParameter(a,t.LINK_STATUS);if(!o){var s=t.getProgramInfoLog(a);return console.log("Failed to link program: "+s),t.deleteProgram(a),null}}return a},_createShader:function(t,e,i){var n=t.createShader(e);if(n){t.shaderSource(n,i),t.compileShader(n);var r=t.getShaderParameter(n,t.COMPILE_STATUS);if(!r){var a=t.getShaderInfoLog(n);return console.log("Failed to compile shader: "+a),t.deleteShader(n),null}}return n}},t.Hilo.WebGLRenderer=o}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo,i=t.Hilo.Class,n=t.Hilo.EventMixin,r=t.Hilo.Matrix,a=t.Hilo.util,o=function(){function t(t,e,i){for(var n,r,a,o,s=0,l=!1,h=0,c=i.length;hd.x?(n=d.x,r=u.x):(n=u.x,r=d.x),t>=n&&t<=r))l=!0;else if(u.y>d.y?(a=d.y,o=u.y):(a=u.y,o=d.y),!(eo)){var f=(e-u.y)*(d.x-u.x)/(d.y-u.y)+u.x;if(f>t?s++:f==t&&(l=!0),u.x>t&&u.y==e){var p=i[(c+h-1)%c];(p.ye||p.y>e&&d.ys?s=c:ch?h=c:c=0)return!1;u>i.overlap&&(i.overlap=u,i.normal.x=p.x,i.normal.y=p.y)}return i}return i.create({Mixes:n,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("View"),a.copy(this,t,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,transform:null,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,n,r,a,o,s=this.width,l=this.height,h=this.getConcatenatedMatrix(),c=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:l},{x:0,y:l}],u=[],d=0,f=c.length;de?n=e:ri?a=i:o>1,n=0;break;case"TR":i=o-r,n=0;break;case"L":i=0,n=s-a>>1;break;case"C":i=o-r>>1,n=s-a>>1;break;case"R":i=o-r,n=s-a>>1;break;case"BL":i=0,n=s-a;break;case"B":i=o-r>>1,n=s-a;break;case"BR":i=o-r,n=s-a}}return{x:i,y:n}},hitTestPoint:function(e,i,n){var r=this.getBounds(),a=e>=r.x&&e<=r.x+r.width&&i>=r.y&&i<=r.y+r.height;return a&&n&&(a=t(e,i,r)),a},hitTestObject:function(t,e){var i=this.getBounds(),n=t.getBounds(),r=i.x<=n.x+n.width&&n.x<=i.x+i.width&&i.y<=n.y+n.height&&n.y<=i.y+i.height;return r&&e&&(r=o(i,n)),!!r},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=a.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return e.viewToString(this)}})}();t.Hilo.View=o}(window),function(t){t.Hilo||(t.Hilo={});var e,i,n=t.Hilo.Drawable,r=t.Hilo.browser,a={_cacheDirty:!0,cache:function(t){(t||this._cacheDirty||!this.drawable)&&this.updateCache()},updateCache:function(){r.supportCanvas&&(e||(e=document.createElement("canvas"),i=e.getContext("2d")),e.width=this.width,e.height=this.height,this._draw(i),this.drawable=this.drawable||new n,this.drawable.init({image:e.toDataURL()}),this._cacheDirty=!1)},setCacheDirty:function(t){this._cacheDirty=t}};t.Hilo.CacheMixin=a}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo,i=t.Hilo.Class,n=t.Hilo.View,r=i.create({Extends:n,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("Container"),r.superclass.constructor.call(this,t),this.children?this._updateChildren():this.children=[]},children:null,pointerChildren:!0,clipChildren:!1,getNumChildren:function(){return this.children.length},addChildAt:function(t,e){var i=this.children,n=i.length,r=t.parent;e=e<0?0:e>n?n:e;var a=this.getChildIndex(t);if(a==e)return this;if(a>=0?(i.splice(a,1),e=e==n?n-1:e):r&&r.removeChild(t),i.splice(e,0,t),a<0)this._updateChildren(e);else{var o=a=e.length)return null;var i=e[t];if(i){if(!i.__renderer)for(var n=i;n=n.parent;){if(n.renderer){i.__renderer=n.renderer;break}if(n.__renderer){i.__renderer=n.__renderer;break}}i.__renderer&&i.__renderer.remove(i),i.parent=null,i.depth=-1}return e.splice(t,1),this._updateChildren(t),i},removeChild:function(t){return this.removeChildAt(this.getChildIndex(t))},removeChildById:function(t){for(var e,i=this.children,n=0,r=i.length;n=e.length?null:e[t]},getChildById:function(t){for(var e,i=this.children,n=0,r=i.length;n=0&&n!=e){var r=i.length;e=e<0?0:e>=r?r-1:e,i.splice(n,1),i.splice(e,0,t),this._updateChildren()}return this},swapChildren:function(t,e){var i=this.children,n=this.getChildIndex(t),r=this.getChildIndex(e);t.depth=r,i[r]=t,e.depth=n,i[n]=e},swapChildrenAt:function(t,e){var i=this.children,n=this.getChildAt(t),r=this.getChildAt(e);n.depth=e,i[e]=n,r.depth=t,i[t]=r},sortChildren:function(t){var e=t,i=this.children;if("string"==typeof e){var n=e;e=function(t,e){return e[n]-t[n]}}i.sort(e),this._updateChildren()},_updateChildren:function(t,e){var i,n=this.children;t=t||0,e=e||n.length;for(var r=t;r=0;h--)if(a=l[h],!(!a||!a.visible||a.alpha<=0||r&&!a.pointerEnabled))if(a.children&&a.children.length&&(!r||a.pointerChildren)&&(o=a.getViewAtPoint(t,e,i,n,r)),o){if(!n)return o;o.length&&(s=s.concat(o))}else if(a.hitTestPoint(t,e,i)){if(!n)return a;s.push(a)}return n&&s.length?s:null},render:function(t,e){r.superclass.render.call(this,t,e);var i,n,a,o=this.children.slice(0);for(i=0,n=o.length;in?n:e,i[e]=t,t.name&&(this._frameNames[t.name]=t),(0!=e||this.width)&&this.height||(this.width=t.rect[2],this.height=t.rect[3]),this},getFrame:function(t){if("number"==typeof t){var e=this._frames;return t<0||t>=e.length?null:e[t]}return this._frameNames[t]},getFrameIndex:function(t){var e=this._frames,i=e.length,n=-1;if("number"==typeof t)n=t;else{var r="string"==typeof t?this._frameNames[t]:t;if(r)for(var a=0;a=i?i-1:n,this.paused=e,this._firstRender=!0,this},_render:function(t,e){var i,n=this.currentFrame;if(this._firstRender?(i=n,this._firstRender=!1):i=this._nextFrame(e),i!=n){this.currentFrame=i;var r=this._frames[i].callback;r&&r.call(this)}this.onEnterFrame&&this.onEnterFrame(i),this.drawable.init(this._frames[i]),a.superclass._render.call(this,t,e)},_nextFrame:function(t){var e=this._frames,i=e.length,n=this.currentFrame,r=e[n],a=r.duration||this.interval,o=this._frameElapsed,s=0!=n||this.drawable?o+(this.timeBased?t:1):0;return o=this._frameElapsed=s=i-1)&&this.stop(),this.paused||0!=o||(null!=r.next?n=this.getFrameIndex(r.next):n>=i-1?n=0:this.drawable&&n++),n},setFrameCallback:function(t,e){return t=this.getFrame(t),t&&(t.callback=e),this},onEnterFrame:null});t.Hilo.Sprite=a}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo,i=t.Hilo.Class,n=t.Hilo.View,r=t.Hilo.Drawable,a=i.create({Extends:n,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("DOMElement"),a.superclass.constructor.call(this,t),this.drawable=new r;var i=this.drawable.domElement=t.element||e.createElement("div");i.id=this.id,this.pointerEnabled&&!i.style.pointerEvents&&(i.style.pointerEvents="visible")},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||(t.transform(this),this.visible&&this.alpha>0&&this.render(t,e))},render:function(t,i){if("dom"!==t.renderType){var n=t.canvas,r=this.parent,a=t._domElementContainer;t._domElementContainer||(a=t._domElementContainer=e.createElement("div",{style:{position:"absolute",transform:"scale3d("+r.scaleX+","+r.scaleY+", 1)",transformOrigin:"0 0",zIndex:"1"}}),n.parentNode.insertBefore(t._domElementContainer,n.nextSibling));var o,s=this.drawable.domElement,l=this.depth,h=a.childNodes[0];if(s.parentNode)return;for(;h&&3!=h.nodeType&&(o=parseInt(h.style.zIndex)||0,!(o<=0||o>l));)h=h.nextSibling;a.insertBefore(this.drawable.domElement,h)}else t.draw(this)}});t.Hilo.DOMElement=a}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo,i=t.Hilo.Class,n=t.Hilo.View,r=t.Hilo.CacheMixin,a=function(){var t=document.createElement("canvas"),o=t.getContext&&t.getContext("2d");return i.create({Extends:n,Mixes:r,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("Graphics"),a.superclass.constructor.call(this,t),this._actions=[]},lineWidth:1,lineAlpha:1,lineCap:null,lineJoin:null,miterLimit:10,hasStroke:!1,strokeStyle:"0",hasFill:!1,fillStyle:"0",fillAlpha:0,lineStyle:function(t,e,i,n,r,a){var o=this,s=o._addAction;return s.call(o,["lineWidth",o.lineWidth=t||1]),s.call(o,["strokeStyle",o.strokeStyle=e||"0"]),s.call(o,["lineAlpha",o.lineAlpha=i||1]),void 0!=n&&s.call(o,["lineCap",o.lineCap=n]),void 0!=r&&s.call(o,["lineJoin",o.lineJoin=r]),void 0!=a&&s.call(o,["miterLimit",o.miterLimit=a]),o.hasStroke=!0,o},beginFill:function(t,e){var i=this,n=i._addAction;return n.call(i,["fillStyle",i.fillStyle=t]),n.call(i,["fillAlpha",i.fillAlpha=e||1]),i.hasFill=!0,i},endFill:function(){var t=this,e=t._addAction;return t.hasStroke&&e.call(t,["stroke"]),t.hasFill&&e.call(t,["fill"]),t.setCacheDirty(!0),t},beginLinearGradientFill:function(t,e,i,n,r,a){for(var s=this,l=o.createLinearGradient(t,e,i,n),h=0,c=r.length;h1?a.slice(1):null;"function"==typeof t[o]?t[o].apply(t,s):t[o]=a[1]}},render:function(t,e){var i=this;"canvas"===t.renderType?i._draw(t.context):(i.cache(),t.draw(i))},clear:function(){var t=this;return t._actions.length=0,t.lineWidth=1,t.lineAlpha=1,t.lineCap=null,t.lineJoin=null,t.miterLimit=10,t.hasStroke=!1,t.strokeStyle="0",t.hasFill=!1,t.fillStyle="0",t.fillAlpha=1,t.setCacheDirty(!0),t},_addAction:function(t){var e=this;return e._actions.push(t),e}})}();t.Hilo.Graphics=a}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,i=t.Hilo,n=t.Hilo.View,r=t.Hilo.CacheMixin,a=e.create({Extends:n,Mixes:r,constructor:function(t){t=t||{},this.id=this.id||t.id||i.getUid("Text"),a.superclass.constructor.call(this,t),t.font||(this.font="12px arial"),this._fontHeight=a.measureFontHeight(this.font)},text:null,color:"#000",textAlign:null,textVAlign:null,outline:!1,lineSpacing:0,maxWidth:200,font:null,textWidth:0,textHeight:0,setFont:function(t){var e=this;return e.font!==t&&(e.font=t,e._fontHeight=a.measureFontHeight(t)),e},render:function(t,e){var i=this;if("canvas"===t.renderType)this.drawable?t.draw(i):i._draw(t.context);else if("dom"===t.renderType){var n=i.drawable,r=n.domElement,a=r.style;a.font=i.font,a.textAlign=i.textAlign,a.color=i.color,a.width=i.width+"px",a.height=i.height+"px",a.lineHeight=i._fontHeight+i.lineSpacing+"px",r.innerHTML=i.text,t.draw(this)}else i.cache(),t.draw(i)},_draw:function(t){var e=this,i=e.text.toString();if(i){t.font=e.font,t.textAlign=e.textAlign,t.textBaseline="top";var n,r,a,o,s,l=i.split(/\r\n|\r|\n|/),h=0,c=0,u=e._fontHeight+e.lineSpacing,d=[];for(n=0,o=l.length;ne.maxWidth?(d.push({text:m,y:c}),h>1;break;case"bottom":_=e.height-e.textHeight}var x=e.background;for(x&&(t.fillStyle=x,t.fillRect(0,0,e.width,e.height)),e.outline?t.strokeStyle=e.color:t.fillStyle=e.color,n=0;n>1;break;case"right":case"end":r=a}n.outline?t.strokeText(e,r,i):t.fillText(e,r,i)},Statics:{measureFontHeight:function(t){var e,n=document.documentElement,r=i.createElement("div",{style:{font:t,position:"absolute"},innerHTML:"M"});return n.appendChild(r),e=r.offsetHeight,n.removeChild(r),e}}});t.Hilo.Text=a}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,i=t.Hilo,n=t.Hilo.Container,r=t.Hilo.Bitmap,a=e.create({Extends:n,constructor:function(t){t=t||{},this.id=this.id||t.id||i.getUid("BitmapText"),a.superclass.constructor.call(this,t);var e=t.text+"";e&&(this.text="",this.setText(e)),this.pointerChildren=!1},glyphs:null,letterSpacing:0,text:"",textAlign:"left",setText:function(t){var e=this,i=t.toString(),n=i.length;if(e.text!=i){e.text=i;var r,a,o,s,l=0,h=0,c=0;for(r=0;r0?e.letterSpacing:0),e.children[r]?(s=e.children[r],s.setImage(o.image,o.rect)):(s=e._createBitmap(o),e.addChild(s)),s.x=c,l=c+o.rect[2],h=Math.max(h,o.rect[3]));for(r=e.children.length-1;r>=n;r--)e._releaseBitmap(e.children[r]),e.children[r].removeFromParent();return e.width=l,e.height=h,this.setTextAlign(),e}},_createBitmap:function(t){var e;return a._pool.length?(e=a._pool.pop(),e.setImage(t.image,t.rect)):e=new r({image:t.image,rect:t.rect}),e},_releaseBitmap:function(t){a._pool.push(t)},setTextAlign:function(t){switch(this.textAlign=t||this.textAlign,this.textAlign){case"center":this.pivotX=.5*this.width;break;case"right":this.pivotX=this.width;break;case"left":default:this.pivotX=0}return this},hasGlyphs:function(t){var e=this.glyphs;if(!e)return!1;t=t.toString();var i,n=t.length;for(i=0;i=this._targetFPS?(this._measuredFPS=1e3/(this._tickTime/this._tickCount)+.5>>0,this._tickCount=0,this._tickTime=0):this._tickTime+=t-this._lastTime,this._lastTime=t;for(var n=i.slice(0),r=0,a=n.length;r=0&&e.splice(i,1)},nextTick:function(t){var e=this,i={tick:function(n){e.removeTick(i),t()}};return e.addTick(i),i},timeout:function(t,e){var i=this,n=(new Date).getTime()+e,r={tick:function(){var e=(new Date).getTime(),a=e-n;a>=0&&(i.removeTick(r),t())}};return i.addTick(r),r},interval:function(t,e){var i=this,n=(new Date).getTime()+e,r={tick:function(){var i=(new Date).getTime(),r=i-n;r>=0&&(r=n)return-1;for(e<0&&(e=n+e),i=e;i=1?1:s;var h=r.ease?r.ease(s):s;r.reverse&&(r._reverseFlag<0&&(s=1-s,h=1-h),s<1e-7&&(r.repeat>0&&r._repeatCount++>=r.repeat||0==r.repeat&&!r.loop?l=!0:(r._startTime=t(),r._pausedTime=0,r._reverseFlag*=-1))),r.isStart||(r.setProps(r._fromProps,r._toProps),r.isStart=!0,r.onStart&&r.onStart.call(r,r)),r.time=a,r._render(h),(o=r.onUpdate)&&o.call(r,s,r),s>=1&&(r.reverse?(r._startTime=t(),r._pausedTime=0,r._reverseFlag*=-1):r.loop||r.repeat>0&&r._repeatCount++0&&u<=e?(c._render(s),c.time=a,i.add(c)):l&&(u<0||u>e)&&c.start()}return l?((o=r.onComplete)&&o.call(r,r),!0):void 0}}},Statics:{_tweens:[],tick:function(){var e,n,r=i._tweens,a=r.length;for(n=0;n-1&&r.splice(e,1);else for(e=0;e=i)return void t.fire("complete");if(t._currentIndexe.z})},tick:function(){this.sortZ()}});return o}();t.Hilo.Camera3d=n}(window),function(t){t.Hilo||(t.Hilo={});var e=t.Hilo,i=t.Hilo.Class,n=t.Hilo.View,r=t.Hilo.Container,a=t.Hilo.Drawable,o=t.Hilo.util,s=function(){function t(t,e){return e?t+2*(Math.random()-.5)*e:t}for(var s=["x","y","vx","vy","ax","ay","rotation","rotationV","scale","scaleV","alpha","alphaV","life"],l=[],h=0,c=s.length;h=this._emitTime&&(this._currentRunTime=0,this._emitTime=t(this.emitTime,this.emitTimeVar),this._emit()),this._totalRunTime>=this.totalTime&&this.stop())},_emit:function(){for(var e=t(this.emitNum,this.emitNumVar)>>0,i=0;i=0;e--)this.children[e].destroy()}}),v=i.create({Extends:n,constructor:function(t){this.id=this.id||t.id||e.getUid("Particle"),v.superclass.constructor.call(this,t),this.init(t)},onUpdate:function(t){if(t*=.001,this._died)return!1;var e=this.ax+this.system.gx,i=this.ay+this.system.gy;return this.vx+=e*t,this.vy+=i*t,this.x+=this.vx*t,this.y+=this.vy*t,this.rotation+=this.rotationV,this._time>.1&&(this.alpha+=this.alphaV),this.scale+=this.scaleV,this.scaleX=this.scaleY=this.scale,this._time+=t,this._time>=this.life||this.alpha<=0?(this.destroy(),!1):void 0},setImage:function(t,e){this.drawable=this.drawable||new a,e=e||[0,0,t.width,t.height],this.width=e[2],this.height=e[3],this.drawable.rect=e,this.drawable.image=t},destroy:function(){this._died=!0,this.alpha=0,this.removeFromParent(),f.push(this)},init:function(e){this.system=e.system,this._died=!1,this._time=0,this.alpha=1;for(var i=0,n=l.length;i>0]),this.setImage(e.image,o),void 0!==e.pivotX&&(this.pivotX=e.pivotX*o[2]),void 0!==e.pivotY&&(this.pivotY=e.pivotY*o[3])}},Statics:{create:function(t){if(f.length>0){var e=f.pop();return e.init(t),e}return new v(t)}}});return p}();t.Hilo.ParticleSystem=s}(window); \ No newline at end of file diff --git a/build/standalone/hilo-standalone.zip b/build/standalone/hilo-standalone.zip index 328d1be3ca21620461187e76b834ebf2a8bdeff4..db6af916ee732ad7b2c461929ae3f19b40103cff 100644 GIT binary patch delta 181429 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%0D58SKq_L>sgq4;yUl*TQoHQ}5riqh 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�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
    Ql|{1D><*3BVH=MbQ2m)`H9Vfq^k~LL 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 JK5RR?RK1}p%YP({Bit1*$ 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%0AORV!qpFa@&|9i9m? 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

    XwMV=e}JG2OVy3dm2MIyH(H-?8tqh8YpTKb8T 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%0ATHltaCU>Yvk>1tsn| zCVRB+)o&s$(k%}c=(~ro7MMpVoiT?hMyBsgG+Ultvp|L1<_=(L7LqH${B7#(YKN zKF3m$mtM#DizIJl3$Br?WI>sMKF0$cl|utT*m#{lQR0=@uGBQq?SG|RlD+5Ss65Vo zPq0ujDY9ln&4q(S`J$)6*uqIMLFvH$akl^{CN+A0aA%u<(v0(4#KhzghdS7Ca@z>L zdKJp<6`It$h(8{VD+Z2bMG%Pz@%nN)=3aDZ#iCV8&F;QV9d}krk+>@sP5NV9h_z0hlw-YDJLc;GnHVb>2~}Rfow1*{dESt1kdX ze^et#(Vnh=G-ceqqwzn*Y@nlYp)fEgJ9Pg_zRJ?23^e1MZmwM5F5(yg%tnpuwYIe5eb6#F(uCX5&pS(=!$dpJR&#?3J|k}YJTwu zzfo90@9mkMY-_U9tavzt7>>}x9_;-#X!eB4Dbp?`QgPr;R3#Te%w97jslo}RZ@$*&D$@2wW^w>vQAk_o z)}1!yXXCz)A2Zx_OlB-a$5wuwo@Y=jFFXxLX$q>6xV;-2>~^0*c*fU~gato!asp`U zbD!diOi`ZH&CamNcgN@EJlfz`Xs-B_)AKPoI3o)06b4-n zEfN_`Yl792JpZ<;N7iP)Uz$z=Is(9d|I(k-<)yMG>EB!m;4c{Q)2)XAy8g zSH|PET5n;g`nL<{ALV+ACN;|Z?H$)Mwa1gVmu@SBx}+#ju_{c#{06P4*zR3)>Hp zZyk6jO*u0jO`Sbq4cm)-8}23_SDl(Xb}_7syXm991N>0Zy#+Hu|MNLP-y?T_H>x;* zk>Lk7zNc?!p;URRGm>sWs_N{@?T9fovL+LKOui@0Mm{FRgV82X|LxQb0cpLAc)E&> zOxEz*`o&Iii%uW(N428L#^{enwTI;}fB+ur-Rl$f^UF**tW>)y-H&pP4EiQsc62X( z%QXbXAAmK|Gyo8=2+6-UWz6M^?kmzSQbD%OpP&mcgk}NRyJ|kg6i%YHKqZ1-@XTHP zAyH>&8KoNSns0;-uNj~{puYk1@$DI?OGe|6rmxJ^A{nFpb6)fIR1fIAfY-KY++BmQ z)hOelG!5fq6NAe~bqsBElJNpT5PZ&fVp2GGxnUP=-EFe|QS89O*JcOCN0+stR% z;}U=R9k){BG5n_l%7fc4SQo6bDOoxZ-M|a@fw?V^?+lO*s9!E5oqAGSL%rR7 zArwzWNqeZ=|A%LdfAn8*fKG*O!1o%Vw>A@kA13dYjK#iJDay(E5Z6gU`VJtZW9`3L zO##5@mc3hsWfdQpLnY2xV>+upc_tMD`BPgxQ7_rC(sslr^|axknr|#?e*euBp{0X2 z8prS$GW{7Z^5p({G9CPs&A`u_(fxJyxBq4Fp?uknVJa97n_ii@n`fo&QL8kA!m+=F z^l3E_TKhHu6UikDtrZ-164vrZIc!((SRde8Iwj2x#)c4E-RVo`bV&oHfzQsCE@#gS z*OU@6L5qrr4vKTfuo;nQQmM}^+DVxM>K7!VPl^m<5@%j2B4Ue0VyCu)JIV|}Rd_W9 z_)vhhFfni&=1jI$;c!L9g6bH=rDTU?4tpg7KEAmTBvU&QIR@5901r~h;%|}}^ESZF zWBkZ#@YGJfVBvsWFWR-rX_F=wcJc2Np9TI3s-WU@e&fZ8VMEO8!Y%iLn}D4p>TZ3E zl;qz`i&k(Fn)|J=1~!;#18W=Q$myt4Od-FTM1A<8bg{VRA7EhNc4tz-sxO>E^L3rZ zmtYaTqnp1;P~qWV-Z!if`@l1I=?!o?vw?xFu)R5G-_MVfdy~S(n;k4JMh~{37a*H# za-6tqi6j@5P`bU^o6s28u`S49X4VAiw@~KiIPKK`q@su+^I~7^Q!M;5z(Q>qKeU1o z#h?bpVxnrl@)g9KC~^ch!87G|n&J3g*trLpEDuQAxZFmz|J z0K56QppORO(!)E|8D<*jxVu5qg@+U2sa~aT$!)!_v^~2L1-^SLX?im2@$_eV^Q0`x zl|q={6+I9%C^?4Gid35oax|cdu}96#*BpG7sP~zJa4(n%bUvaQqr=jJ&Nklhg4+o} z{6b58Hx)RV=z1-dBmFLCQv~!%wbHOg^SSaPBp5*g;+-&H1_qmsIe-P(YsdW8Yv_$U zI>?r)-niOvDS2L@5L&;}Rg1rsYAiir-`b@q0};JqdrI3d$byHs91nmx1P(XO4fCm= z58hy&zwh@tf5%+IBIGk|y4N*jIOnkx9)6gsxjB5Bou>>_aQx9_KuI2tHhl`+;grVZ zo_c%bTCwbT$SYI*EXpK;$QyB>u*(@3!o^_OD;*Ddb(O7)bM;jA=Xi4F$b#Oly&&RK zGLAm0dqoe#{$ZabcOihfB|~epQxLhzbJuME!lIr(!4Xnq?RD-E6`o}mslZ$*;}y1k z7A8F8`@8BFt7aEMTe_qj3zWVV#TV%R-(C_*Ho>+2?v2}h_s0L9`@q%0#En77#o5`; z_J8VDDzbLiOy9m!^%TAwU4StcX)r#9rYfjJXac+He1Ta#&+o;^&br}TK%PQjNrN9!#@XxS$Rx(-!~H2Na-vRXqCuc9 z^sJZW?>YsPVkt(j=AT_#ANU*md$&dnu4O+CH961iCE5|Y>;QGE<&0qNM>$Pj z26s{#(t`&4(kqHw8n7g;MykMz{=>NyCA&%J5MV-W`k%rIg_GcP4Rz)^f7bRXG&u1Q z-hy`3w8*75zX%XkK0(%j_(z##ZE^F|B*oC{t00uY%xNvhVH8y@N{UllKF08g)N4qX z@is87kwN(fvwThAT>vgthhwVfi`53i^$R@c>2pCrCi`_)**R+l{Ao&NJ4<%QC^$|EJ;e7eQ$1B54AUlH13cdV6`!U}WM z@IY()#@Kuis-B^eK5+M}=C6m^U52a42q9-ZEP0#PiO@$Vxw%%NTl-Lf6M@H&6}j)- zm=#W&)@g+i0^pg3U&uOYYn$e+^C>EAVvKfU#|PxKx46KrZk@V=Tm=2$j_G|rFMEi{ z*4g>#?d`^QCo3$RNNe5olqdC0*q|yu7bUNqN=jFKUlMGrAT;;Q}-_?|0{U_ zTek}M4@&>hK~fIqz+K-c{ruKK-zZIHmVlW6 zV4SD6Z$Dhh*+WR7%o0aflZh)@bLyg&fU^U|GIy<>Cv>3gpbkk_yix!x;YI12qrbH_tni>30TK9W}6K8Gyjy z{^%LU7}N;hf}3P{AK1T?o*SEqOP7o1nL0H-3UVFfSJkPV6K*KLt5Hw;F`C54%QT*{ z{0Idn9E49^B0mfZ8t4La=nx>+GFP6fhK`ei;n6tF-z*m#8-u28upyW%5({1d*pkp> zB*x~6!)n)5%EP*z3svC4x@)R}?own6us!B|8d0?(VEN;_F*$_RH@;#ua2ll`*}UL! z`6!rP4yp~E-%!u-y!eiaxQ;@L47qlL0@t4P8fhI(PhWnZM14`@U9I7@_by#ywuzU= zlFm}hT#g}g%&9z~a@}O01{2K!0K@f~yacyj9uv6+9WrfePP%^1xNPSTl$VJ+D<55~ zIaE0U9ZA&{=oa{Le}DbB8E@7{6z~VN(8YFUYQ3>nkjRE?@1a|hJeg?p+A`eKhP=0lD+_%!Tk0LG$}aQ#Ru@BB0soD6RG9cCf|2&=4(S1&*3P9eEk`6mJdC_(7*N7`Ot_u zmlL|SrSST{JpX!+XMZ%mdj{IyNXPjvlw$z?YdT3+QC7a65w7!&rVg*jIIOP;G+36; zMuM;xycf$ORFlqSG@%V`;jufuN!WVhJu6!v%ZDd>E2Pyuhd88AGd1uTN-+U$QxKW= zany#>N1S_~RxSJ>^S9q)4dk!>+G+k+QT;sBL^n+EBg*ft0pO&dr8CuAWs?~kz@W)y z{c31KGfZg3-S`qfDd9h4O*%<01pfx&@;QF~t3*0t&2+LIJbf>U7*I_C%a`+T05xhe z&Xss5wAvK^$MI;&k{!q1#j&U5J2J@S738x~Mb>ug)EOqWd0QYiW0I5%GNIL=oWzrz z-Keacp+?-%5^`0=Vq^q2rn#2|;9EE_CYv~CZ0VTM@qhzonCEzI$Lsj3LLBvD3?-p! zO`u)K=ByUOosMZg)I?aEb2|+#7>}`|lb0;}$n?k4DEYW?w@mpb-qWeg*TaTO`kh@+ zoY^aJ_Nv^{zHZ6l;lIAYKTLxmji<{93k1YZ|Gf_J`^J@AC;46U@T5AO@i!kzL@!2H z7!DFh^CwynzKqH6Y#hIw3L{3_T$5fW74?#s&6>vmPb2>Ms{4f_Ehhf~>to07YGxKp z6Y8j73>>mYaf( z-$Gwm07R!7>Z{Oi;`_Oi8Jf5%1Eb@ zN4cDd0{C^{N04yg@kdZXHBuukGsces(d||@S|n5PH4Alw-czh=4h+dQ;jjgEd=zV?;1M^5=MBpKB(BCLJh$DY_O?Ige*Oy__s@J8dL!$DIJ@^p?&BZKitYk5AZC0FqN18#x7%ZxmOqS!J94QtI z9IqTiHDJ*hj{kH`5Mv`g8Mt=9OU3pY5Xl;v6FWAH8!jBousRp~!;vV#?0Aa?r4vh` z{&OilJEtD;RydsK7fVuML6D<#3~ zgKn+Sm2W>Q%MU>S&MK#8Af%8cP-1LQ2<~-)(-E8=dc?>$jy%}7oEo}^da#CumTIK2 z9VVO%d80E)Qk8U`F6TOw^fyT(HI)7D2#b=R9}O3Jb&Lzy&7&Btpa7oNr*_9sp4)DG z9KgcK#xf^qVa{ErkwUGx4fcxZV}fC%$1v$wDoyKF+1(ai9G#ghQG_+VAh(gAo8%U8 z!4waYGP76s{TbX3Qc5arn(|&kli<-2f*MN;QjpmM|Q`{Wc2qcw1X1?fSK&yV5lS* z6d_vtaPw7F=pH}e|HIWeHf9nn*gELgwr$(CZQFL<*tR>i&5mu`c84A3=G-rHX8uFf z-c<|F3KOJ2ktGyn$6(nS8!jzHDQM#MIbCY@=py&6n^eVa4OLY3csnPU_5VEO=>1+j zSNL{(UN=B9`HyJ(?fbmEjsdv4doUt7*6rvM!4FGV3h|maqyqNq14s-zXpD=CggtVg zjU>>>QeU>4Ags_18U{wJM+9G=2N3~;Q2a-hDJSdeKie1@p>gB_W0PPuWLGc%i0mLDYusBW)aG7s90 z2{RqithV6EYWmP5v(zKkR{QYBG9oNF90Bl5++ao;cbcBJY7R$v%#tPrdpkO*ZeIHR z-5c-0lRX&!34R-qqt?*+5l!wu35XLEILhP+ZC?Mw-vSi(10Yj|kNhMlEruc0@pAjL z4tqknBT(*y=?B3&iLn{n#5hZt+1l`F!_*|{shrQ)eMJf^+VPiw@?|45bprdo`*5

    wDq7w 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 F{{gGE*opuE delta 179910 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

    d11&oGGr*l91r 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 z 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%0D;R=nLyRl5B_lM0f86?n8b#L`i{i|oyO^Qi=srq zyBFsCs^-5`N3XmWPwJG7?i>1T)9Fia+rj!2y=f_NW;E#qUGE_E(8z(5dNet zO0kfmrh@|>szzllYV15en?Kz1VnH6OxKdOq-wf*OLaiN%qT1TvaJn9PfJtYde0aVI zT<+GtIuZfVslTQiZrnlQ-{~anc>>OX70t|R{ny&vxy`CsMUK7WYxb(1F4N;O;ER9{ z0`E`WF>&PkWGL88W4}@uB7td{>|CnIkE{3DBYq}|!^E}PnV5bYB$)lJbrSn*|4f@NZ# zg}JYvbr(NEMq{E667J&R=ZnK6QyWYai8j1L*jF8}uTG1EIB) zg3CX4CZM5aq8WLGr!??#S3>!sd|>Y$O!Wsp^iGee1&i zpzFq!#YtzYW$fVUS;gDv|^W={l-lwdFwsZB4AJvfi#s7N+ftP*> z)xt4W4$o1%@htoH(_t}gSB$O3`43Wbq|c188;iYwHP}>-06%L_x)iPydBTEp+<(~^ zrfW3G#D2 z!a@#y4Jcg>0?e=R&TZDQw6*mu^6MIVV~ zAZT&PHi#<6ervk$Kz2Mipr3)JY1EMH7>hpGi&FRAO{Ow}W4iPmjt z6&)6y0d52ej~?aK=_3l5nz7}Jv=J82dT9E}_UN=UqtH!+2YYDk?Lh&Kbf^ZscoWpprphK?X#r&oLEih>{Y*Oq z!6w1&sPhm~o%t?Jx0CR0=;IL(WXK;43^S|808zt^lH9<)liV*=wqVy)2y9b{&xvOb zn40>&VvQ>>R$A+jocwEIq|&f^(qiFdOVg;7gMPW51!zr8FpTN4Y1OA5o24y%pgsSJ zY1z5NohAA%tFD=A6Pp4pFW4_88nj+ogI8x=y?aUwggX(i-z!~NTeELByI1)>ertqJ z0Q--ZbHBZhUB0e!R7k3Q>0${XVH(@DfR=$3EsK|`S27ybJ34S0qagBb$-XSz7yIrh zeE`@FV$(-Ymc7Mo-jaLmx6S5F@N5kSSie`Fi{C{|ulG(=)wKaBVM>C{zlwp>#Fj^p zUq)>^3(q>NmT(wt8fvfH$mWCg$AM%YK;c9<=3euS@xF!!sCT~Jm0nT9QoGJjAAwur zJ}GoGlni#GaB%GcW+r!1@w(L>=gL?!X&u>r{dYbP`Q@=k@RmK4n+C;8IknlRz%;(sau$s2d(LfCtR- zDe*oYJS-eOd4680!A$kyPQEmIzdTv)Ih1cxKP~aSWvdbP-9lO0x2-`18oP4ND|?)Q z&%awUNLGwb(TxIpy8>7^&+q%`y>;ydgSFwSIKF5SZ2(XTMHf&IBBF+;kF~c1wkIg9 z@*^VRA2a=Z6qaQ_O}LMBhgkK6KfODh>&~+Mu~O8H+Fd;P_zjs@!2m+M-><6Q@8lHnF*uOBJ)pww45FYg=LBUaXya^Bwn~MCb4)^6i-k2I zy9C5BHSqZqTt~fa7ma#7P}pgO1&5WBs_^$S+0w7;TdiFs-b`6%}XXz zFU7kVx^A($L+d+UDR)jCqxUk868(0xTCPK>pYt5>Xiwc-ty3Dna6 zV9060Nd_kiTUavr;tQvncE;8znLS z@ZtgN_=ZBPiF-&&p71O(r0ciok23h%ChD6)2lOL@Ok_F)&B_2eovPecrKv?I4AJXnQv*x)twDX90_;uCs zfzr<}WUunPk;|R5Oj;wCe6iq-YIR~Y@!<&&x?IU%@QBzkXPc;tW>n`vrmk^@`0+dD zLlnR%It4E1%yiuk=AgB~)h>*y^cHthND$9sJm6TUF+j%Jb~yYc5fxT%WR+YECwx|9 z>j>Ihn9S#+ZW>I2a`g6HefgVdU4<+nwJ&fTTelE;gFr(XZ?aJe{Au~%Qb}t^wmlRe zSrDixEhe7wtYl-g)}E=6=61@pa>BeMRe^2wae3%H0I;F&uk&idAk|UXRSD&Vz>2z; ziFjs$TI*?)1?o;VhAvI_VZJjjYZ=b$YHPD^3l6 zdE%`)gZt^ZUjQ-*AQS0de|yeguV>fLRJEE&RS3pz_vV~V;Qb<0;k#!Xsv1YGe`Wm| zE3xA*wB0N5_{{ZU4}*oYIAldeD3i>{F1;jjqt=Ks=#T6U!=PHw7V8Mp$UC|+q~NjF z$#`cdaA5Z@@2>?bLdvNt=z&R!T!L^afTL5!JBIqQ$N=<+?Ek*Jz*FZx1POOa5r{suC$jC#o+W$EBCn9qSM3mKV z+RR)&gcuJsiANAt(=ehqa@QG1;Y_^+l^{Rj*Rrc}^W`dl%0RKt{O#@K~r|rgk=v=Wkd*6ulg&8*C-+%1)tO#1h4bK^eVm|LvcRs@VwIoucGH5hPuws zx!e~S3%sd)1Kwg;f56OTg|ixpzwUGgydm!9-mPABaXM|ZH(B-ymp*XoBrox}^K}xy z-;7P;c05%X>@+k)6*Xiqr*jM&!5Es%5mA8R5h8KmNra~BlAf-!4Xkr}I5nE){$3F&5u&@nE>%*X>A z!x3zV;d>Ln|C^%a_{VrXxB{jGs0TF%*pg?txi+kXN8wciYbk5kjSf1 zG(2n8)ZHIncB3gEQUFk#GP6g^oLDtzs=v50rmEv%mCRr>qV9Dg`?|RROe6EgyiloX z>7NaUoB{=7-)coUeF)4mo3@KzeI7!zU3Sg9p+xe&}PG znyC4cSTYV?lp3dxQqaWs^Wcjtr+=mx?yPerjeVV|%rJ7&svgZs{S%oO`M}97^Y$b_qvub9{eeqss z3>cKR7)Up)uYVn)bBUym1_c_qSD(Oe059W))-)l`23)}sD z-m|jPaFs^iGHBTVbYBJKwM}o#8dU}^E%d`L_p}q1^=!UV-Le6|Ev&58>a9pL=t=Ly zI@?hQe%4+{#GepCr((YnZFALOp*Q76%yN_Otf=uP*ov61QnXd)kMUS}N(VN~E9leu zG^7wdm9BJ8oMrVVWSI)8^h|Lh@pu)@&Q?h4ZnEIGad2$`rKZxt4InG(9U&1BDdrnD zF|Ct&9SnYH6Vki$A3or%SQfwLVG^!l%#?J|KpM<+OUT>JwShB)X^+sR`{I-L1h5xWkJiE~uk&Up88;H18 zZ3C9~>xmTsR>}IOPU?cX+R&hc_}gY`neNPzm)ZMy_q?rm6=3DJSLJ&IxVx&)1h(yH zrC{Fv>X?QUw~-4s%@ANR*~n0tzT&btZQ0Il&0D6n2;Z&x!zGvI1JiYd>@)oebiC;> z&PDT#jy?!*g)fmp=21J~^8(-L_dsE>8Bmw6OpJs85|uPG#r+90t&@!PAN@&p!F!8z*O_4!8Qs^v zoa`*he6H4V&Dm_ho$xsN=BDCuSEUCy`(%PE)eCnmi-v`StAquZfT1oL&@9KX_4Q(- z+S45rw9{2;J*Z@sO*(V#{oiF)%K96^-otPlqHdo)pPCP7#F<`)K~5K8EL}OT?<=bf z_ByS}eFbfDe)AZd@yLBQfte8A84l@m%Nn@*cAu-LD;jBhD1>y$c zPSdC#fayVcgwnJhfd82b%MRSXYL5#*fjG4IxY5WJkxnjdzZpjdd(UZ6x-JU^l$9xn zo}o~Y#R-TU&&B$qovJDhvw<-#fr;)9dO~3?f*ptzK@JeSm|r?{E9RI5Gg`~$CB4U_ zJ|h#~A)1Kbw^wPcTZFzT9414?ZLh0_Oi}_31m9sa8%smygJl39tJ^E**M+yVSj;g9 zPSL)<*IDda_Q-p5$TB=oY5siosnG-|$J-VJTxyeR@vMI-*T|dMtNZ@))qbKnhwH2F z1ieoj>IYU&pDq=f+yUvw2g=2%F*GMVAs%>ktJ%c>|*j3^j{<- z;`o$}J+<}`SoHxQt7fU&fFWQ7Lp=n@O6r6cHnQ1>N*E;onOO-(pF82|P6AP%P@&6~ zw$5suTxQ17mb-K@(S`qqgJ$QzYeKZ$XEXV(%`q(V>-4@9BPI6~bwOkB zd|giU7#m+RGCt5Fg2vk4-@<6`LrBZ?(t;ueyY!%nKTsMq-;*#BRvf!GwzlSCpn~3` zIR-G|jOxY!Rn@Y7bw=zM!ChcBKPn1i>Ss#QSDUt$&vL07+63%ggdS-~PG9rPPCkp6 zjtJw=oGVCf|^!=;vLK*Wq_oAF3yzzG#Pa&uYAawQK+;V9ys|CNM#<0 z*rd-nX6k28&6x9sK`s+ES6NGFvtq8AUZ0x0jXpM2j?c>d+pFssW6t4OFtM)OR#vob zeJQ(~z>5dt@!TkoI$lH*JhF<=^@iHfc8D;cT!+kDT9SfZICBiN3iD*IFHnqNzW0KE zYjp19jUhDqJq@XPF@$x;Ju-o!Wk1dsX0lq(O3TW?dsL1B4?Lqk^+w+YsaBo)zibs*npS zR-li7HlAS=xL3TF2hjLa-P)tlyuVRwOS>HY1hvZzuwKc0eY&@L=S>rVxG}C26~?5| zya4k8o1|I3026b5>VgECYT;(q{D#out*{+}7dS_vDZBz>U{NL#!95+AaJJK#`H9B9 z=%w>X+Dvg~$)x$c0t*1PE*M*s38PtB{+)$epN_oKv;(34s^#q#5PM$82(to4xaCfn zfm$i~tVA38`h1uJ;@BHeJ=EGedLj+zFi4)8FR0r90>N|bjyj-@2mBboJ8hTd`%4b! zbfPQ599@vI@DJj;_ZO3HYT0e6Glc`vL#n^S=9#*ll;(!lu^gpYu5Pn8T>>+m zWR~_`xjR@tuUsvCH*v|rz&JgBW7=zz@09l2-I!(RHFBQSdz~-kXPeBopl~-(2liWQ z`3QVJlBp56cQOLDf(xJFkVP-DxL6cI`TXuSuo8FdOcEXGImQM&dwHu-Pq?f+q z&(?MQD907@32k%7T%TYI!w|+i4c3RqdYPwxi{`ZP0Oe|@@o+aRh={==ynPeLWo~Jp zRD|EwM;-Fjg>p7u`;!h6F9H6vk2!K0T4r=lPD6*Ya|i%P+FO*$QVLY%m-TM`9HW=jBXvcPy8{4ni~v zctYpJ`OEKj5dR*gNh-#t69gKpVZID;m^mEh@q?O%ZG?hs>FveRB9lt(B-w-5GkyH%e_CzL z{pbU|gRaBMTlj3Zx6EkzZTN1g4{cEe1AqHayat!E*Z%}=MU0x{TnWN{&7C6r!2f@3 z{-4t+6ZZbUlIXvYq<{MSzlW02I6i>M0bPQy+dhQ#N;~i+wMwW@m@Jo85u(pA5l>r6JqyK^mfcMcN}upH8R!=Guo-EzczasSE81( zAoD&MGrrTumG>riGU_f#ul!eO%&c4FahlZW?+~fquGTL6u_<@^c)A>>Cv9w$0VA!{ zly+TuIFQC$jT=eBV#t{HRm!Vu9>#zOyAPv6MyE-RSyOR7%DiF?yKG8+1Flf7PCYFZ zpMRkmw-F(hmu;ts*5WCspZtrAi5^#6@R{vn8P2QE7JpS^lu~IwzG>=>{;{qxRosRyJG~!Zg4i)#W zz?QK&0&5vXT=l(mor62#bTT?-QHTXpDjfsSXMI=>$x=AHSC6tUCB!9`coi;@{|WYyYoYK4j$c8;Ipfy=VltbJv z1aAb*e10himqC9{8(_A~K{Dtk{m&yl$!9ElLerVRRyE66AhiKz`BwN!qdZI>VlTS5{tqVVfbjioYZrCr%Ya!N5qE-E2L9ie0PfT&MqP z5{6XY-aaJO_wy4u3T!RM8DhGPI`d9cY|qcn$iB#!W)7P@78jnhJbpQby3~X+&`bII zs60`&UvrlZpDX40n#zGdji?~0;2H@Hma?oW_az7iIR1-H!p$w#g$4~CRABEW=KH?D z^%i8G5Dxi9A~cpG<4lVFKZ+LL+-6%v@UZID>t^TM~CSJ9|0RfdQ2 z;+ben(%HL(CJbLt)U{10f?4yanMz6cH9INK&pQH7ePrXaeM2&6YZJ0@HUBQ!>l=mX zP12(X7>Vi3aT|uBXH5>xigC`b&)SMd#*p85BT#}Zi%+#2)RV?nE{j#+UfVemf&T?B zXh|z`B_;wodci;9g$}BBqqi1SDF}OHz{Bjw&mDQPZeq;9{e#cp+Z~K+H>K^0umiwb z11od1dyj_NvS9!CKX9R6P{u)}8~>(p(o;4-=m85QOM2E zC;&R_sWHk!*Y_)X4G=B5n`C}fQuv2%zr0=sPXgfZPJ|m)+HeS(Y7PUmo4|tulM|p1-jka0W!2-zK(fS+Lu{>?$%8IV5ZGA(F-hmj{lIR)d>8>fP#r3TR zWQ{P_(-?!UK5}muf6v1HY=|HX)zs=`aCg2%FyqA>l7dD$S9Yuo8l-u`HPs;o)T`3edW!8gK1+z|C{Q3Sa9AUrHeR=!={Yy$**J14%n zzWInie!b#C0!8M_=*AP$hJD<5_K69 zMqE2gC9m&6d?P&#eT^MC{G1SO9}Qyyo;Yp-bQD+m`)iB^kFPOS<=bpO9)-=)@dG1> zA^p0O@~P_M%d&oV7ACQ9djV>4O(-bm-P@qP#`k(h=)lcA4f(n_-w&0dx%DhTColB6 zHaMux1TE-Z_{>vRdL!@b{78z&_9GdB+4ATh{AmLa2O^@wj*ihSb@8ROuh$@^bq3}o( zo{&a($-uvq$K1OS;QWeZdSZ9Ta^*xDf=H(W36U$(Yq1(H)&c)SEC~BO!OxUEG8R#U z(E!KEhFA~ZFIzlij@(FBg2R&yk>ZX2rMjj6jC>m&Ch^}d_53T)NYGZPw zh^ZvRF|%wr=ZT|4`NChQjtFJ^WE7VvG-HR&R_Iyy2&*kV=K*rQCC$*q;Xe^!nSPK? zLOuk+SF|b)f`E#WOftDm=J!&_4zp(}Bl?PXlELCL(~cYDRpAW|c>c5@=4M48dU`g) zQs_yMs1bUk^=z4fKkO~-Nso~WR~f1$3C=4{%f77MBv3N`NZlhlCAb3}>(04mT zC87{E6D^{wY1rVFL~U@iw6#fC*l@L=Q{DV1jEEQy4OOaEsw&hxV`!N*gEPiL2x~jQ zW-71TDgn{7K{nCd@77`J{?IkI9Ni|`@Iy4lYqCSC%-(!1=o)U#iY9JyG9S#cN~V2o z%LLh{#Yn@=zkx`9&)TD(5D@{nAdk`JgVX~Vt*0VUckm^7jbQsx3>geFa7s1xi$MUT z+vp(^)j94M5(9aG3+gi+P-33+)5W>_2)DK>BLY4%ryghofkKL@*7=jIdt)p)O7!=x z(40ntw7}h#PgzJYbkD}YHQa5D+07tIFC(I(lV}vP;?rc3P+1&gYzHwY97ui0 zFY1gQYPxOyi56IH5Zm@G`hx>?0@GJC4D!|dZ6VE+j;+(wYDTw$af%XJ+6P3=4j%XX zDgf;=M3dNs#y%fd5lhvpLkf5T2Up7(1^s7xL;sc$z05ogW>A)GaoHJ$v&q8~iabYQ zRtb0kt*6E;uo87dAioB13S-wvrR+yy-isH6?%e6qj6!3YWz56^-z@EQSST@>)~-kU z-UCSRbx@HNr@(!}m=U2c<=D&Eety>HAb^4$FWY*#GHk9Kqc4q4Y;RV&^5Ij)WV{4? z>&U@$MOZiHZ!33Tk^()`#?b;$)2qb-1gpQ(FKZjd1j&IDHDgC@sCe(sg?jgSE-eSJ zIH7e|ql!ULMAZb<5xH7cB|I2BNl6VDb&@u8L}xZ^Gue)H{Sn)E|A(PErG^>tV}Nz0 zo^P4-1FW|$&}I;BR0Gz*RONx2r7aWj7{PGpF_=N@hC)PW-js2z*z%LxzqA`pd1)|x z5H5^q=xZ9BQOuqC`K-9&-{NskO1HH?Em~%E+)7@_q3_UKMCZf{xM3=*y}oHVwXZDv zUE^FdeXvlV73@epGpBw;hf_9S3xKTmO~o{YftxL77>(RwQ^u%{PkaR?6mWGUA-iU6 zmy}9~n{*m|kf%S*yuwY}kZz6n76#O!lLPhHM3!AT__Y{=`%E5*>z>P3CG! zi)Gap)X$~nUQZ%=V^XviMH*&w`g@2R>I}4?{?Ze?(a0Z_K*-8-t$#L1Hej^!!_naI zB$JP)Vi&S7v(#GZJ$TZYqQR;S()w|{r(!pIc|7VGo#wagK~h|N@j0{N@`an=Vd!fC0e+C`D~?{u}(PyM@rMR=ps5ng7jM zm^`>JnBucO$cLrUJj=OCEF+Gyx10Fdw!q#D8p%G%6CX2YB9T}(XJtw4_v+kv3PA?kX#^oqN zP?N;>s@(FHV}#)7O2JaJ%2a$Tt?I_fn!#L94q=<+=P1w5QpqCGP$F77Zz#W>;u(Ol z*K4Mn4r5dMS0r1FL80D5?DG@>XM3sw?1~r!&~Qv3^jQ+S?$l>1AY>Tb7IH_GZF^}p z#dg){S%24zf7Xcov1bCGCeyWg5*?WzjXcS~r25*ar;~eB+GD%1=`!WVC&vPA-Kh-G zag;6zTH8(z4n+In89j{l4*%WSXbyM0{9DhaJq8TiV8l1aKnQ%+SQ0CU}M z@z@?dSQB1o(UU{~{P&|k)JcSNe(BahcN3{I6^rw=lrcd$35W?m` z-w}=KVQ>jNrNPArr-4Phzkm!ttv;9&L+#74w3K_0IL(f^>cihI-}u=fi(oGUJJ8Y# zPOrN!WHmpN^@YdRV9AlW0!ca*NxpCfl&->+)WQBwG@RCX34hNLhd>{c10|}V-<)M* zv(*nv7lBS4z0e+;@uAu>3~qSR`%|h{S5M@kgIQq|oj;0tgM34G9Gg z95SW`2QabVqab^6YnOLfL6=Q=8aN^dHGuEZb>+jq@8#SLF&58i0NHcz0h?CqwGE8^ z2nia6d)R_FrHsbbJJ=@+71#kTEf)B$2fk5=HVgdzvDspYu@GUnK!htCI+Vo*v&pU) ztC`y#Z*$PZ$YKi?zjY_4g}2Q`Qb1GL3o{xLYls%Rr4{NodY&jUKWI##=8Rq*4bRbg-@-FA@)ex<4ASpV^|YWzw}@YX}H1KbA076l|uzK+54F#vL>8KxQ z6qYwc7`X!Tt>rB8bt4323H&YCWdP6}8hrkRpLj`2|UD zc5+;(vfJs(rr9k(X)}Y8x9b?u3?jL#uBBCTCn%^4jr6dC92J^;9>6P-77n|jYvSl6 z3~0#?$b?p@VMD}lmD6ev_zW4hG8gZ(XKl+rQz|H=Ie=^#BaTu|mWe;)SeeR z4|2+z7w9GpaoOg!+}7dO2SbyzpJ_Z!c&WRU!&*LUl$(=mHA1OIsc99+AmV`1sTiSg z*g|!0XQ}0VcvBSv3tsS=U2n1JT2?5ly0oFRi&_mkm5eoHLzAsTEo#g}C34|9GnL&k zo@M(?-UhKi+Vo+UL>GIEl%0NFwFaAe4qw>Pg-Dnz1_?b|h zMt#)>u6%UWkc3GY+x5M%^%>e=GAwAh7TVsC2207lT&F>1`9w2+?S~sf9z9Efzs$}=X}CrE^7}Wry<61;s#(aM~(@bc)-ak zQoy^%`Y-Ig%x-5%r#C{b_LOFQ?{1NIudrz{4Qvx&G4~Et{S&hoQU$*Vo22I zEOxws7EP_aZPSNNxmyY=tU)7d5oP4iwIhxm1o(Hp-h3wdd~N`Dvuk@jo{vuC#*8|0 zJ#vl^cVF7qZK5c)dOk=ODY<9Iif{0XN^2Snqw; zU%d}+7Fb_Bbp(KO)<>h8Hp;m?e!A0}G$~o}M8BVY8G%#lcG(n}mcH-im!q^U4??ACOea^bd|KjQ$7;{^jY|+@ZZQIt0?X1|gSMtWTZQHhO+sTg2mE>mMKIin; z{TJq}r)pGw$+7 zR`EQFz-JWABaj*;{T;)4m&wluI*QlG1IwqiEHtprK&^(`* zS*fk==-(~s$MN&1A!TX)OeK0s=EKC#qMAm5w=a2YY!3Ym4Yb_X|0G4jq`wnd>%$nUGeb~(xAyc~R{Ntpx{9-4VaQnJ!_UyNZ!seRfRw|-K z7;5Bm0?g*+esT=X2=4-Q>85TpKG`9ldLdl}J-&;nl4#T~&bnQ^4e5KDy~pEO;K#{;kIdEcNvV?*Tt0rT#|3;=nQ70hK^{7z^4>zHhtWeHb5=mgxU%bAN4?<%h3~$OS+LhbJW(g{`Z%w~I+}xgl zVQ^ynlIi;-_moM8O$DHyNCvOJ8M6Lmml(c?%7>^!^Hk9fdOFCi1r~}nGu)DKye7j) z_Z^+2>`8Tvl1pgiY33G=Mg%q*u`gC(&63U^7JJrA`_)yH_Le(@^_CP5I)s_yMmB+@=OiQU`J8XrL~9BEg~yo^v(&+ysoMJlK~d4N#8aa|$Ro%l7u zuDbGq>LYfgb*|R`#$`^rqdVz8oaZ765D?mbby)xB1sXZoyE~gYF<7O3Vu2t7Qnk-T ztIC8>po<`o!ad3>Sl013MOS%OW~xM!G^H0|lafT#BB%;T3e*NfH*XbbfR(;wwIFle zF}=*p7>&I_^&H5|8OvYpLlvK(EF3W6x+EYF!;wnBOj%lbivz@K$5nRCb1xmUDc zEgH$^Aa4l2kql#N_Rwv3tLV)Ef+Yxd+>T0Ton%4<;&TV-$0k^06~#`ZkNCpr`g+AZ zlj^h=}X4sHD~M*YM78z*Puot$ZN!}WB(uxM#Xjln!>?hFOkF) zIKmmv%Y!EIko<4z_?Zw+`r0_GguMDmZMz5L)yIjOxe^CONCH0%`0jLbP_oNNJb> zZjqoy8vTZ?R9N1yOeOsQO(mugSYzg#4oA_9)}PmaV9;k_$a-iBMA#aUUz3nLTTTU2 zp#fZChZg9f4Q!3MQ{{y&bS}Xx8H3A}Crw)M3Ue0l{pIdV3+XKdwq#F$ zJXyDB=&xy(znCG6@epj&KaC6pD|{X@^eIt^4iEXEJ5^ZQ%lFrsGI!+SCFz8@v}vkL zryqJxfb=d~v4zb~tv*w13RuBOJkQvHIyi?jCHMUW5PK~c^VNoH%YUC1*iGIxzQ^F> z-B2HZz0^lQdDspp|GqH$9)F$`{0{f++~|E^>v#f%rCJL;j{bO7oiUX*L2J}Q5o@ZC z=e2WoV8vz~$@t^qbGm#Ic(z_6)1kQ8wBD(dtD%jdHL%UOOu@EXp!XX~wK8=INKYiG z($+7}05`2ZABBfh@&g6UxWPt<3`z(>)k!jWtUt>^mBJ0MC~?A4K3j}e>oHVKC5BvO zIvi3Z)3F8%jYg4DRaWK2lNze0KA_?ycMP=-1b3YvyA_wn9>?Ey45S4{JkP=p30ta0 zk^H20nM)Rc)J@5$f2|wo>x<^oi~jjIy|tkHcojVuI6dgCuX{3o0vuG`3*g<@e!tnv z>1kXLIw=Lja``SmroM@njips#qYv-*tb_`Pq}XX$NGJ?p^O;MK3vtgZ5KEi%P9OWB zdwcPL;tSa9H-%&p>`KfrTO@HC$mv+HI1d)#Nw!i!iA2@S?qko_tZX&$xQCO5(bTD+ zrQbw5c~IT8H(9Hd>`^zIl=qDewBTU5hB@l><5~c?_mQ@{Hhb?JmLB_At=4jW!-s?P zsmJA}VU#wml(OJXmMR3k4^_w74Ht&xZ~WzTuADw?;8g(GiJ!SnK=xHe=j)MRS8FKD zdC%xz*=f*mjy}v8BBQjjny7#q-?-mUZcSw@8bP%^P>z~dDXL$lsCGG&UEP{^_r`JW z7C!=PI+v`pFI-@gk$FTKtd3+OQ2i(g9HpRZ7wfSUCy|#Z8s&_$%+{CVY8C=ZT{Ru} zo0%)ohX&7>1k!~_rLl;Txl~POan=EchMfPBxu9oevEXBv-k{{(JxNm+=!(_HzkGDB zd9K}_57uz0!@jaDJ=SRYX7h66r7aMuncmZGhpW{G{B3gn+DdPngvAul(H8JDTxSwx z4tBA?u#Ce{0keKwgP-T$@+Qy)B>mEmATy-h9A0P0>1=aA(<)~^tnjiwdH*~5#fW&{ zHh>^s7Lt7+hB-4sIGn0S0764CE9&-KD7U37a;G5k^!>jCFxYh;CRad!fU;6+2tbGd zw$__WNMAep`xZ=>>M9%H&;7zKh4f8zJ#)c6*v4fm+$&}>5((KUWZyoNyz<$uSbt7W z=eMO^ve@|r1R`Pzt<^HlqV}CJjz=VBVClsz*}$F$mKfFPVF`Ws_&?CXmHERd`&m@L zpDQPXc;l1`$=Aj(k+yf}Ah0xKV<|iVg{-wvF~nM+u*)2oZSJpLnNvFc{(pLDv|ju$ zs8$bA7-i;ia2VuPRQuKN%8ob%!R-XHpWQ0bAWw~R71dy|4Tuqi z7X43v*zCe~gPt-09+z?KFo$k4VcPwRgvX1P_P@l`HC6Uoym(2n#)8%UX=)_}kZ52y zJ!Hwd&v*o;l{r~ujVu|6^IT1Fd8@3Bya!u0kdRA!?B$KDpca#|-(rfi4itA#PeQk_ zHxlt(X5b`N8A}bM>@hMy@_i8B;!2aH#L3S<9PQA+p$N;-y}r*cZ`$k#O&PM!iN2CI zaS61VVa5ic_s}-#_hx&4EXaie4vYGjNgftV3bw9-xNkWLD%O-z=Rik{GBCVY@-y%W z{1xO|({HtqBTc&D->hra?O*Vl*f6&B7MvG!60BNK&EQ-=1t}?BVP>R`C8eQ~v2xpq zG2evb&r$y@p4&DSTSM@_{OXp$RI}Q~rLfiWq%niU?-TtZ`Q_%i7Cqy*Rg?}Y% z7V@2me7QM{pdOb>3r;6XdyuQI5u+LnD9diyaK3K`DHlUaMD-N;t9UmkOL5`u)8Y!e zuPtf*^x!5_W(W>7E~a}3&8Ucu%?aHMDU`eyVvdJsc8~YtlEng--_2Dx$E-+B+Wm~b zw+`rACui)CDL$$-!SdPw+}~$Kod}XA|47AWBvY{MCgz{_xeDlBa`R0Jv9qV^+(s|Q zn<2h%x<^)y>hEIc6JT}~*N$C%zR>2x`c-zy^yGQrQa*fPm?*4N-NqdH;?|%FM;m?qY4&rH5#8MV!IuKR1-8wWk zF(8H(WY}lu_XO#=@BlvzagNH`_WJBN)%=a-Vo)bD>K2dj7OHvo145=YVS02S!i}&g zs4 zSOu4c6me?q|B^w?qm-IEE|j59NL2+KpkOK7dmXe%>sl= z_L2V{SNjJEHhWM7gM0{*?~jBrmlSb0l}$M)-clXh_DTjnQUkVJ^o_+$lc-lP@$eM8 z*gm;HFt^o9a*KT8iR8QI09iELEPBH8GImEETHl6wRT9FU^ArjAe9nLs7rC#Pt=wvH zK@Pje$KkAf58&-3l5wZ^FN%?rM-U*H;P1nS`%RDM=gCFw&gcE&CgyGmoX5wYHR<24 z<=mSukEhkz-eH#f_GWK_?1Z6MVM2AqL$)FZUwx=tl%AAdwqf4eTB-G4roNq(QOK%vZOAt~%Q~dzy>BTD; zV*U}SD8ER{{P}30*nB)z&$c?^X1U2Vty(M+SF1 zG2qT(=4)c^Ld6RMl;|7`sDMi|{)qs7vhYQVRCJfAWox)x604wC@=sIGqEXYBJI1De zVig))KX`i>#O3`n!4-)dH{k?ub!DqqhYvb0=(2b)XU1D&7ug^)2qkQqqZky%Ha;X9 zL4*lKgp?D+%1zpOqDZBq>A?NPM1TprJ&h^qGca1b6cIfE&B@rpOl`ZxXH~Q>E4k}U zgB7d897tiI#uVYI=R(vr(+{#D6NS)w8{ zE9ezbeZc3_@ZbUXSijr(I%)Lb6>QbGlj1jZm=Q_k$I*^rK#_8eZ(>m1JmPO)vD$lg zEws&O2NpsO-RI$IYXx&>He*NZ(nXQUdgU)oi{2owe5~;wZ)k*>zpHnWPFAD8#w{Vw z@YhhKa7}Jfl*09>zzqgmZ>F5F@&7^^+*J86%Sg>eM~95eC$H~R5ZF}r+#XiiU^;;2 zgifNn>#{9=3=wd+>YG#w8ZKCCOhNjuv>SUpqh(?#qi1yI}n7INX7Av%8Q=hHXOI?%4 zt=7L%`6pkghtppSrz;PBMLI*4b`+oVWZPo5E=>;9_%B;eYHu(xmuIFe$re>pObk_; z=rKP$p{+8ry(!(Su=EzXg-fN+a6p5{c|{ut;x*kZCJ44~?cTpHIJH{-{{8rQ7jXCR z?eZ2es^P<$61SwVT+2avF3lYjrr5&XPZ zwPwDhsI`O$v_!PYuQ*9zb(PGaZy)!Wtkf27f99w^rJae7Th2VXSvdsYrTv`zjl!Y* ztI*090b8)7!&5lHJG7lt*)t^qZ8q)#kVYlB!;J>0yuWU$bEpz&vAeL!fA5vjob3)p zW0NodVqz9CS?@M7<`R?5JvO}X?a+EEB<-nx=e>>y;p>z0^tzFFKMuTIJBCW9ZBdgO zQ_3O$omx!IM;dN_Ug7dPWDYvnV}hDvlAyXmq4lgNV&qDlEBge-$z7c&w zqjRWe&3;yOKRV$Qq%Q=K%H;ZBhq^zd^|EgOT5E~{T2RsFVD}Cv=!fYF|K*WTWDrS| zE$6ZQDrabO_7r4I>AEB~@Dyb(LN{<47IYL56$q)W;qBgU0wv+Hro>cko}eUTiLG^Yy_=U?twwA}6!H6gT z9~e23s;*cS3X^-waYGFzQ)_e7SG&^&UGhUOm0>@z-NZ=&6l#Z3Gju9cR9^4a+e5aX zMA{M4qyUq5T1j=gIc#Z28d>!+vKgdR|DD-jGS)zm4MpL$6@CJGT;1v~ypJ=%GfkNS8KrfoxO>Q#R)jBt*P(5ri_Xk9UF5G233liwUx=DEBC7Y2`IR3l zD~c?S5#-G%@m~Xj>=^~^?ZoIBx&+cEe!}6tk%iaWELC>-O%$-FnkDSy$Nsyfl5X+~ z3UYvZ{?lP4@gp6fD?jna&e6nAp|Tzg;ujer!&IFno4R|mGEbE2uTxFsuTMQ=);K}3 z$Nt$p6qv4PgJ!OTrF%`GtINCKfU46uR3EU|=L=do4P;SLD@&w(#EN5!>(6{306U3; z3UFNrx#Or9;p&jdUXdU-XzXzi>p_meI7PQ&$J-gUWn1Cz;^`V8V*ERcsnc-_QRMTt z)c5G=YX4`XOsV%?iHjPgq}L7W-(RcJA_DZRG!^CR0TaPk6)zeB%6t~q9@I^Wykfv&e@Dz z`qtj}eC4ViuD?8J_FE&PemO|+vV$-rvSeO24Kpb}wlksS8g;OgiRzD^A-;Ioq%v?} zJGQ$#?0F)kvK$6`KaOXJ+)Tn-C;}*3JJLA7Z;`NAT_VA1UIMA}^OyQJ0nq z4yHdYD9S$x3;Vxf1P7oS-*30c1Q&AS1M{RT8D6@<|Hzb#8v!y1)3j#VY6v-;f(pW5 zIVQWXKYxE`EQzPnamVZ)Pb#a$uH$KGQM)BfJ~$#LLBeqK^# zmwe-}kGZq*H=$BN6B0+HaAhf|%mjVu;c(ZOr@O7E&1O{l-*I#}WW)maSfp4thof8-nW7@<)O|Ay1`n)qsMF0WuEJ~S z0F&fDhO7%0UWxBfW00#juIcJn0O7+-#O3KS4t;2s%CNaZ{00TW7lYYW^2sxMbq1OYIKU``e=;{ zC#38b^17I>@&Efz{QF!5@7!*Ne*Q!bXsSOw2sU8aE=vfm=K*a7UOnvUc}`SAQq9Y< zNWDC1tK!GNBtj0v6AdO<0D zBL=X}tt97#8caeqYd|gpeQKFYHqN2`B3{Ui;8Bz?MW=z&9qOMP64Tbq?s2eA65LpE zGCQ;K19ZsuID}4Df6wT<%xm3~5wV>@KXPa+@t4)4O7@6XUqK~DfnM&1(>xDH>c=AR za_!E(Lt|~nV-b)>S{UGFuYax1ZuYBzAp+vNpS@3Atg9*54u<8SuV z-5oDR+#`L@<4L+-3IBWdrahKZZ2G6`g8KQ*KM5Jg!qVpdOosm@Xnv>(I|eIf@fcz2 zK_)mr@XaUsIr&9uHr8A}hQ;i_a*9A|W5#QJ|0wDBh01 z_l#7%9^EV`J90YOMYx>2H{X(T{bJQcCaRDgFFUoxOResH#ADKzQaU9#uoX=NdFIN~ zXuLpBt?+?vI70+(VQ6%7O79Wxk9H+9yRJ-FAkr=0>Z~HG*d^VJmDoMs`TKvEF8v$i zpeU!@Za?hQMyfLth&BM1WA}S^)V#5>5~^meSrwuN^^fl0ie?%9Dz}CNEMqt8a$<7l zK>zgLciKJa624<8GigR2Qr3Lyc+o;a*X(2O92&=xx%yNk zwEDSZo#CgNecpPEjYZn_<}NhFO&fkG6pWn%Qbt;GtLJJL^4f%f9VIAP}j`w)AYz{z5&ROXqie9VP;m=4-HZNcx zZ8_Kzr!^mp{Fa;R+jy`lq0Li+#e>cL@QL%*5awUcSRRUGfnS09r_R`{wRjx23gp9T zjnpk7TH7N^57IKEnOU$OkbvC42sLgi7!2Ehu;>B}%|Z+<2LC2IAY?Se8=!mEh3gV9 z?LNY<1_Gc*MBa1$p7#s}kM@zEv$43cN#r)hoYTKE{JUuIPcAaWit)i)dW~1<35*sc z%dhO~Aeg}ScwviO=ok5uyU4hoJCMC2O_A+9HH-;76gd_!t;_CNiJ19!w$MMCC||y= z(NT<%Hzw6#cw7-@@cK(KDu4n4(<3w&ABl*o6Ia%>iF};rjQU5fW<4S9}g$TJb zL$fMAYi-?M1Arz{S-qU4AI08uX!u3s3XD@O@3;G1hv)BM&9NE8=&C@Lh(Dr*clK_* z(*uUs&5PHBBlrKIj`eTT@#ceqXz_3LNX20TAp+>jkTN3yUR1;g$#g`zXtqRUxVX^e z=URF7heFxXIY2jy$Qo-JI(N5=HV>ZTf^EzwdIedX*)y~2u|EP`4V=?^xphLvP%Q0T z@%fU@ZP$Fnwz!N|1y2OiYaEL;v@`1Hmw&PCp=z#pz{baeK0n^Rq|Gqa%*?Dta|ZQ0 zR{?mE#H(-KJe0N->33ZqDwv74_DSrmvlApoZ?W^y9ipxa?4Bwh@{_tH@9&QSjVrPu+ zsb@S}`g$ok>w3of&p}<4D)tH!0OsE1ltXopEP4UjOGGv8)J0SF0gUuishX;H@==AgE-;-1v-oHQFW7O2k#FDfMsvLO91-!nb zQtdcEFaY!fVpM;{njnnG?P4d#lbe2)Zz4fPs+Yq~JlYHFsu?U($Fr8OEfzPmW*@F| zEm~7OV?!uY6UR+PT09w(*ISZwnw7C*a?hfZy~$y4YfF^a4!@V1w@%Ax%(}i&U9SqV zH%o8KPDIK3nN;Eu+VCYa1$_B(BeF>%2X051XaGjm3##Uu%WSNRr3z+rN7T^2H?h0B zFcaCkz=$JQW}{t=rhhqdY2oSwT`WK+7IVUD0i!5CL4i>hkk>S9U8|kI*mGpekXsPh z0qVb^Bes=}R*oiks$rb!$Cbp0rzD1cj@f+2$uq#3+Hnz1l2lETIKYTWD#qc?4+l=tzigwTBIx6gV9KJHUeJ7MS`Ck z-Q(`yLlP&ix@Z&o`|G#J64QDe!?qP!DsGOIFMeskJNBZ6{(}cb1T%vV+@GC%1l~ph z3@_HEu>tPAW2SI1DB@4BMjpf{;TvNtu7F6-*nU`Z|NAi@p~*neZZ9_c@YrZ;Jmi8e zyHZ$3@#Q1o1Vh$jSY-+Yl8Q zf$=ougIgtO2Yp9@Ff2!4Fe)c;w)FO?Lh4`?rPok^@Nh6Jct_Q(ErnRkjd-3Kh|mvhE}Ev5Dn4z`&8qJ)Zk{ei zrB-p;=ffh*ku1X1upKtXniOT2GXdlsd0C1WaplWD*8~*;NyRi%m_yfCEIKiR!DAC_ zrj%|XX2d6ak<#=+_JSm;^d(`#mcvmfd;*_jv(9kJt_oc2yp??182<3lYBf!9F!tU0 zv9<=Q?W|R(u3e&86d>KdRc*{3b<(@R*K!`_ZWME{0*I5GssfULvJA-s69Gt5AvJ!( zP&+MltNw#}YB`hH1@(My?^`&4mBi83{}8S^BMh}m&`@&^`MA| z=h(=bJOW?_C)c$QOOmV3>A1Xh!QV}|iAebU;9Sg+bX9d2JDVK-hICOz?n`*xQ_qO? zF)9rI?uxAHgvQ%jTO7jWssVr;i0H?Jl{Z5q*3Z!26OUrBha5Xs@qeKqFBhb6l2l2O zM&LuT!jL?%Cw(NLvVeA&_BhHJ2FjvHLkSO`G$)lSc)*Ly!w>Saw~R@dcZ2G8u^P2Q z1Q1HKMn2#3?4|cKGx&O}FV0`API$1J=^#`d$nc?@%FyT3K#ghhc>$IlcrxZIRL2Wi zj1kEu1w5^hUA8i5pIEJ*dy|-s1MZ^WI<0W$?J0|Jb#7&9E1DynGkH%T)_SW@*}q(n z>MfMjy4Igrmc4S_l@%&)eKK$p)lV+4Vcq<5KsUCIglFZ2)?vb@Tc9C4u7dqv&XAtz zm{dZgEtsNUu3x*tfC0cy{>@tqDH6?Pbeo!G9JY|;J1s)14GVJ|ruC#5A=rx?;towP zEfab6-+4#}dp}Wsi7u=#AZIE*R_xv+_4f=tB3s~C3}i{lz~UrjMAbyKD% zjXl&9IJ=0)MIJ(JQySZT0h}(!E2@JyC;wSytxG||hZp~4bym44^DMHM=qq(PKA~a> z=s`A}K$-S71Ylq-!Zp#{m9{!-s!*Q8C-U?hp~kA)ho35AX8a{&GA7J77YpXIgg#^S zuwb!J_j$Qv_oGEs_omlj;h#3mC_UiJNJ4?6PYldd0m6?ccSJ7_0;kJpuDr;oHJUcI zgI@^H)jk8G6qMebg}k$ZoUIL! zfK*ut3+-|&jl5_(TRi8uLlL$O{dt)d)cgEYVElev)%gAkn-uc>wZFUjdGS*F^}Gz| z`FfbF?e%=?WXwn%;{!3ktBynx=-x!EVA&{H)vuHA#%{p&S>*v@BZB@5lq$v#A_)I4 za?zvghS&aS3C2_7_(8}3hX0-+eEtxzST&O2D^l8CgqIaE_U#wwH4b(BTu}KIw&W7oC#NQ+bMBl1kq+YeAAh9rw^Fxd><;fsnxK5s~WQ(w15n84YQIRUuN)o zy}C8xy0xnT(?Roy2f}F0yhGc)F7&o>a&8ULkJwb{KJTxdY=wZ)`(YdR26hW`=s8$4 zW}VH1FMoX=ZGM47l|9&blmp9EckfJCxkST0ZE!R?^~=8#Ugb~i4FcT z>6mz>H9E=o|IchSwU5iQDUt4o)|38Ms`mv~U+6zOZhxf;mUig4+fN>B*zN#l7!e zEn#86;)`Sq;ld$ucSF`<`i$?+nHoA(hlxOHctfa;qHWU`^u?lv8epJ;oEH;4hng4D z@WWAhIMjfFG^c=oY*x^79g;T-?ha!(S8`Mc7DF->C)(L`@>CPX(a$!WXL;SBfs$o~ zIzCEX@ZcN#kCudRb1v($Wi{M!QW$3|!$l3Ra%O;IOd_}r6{Gjn*)PcN`-5q|ZVLHI zNRx|R8t&3@_NUKwV`atlv1~5vwAb1W{~e3VG?aZ&#+lqno3qcd^7Nw5`Sp%~@YjSU zmkhf=Fyjl$r6dVC%OzEw9)Bf`47=L;kWjVJYhk|{QBSF<)J*yd-ebrhSr*yV!zLA~ zj0->uz79U|TZ=9w*E}b}>d>+>rQu6;$K%xA89~T^GyHyaC5VxNmX+PFTYq&k75le2 z9Z?P2rK})*HiRh8gu@vwS)3G${`kf#i4D2c{oEmwlhK-k3Q}`hT=$aY@BfKcJ&1G< zS$-}E4t|CaKYqUd&LaT!jBb{u?u;U?E-v=}jw7lyWt=xTka{jO`g#;6%2Y4i7StQE zQu$G5i=-&!7eq@TBZBDI(DFd?(4(urcecU%LM2U)hMMS*J7F)42zLYU_&pbl71nU$ zY28o;ccC+Br=#RdQjVmZj(XH9qcJ#PC*^Z<_>83(%*N@$RRGOm*E;b|mL4N8>5kKv z0gZw+0uU^cQC^>(#45B&m$kuDOI{AEs1IN9xI<-s`m8`XOx-u7ZaC(r5Ur=66ZB8R zndQ7>**Gs6_b%`m67U{GC@)M>9`OBz+(d%W-(r9gD7y9RkA6RsC>+VfZ{1R-atWY1 zXVY=B@?=Xm@&TL(zu2{Eoa`iOVXTv*Fx}DxQ_tZQ`ZSQMa@WDn!hHpNaO%M+DF<(l zG_W#MEBP?*&2Xg9vvZ@fLYx;k7D+qCUzMZ78x~@MPiCuvOvya_W!)z}+{Z>_==!gj zGm+n5AP4(s)K@v``??nSnh$$(5wQQ{dL27NjnG>O{Yq0kC90%1GY)+{!Da+5_#XB>iEWE%H*~rMgG4T**-voIb^4q zFO=+6s|tuC9U@;Nar5-;b;aHj4$Q`j*^{irw8)Y0-Clg38PmE=X{*(L>-59Ru!jbx zlgLLSivmnNMHBeUt?B8=&2$e;?NlvmVO`=o(Z+_~)-SV+JUKG58*|H^Ev7tX=K1o- zIBa$t`)EaSq751z^7OBUl}*9V^n`k%>}&m_=Y@=?)~ES$$9B1`mxl$9yAa0bFMt?k*E>@nd+H^0N}+-_SSVu*#r%`M z{1p>hyOmMOr}az8;7uC%re}ram6-d!$@y5ms#nd+ehxala1?c&iDAXXB6RB{vukh` z31Uk}HjACWJB?#|w}4&S%)tK;D~;eJ!;lgvVV+uEcFPmxCB%K!47evR&g$VBL$nw^#%r=%vK+EZJHMr{EC{e^?KV@3- zB5+_zzRMQk5^5Z$ksl!5;ksJqeL<5=udB4Zk9)?tE_ZPVWQ?JU2e1FF>cfJI*eRJ`T$Z$ z;#!fF)J7jnYxIdHk!nO;QD+?sA%EV}LHZA&pb<7}4*^6Ki5c)My%4!n%QMW{W1=iP zYUTchLTYPR&;CNYnH>vAuyRxI;hfVD!ZxvVrsE^M4|&K?sKu!oP!KIcvOa_3g*4r9 zohR@)5uA8#swXC3?!lDt5Ghk+VE}RT2C)6XEiY9H1AZ)$QSQ5`pOoA$kL>rtf0C}G zRck1b8JR2}_$%IvU@V3v4U3H^|FUEC!y>1eK>N1hsJTsUqP}v98?V_~E!-S} zFQm`-*ACrGp%*fIms)c`ztMi{GbsTN5!P)Wk_ahP(-_i>*kyZR^gom%wG-ey6@O`X zYf7`iQec$eX1fm&YShF#fDi%Jow?m$y<%4;=XS7hr})fQV?@dhvMc$!v4}q|f*(NO zb|1Hri+Tcm=2}~Ukd{Ld8a4a*7PBzb5-)O*XDWctoPa9 z%eq2O4)v`03aFbyw?eT+@oBpBJ;eg8V*3$U!!|TM<{#1^*a;H|EmY6kqd66#GC+I2 zDta^M2qCwpi(2u6II9!?_s*TAL0GEo57FfCuOieB+4TMIc*Is!S7DP0&F563&9e-} z1bl6fKv`=sFImXQ7$=awbDX{z<8rL0MAY_+*XYXYO<~ez;K{}H_-7lUw23XI)0-SGPiT>Iwc$|dK>&EL~j)GKPm9FmABQaqeb_nr&!3E!(Z3nSBo3AqSpbh$ig>U=6xl zrYw2qzt7Ms=Y{sZ&flN+Zp@4W7X0|ekeOj>1Ta1(18Ju|_N;JKF4B@<_`(fn$f7^e z`C3SmQve&V73|KQC>s{1lg30iM89IZ)({u-O0&)r|K8gDz4}R`lLewe8CEAUEf% zT6HZPGDkw}Lv;|6Sv{pmdFR7BvH?C2Tr=LR&Nj`5M^nQ zEdGwDI|-QJ*#P@Pki$jX(ocE|hBa6s706p)P$4O22F^-@h}3EYnL(|UO5sA-xL6|W zm$w;Z!kvla_-n$DRw{qJTRw1T{Uv!69N(m%oVEZJ`t;m1bs=}OvH5j8c($z3(fW`92B<#bJgH2@v z!W2vDGLfto+f=cJ)I3({gV65E^B7dL26l+hK@tI=GknmV2tb}+i=SGXjzF3AOO+3r z7{_Ym&)5^JkeGwdcIR_i-x!t6yK(Pi55Hx3hN;WvHEB7hlRvkHM)tn&RNi8V3vcvU_f|vFp=VG?#Ow(vJ9u&hmEDK=| zV^$2fWfScy*SPctb+3+s+%>c*@ivE6nEhw}j^Zp_%E^bl8)rG|{0|g&4Uz)Lo@(~H2yHzP>?yiAWf@o$A)EXD1 z_Kd@MUAl=>&k$Q}S(mN9I1iv6OCBZhp&VV={NGGoKYCkxo<(rjls>SfzyBl7|8285 zT<8L{e+Yu#skm}KZFax>569U3fWD5P!XobPxK~$R3J+c6DC{7iXQVEp%Tjy|WA$-U zbcKXFF?{nj{M=}N`hd%fsh|p0&-4%dka<{v$t^;}Uj1y%;2rORfVm@})dNX!4#Ca9 zhU;;iUh9$kM*<>L$sy+8`0XlHK4LR--29kcgkNP@+W=3ks zfo!#gUiP4GhAFCRw8UX8K(~g+iT38r-M$E_t=AH_)sm%R$&h5ri%sQTQ)Si&tnmvn z>OzlFt(0+3UuyZNq$*|<$rJty?AV5anmca_TnB%yu^xG`cND~%tkf+|E;%G>iog?} z?@&W}tFv4=10X9Gli2DTKrE{o^BMEYF6zmmfKV%7LF2((qs*3n1*Dcdgs5|x8Qoei3 z)ZJVh8OHvq*fybnzsO?NG7>}%ndr0TJDR+(^eecBld!X~aj;m7o2ns1-068b^M(D! zy2SfXB5;dn_s~$*3;%VM^pK0VJWokzkjv=xnJ9-5RUjRvp>y$rBcGUXf%q!w02|Qr zDL`0HWePlA;72Ydi`@=*9fAWDYn{h4pO?JlvSRQ+8;V@942;cOU5Z6u*dbX#WFac8 z^gT?Y5c_V@dv<&!DzeljxEW(+zktl5&uZmbvS-859lmuJ!I5L(F$BdJ-z5#dBZ>h# zMy~5u86S@;i7Im^ftV3xnGil=k^%4@5#Y;Jmy_Zk zSz&%GN;nfA0LKrR8lf}?$xMJ3pP@rw0RlleWLVgqPEV*seJ+fmWKsi(IsgQ@Dz#kf zNCkW7Nl$?fMih{9Z!4g5{60njft3bVPDiYZqqejxaaL=BX2Ks*YU?`L>%tu+E<}c6 zIYEZH?Av>Hm?-k%AWeM-J2+)dW0mHTnHNC91uqmZ3&KAf;(%UDGs`C$Wt&QC$|Ez* zc14R85vWZ74J63GP(h%OKm{neQ1D%9s1qzQCCj)Uhfqa1=RM2+N|!=y0lfsr08hDc z_tQj;uJnTYmZM zZXQ5PC%8apdtO4Sko#mH%VGq1L)_6*Z~_DUP5ukK&NC< zOc55;5jo}$KtX0nD@`jV#2X>}kZT@pML_Dd!5dv0q)Hee(or$G*HW4DC@pX%3YMy* z3G#4+tMTRazhq6M$ZUgV4(Mp;%nIw>ow~xs5)u|mh4v!&+Cds>{(@!u#7)zML``d^ zBw$U@3%m94Q5tDu90MSrF9Sc4AK)E>U|9USar#H#*QEMOo?9(eH=g3Wyj zN(23}GDX@0!d_Iwe_Cwu9v=__>`?F?A^hE4?A=Y4*@_1|X##qsPxD8Jsll@ej{+ma ztrz<^8cX45rg$lorhboqs^@%P`(1K5I~x`~AT1!ncF1{Q5UcI@rvRaTCJ&Z5^wJz%FN~vy^V%9w9OrFcXYTsCevO}==6>B@Qs#cY?EcjHr{ncn z0d+zB-uKt(N&utY_o2CY@9WXDz3-o|R>s+{H(u*=VzD~0I3S}t$)L#=X&?+d7BC(H zV-V!J_Ot_u8BTV5*zDzX-qM2ZP4seC7E84n~OWmFUBSPHO5U;rU`uPy~HJodt_7?vmlb9vQa z48LYQTp&1!89hQxDJJ7bCb(wY3Ij%)R)g7O9Zlvb%@=Ag^}(C?AMOIoLO6?D@iZlw6!&`#qc&8XB`vK^#_UOUe;}f~ue=zhq!XI+( z3R@_yC;ek6it-Q0RXp1G=Fu-k_aqU+ zuz3={F z*)&YBGZ8j+vh>knJyZiX8@MB6(D z&YD_!Mc+~ddRP=EjHG4&N*M};cW&7eVH_z=! zgd!aeZ`HIHA$2zel_EO4kH=QRkf-4G2)drAs^i4P81mAq#sZNVJ3Cd435^TqYpJC3 zbLU2tZ$Np>Y|9qe=~eh$K+WKx4sx@;+pdjyota8+v@P8!HLK#bwr#3LtQ)d1FrWfl zHBTg>p7|^wpDwj|=*8gogapIbv$5GS8@kR$!YtZbR}$=8;@;prm??CzD@up7 zHv_`tHc+mZZ7cGo5B>cNFL;3Umjrgg!7je3b?wca?WOmz&V)4TVY6=YbT&P%mrCmA zdGU`WakjO3s4N{*HF9K|je%u0Kj3*xcpU5H!p|LluQR3^m^r7ea%CQ6V|!waEVMg= z!KU^&y-tVKaFs(Ln1qpH>B#rZm7vBgHcILlFK(L!;>9&4Kh=1xyQ{(ZDJ6zxVidTl z;ywZPpZFVX`mc%!nZ8c)J)C5X#mF2trcG+y&C){ADQ)uW6v&PON6^n`Re*aIRBT1Q z5Y54bObglC*}PG$#X?pm=vLs754pX|ifK%C)Vzo^5J9&6gvQ+-CJEaCPTWPr*F}zIU;!SG=6bLUij$FLCLDiq^7GE1 zx!)nw09>+u*1`DcbEE^v0KhV)P|hcO(v(`^_^9LED(BW1i29##twrVJ%jHRq&zAAp zAt1$b)bmjMi!ttjDva-e*Nr&)(pi+qiDbhK^>(NB$f3KVe#p3&{4C>6dgbHb9_;+< z3ba&~sV9srp*J5alscEBTVm%JMuuHZ6gpQH(MBV=jjD>H1f)-XO@NBim=`FwPOsFh zKwt1C%zZ*12Y7gUUeSV!CpEF)1cYHgp|Y=B3LQ0Yu7}7Ov;`RMfy|q$t*R<^+t6F} z5*mMe4-FC}aIC>cUuL2g+azoOu$8jj|HsukXlKHJ-J!8V&NX!f!5JnH?Hn9 zXf!SWNTWhor|zxr3}7h`aSUOIa}}5}GAdDlcWs$GpwE4O)p>U_i7XnDx$wySj>q=1 z(IjHPa;UtD45f6Nd?E_hYoTedw#wNA=Zd+MQjf4gh_b(lGZP=`K~i!gz4S50m2sW+ z$UTIsj}fX34My|c>2T2~UA-=0m~N)^L5D2@pbrNWExIEc{LZhv_tP7;a`o?AUp`0R zw)B~Cf;$-aa367TGv~}zbo9#G5Sjj+DgS=Xv3cl;xa)Z<|!eF$47qG%*#K;U44-xbB+R`>~)hb8^9}7xP)HQl}SQ365Kco zNQ}_UVpn_yXNZk1i-YAFO1jB+F45-oZ&Mh}las_(VQkPlcl`6H84dHEAaDT1= zC9|Z}9Cw48_1b)Dy7Q!3Ak%>ZJFxh*bSe$ABYr_w2t9Rst{1y|* zw^Nij(J~|pOUb?xu!Z9?x)$H_SSENv`;p09dMBzH3>gNw~He{1m{@g6Jzd_)TC;Hq$1_1ACr zqv=}G*e%~gQD+Aw%gjI1)8GRcOCJ%LTOJgklccjr5n0ev3RcXR07dkWOPNR4)>;^- zs}i0ld2STL&28w9ROQ>`0Trs|;}NT(NUT#y)laVgqJiEQxzj`^*E9XLZCt!4Z=~Vp zLUf8ObkRa58%RI>a0CR)K`}|7`g1g3J=qF41iEDDnnRha37XFOa_b0EO&O?)dS6(w zZ(u>CcO>W$QkBrevVnMb%0 zWV8CHIfi~Xr5c-^qoQ=xu~-ob=5(Soc(#gSn>zU!Ygm)Gl?c9hP#M|DuOY$3Dc+l0 zAga;%HUra-@QvmY*LLf`8ye*F>TQGerm&bU#07%nO1hOHKzCqrtx?_`dSbRPV&@^6 z4J>V|_o)axci-(mTqlow2*feO`%vE167%KdwuGi51`k}a`nUg%@b{;eWe}ul>A|N| zsXY!%(EeSu5s(P%u-%}6Odyux-2_aFq<4Q21*DsCMs;1`9Mm#$$zTgM5y7+~ZZz%Z zi{}TzpS#TxK*ljxAGwAU7)LzT;aOl#q-LS+z|O%l;o@J^z57j#S4csYEql8_;X?S`emnBBjd%u9KCuelSC0g zk+fY?rq^d!W6bcPKL;Q)N?i3bLB)>iPN=W(3ZlylFte?FjU#8&xXc6L+6fw|LzVVR z{4Q~IY7A5U&IZUHYRBdj&TnG^?`>%tI25$U2&XG`WajAheWLWrk*&k8Qu|^Qwhf?5 zqstGblb7;`a)A?Aj!D9Gcz-mS;S_bitCrv0krgr=a{rfVW5LjkDldMuS=23ZTXeau zR7E~KfRLbU$b;9$92T+-k0~3D~k_ zmIM}lQh&vxW!x&ZPquTrW>=EC&}rz9GEbgE`5Ty0iEgPH?5TBgN30ok=s+~qSasYD z@(XNSnXG{=upJ~5*!zOLh=Ci_AB1hg4AFoRP?AUwR~YOXLSBg;fLKQy=inJwg`|3| zV)5y$p!_TbtJM^f_^v&&66#VlGtSLq|N{YLA8CYl=~xdv!yf zWpCOP*@802h9+VzP6M}`MoaC&qNG378Gwydlky%_rlDo&rxH+Jy>76dzJxLeys0z8 zEc2^0F%#-q@rJ|1eBcb+RR2BT4Df&RuFMJyGK4=Ecs0WR!ohX-K(JDub$=p3ST7;g z>eXnW=YTFB^3UrGuwXO`Y+9Jh6OyuNpI@&9o&}y6u40y8O=#99Lz#pO@nc6jPjh${ z?(gsYekG>zrXG<7qca|E4u%bv1I9^RYJX~CqB85osgCZ3HMIlniKgFL%uI>VRk#}P<#Jt`TUC`+XAKS)t`4P%W zb`Ajtk6D)6$>ORfuAf8eu6F36w)em1>9S9)S@mtWYYWIvGpiB zOhqc4aYPiZeAnr8Fu4}*ho37av#Qe>=O?NjZ-czYDFspbxY9NHJ^If97ASG(jp_qW z>rQDG%HzDJhFtJLaHeMUJSL`cS(R(PV{4i*)kX5Q(8A+K9WW|=dYEE|BJQ!4oN1_0 z*gOFI@mE>GP?}PLA<$>+7(RDJrW7E>xRftFDkI*T;#u; z&$K7ISZVKET%V0OtY0(%Nh3$3e{kXhD`-0L5>KzMY^8f->>F^!SSM|bp|*4y_J;z{ zSIxVT(%LY7(MZunY7*^d$Tz4oQTmNJ`oFF0iRKD?Iy64WfMuX5@3**=!>6+t%6d%3Wuh9uL$jyS<4R#}_rJ6)0(x*&B~utY}_1u|)WqnX*F6=gdR* zt@T#=b#y4cxnapRr9H$lS1#Zmkm^fOXVPhW0zW%IQN1V^Qcc8wrZZqW3NgD+2@VqM zJ~74vMCt3NkxAwpe;JX4@EDsj;p9?!jeI^;%}Yv132ouRHg*p)uE$}GPa`xVypY!c*vT;}Ju4KH%2s9r< z=&Ut1?<|P{U|qFl_`Bh1jE0Uw|F?N~QFvFpeE@X7*(n2)M$(jYy>TOMG+iJp&&uaj zpy1=S&t}enz_t#TFaa2eXDt#tlCaoNIG$@-j3WJ)`9@^EX;UXFLh{B#xhFr^`MU3B zqi}AaZzt%vZR|DYFPe(3Z%P)7ejkMHdoPI6x;uqB z@n_q9+i5FGad!%Qv?bu=uM$3z57-Yv7aUG5Ffcjm506+o1sF{G5a4sY#9cAhLGTUk zyyEK)fXzQ)!ZfPnG-tk8qo?La7>`f}nhrm9o#i;;!bTfd-MYC~44f2>Xs}-z=qy~< z<^CgfT`gq`S1@l^xc0BZw`y^vn?&r}M~vf0CRV4`k|;}7WGs*#v*(;A@{+fRHuwvb znTfJ-bOQJnt(<=s)(j2@v+iXdvD%F6r+Mus+4IsrVM{Fkg3>0_ga5#6bQy0MrytH{ovxWBd$y+9wqklays)g3!i`>-snLTSG?qxfYQSmFSLRt zS#)Du7iNv;{a*{@@zC)nl6bM%W9^3py2RH?`hEy`V-s|D6ih+en%kCDEC)|kPwjPP zOEafD0NdSCwZ+31;YA9DRd{$ouf8ki9W05kzNgjKT%Cchm5yh7yb~xb)T9(5^KV@} zKJhy0DOQ?n`1#t2vwzmLoqi?dS{Rtz_SHjoo2+v_;$L9*x|O`0UES@>bzrzG6Cj9{ zFy84v_t^_wKeMVF0(4_l8I<0@K-ilj9o-8bP_yMo89gWnkgWcof>6t$>Ygz-aFc(* zqb{`p1DGf=vEj$kBHn{v+TvMBBOW^V-su`!;jx;UHklyeFD$rX8OE>ZV4B_11lx}s z^0CA!LosEzenjeS_<3r$qQQZ|9f$H-R0Q+p!l~}oTn21^+u2%F6F4}wPKkkxpOf4G zbg8$r4Vf+SlU(UQVe%=24W&hpfdKA@&jag}&ER^!dc>Y?O~L}b^j*Y{t7^38ps#2X zANQuHe~;)|q?rJN1DjFiqRw_c&L&26c%lcKerN$?1TbNSZ;*Thq>m0jPm-CU)!PX|RizW$NU7|E6j5>uJ*5!MR& zgx(FVGKVDx@}JqXf*+@D`39?HPzhq+HLu(X!T6t_$bVq}p&KNO+4YZ>kumky6odvK zJaIBNhy$^~4c^dKLbV{uAd1+;nzAlYB&DdTBQChAbgE_>w(<>Vyq5y$bU*?DmA?i>##|6RE2YXJ(q3n;ASa zz(VHMpWT(Ywg!%YzDczyqJZ)~*++vhUX6B?4dyk6JGK_Ra=k@x4+m>00uLdnb4zH2 zMslObsP(iDjb{I!?FUOqiGN^%u??rC1Uhrz9vk-@Em86SBmEdaK_1LDYqK9P&`EEi z8t*PwP9YxSvS4!31Oq50FoJF21V6rHzSdw@K;*$+!qU%c6F`adp0_Vv0JYJe+cHE_3 zghWzNpv~?}S?=cXA1u~MU3+Q}cbq*B`V0X@n{S;VF4=yw5cK8Xg((80|5bS0v0CB! zEjE9*uU;n`_JJJ>{tJheHO5Un z3ib7u>?2BQA*#61kZ2tTPI8|>YEv*+_ScGOcL=tB07Bmtu@3X~CE%X8?zYGw=7dJr zs})_yzC?w)leT^IPaGTo4quhzFdRa=Y1+`r#Uze2_@`oyf(KglAt~(4+2l+sQA=Fi z%Quao=2KxG*riy~@-yZJjGjE=5&R^7*}N$?r(Zu_r0@S2gF9A z^a<)RJ1RV3FRP5>L~W@t=Dlh${e?wIpG5T$o}Voxq7*W$Il&m4bw zdlLVe?%!gXV-LsFow7h5*zPl}nc6I`t4w`ts@+SPub*eEbK=J(@2NN%V|wohFh(J`#n8lHc-J`$8 zS2JGvwAK2A{6DAtf14?4L;AVthi1M0*-oJU8LAofL2v*nia(ZnLAdVQ+O#7-6twBz zh1%Lx~d3AiMF*z%j@`|YC(YYUuieQqGTv?((;2& z#uSjr70Bw%;kUHi$>?ALOJP?Neax{S;B&*)lF-XY)uHKuHr3TAME2+$#$X8jA&^Z+ zQzmV6u<2@@Czo+kcXX?Gf5-2HA}W-x`i+-P9lWUX z>*O;#=8;d9JbX=v504Y)=C&#g-CV1}xbzzj!R=noz!w%O*}>s!?ndZb2;!n6sH*RU z;)+R@Af4>-<5CY*^(|WqjwUSaSPfWl1F?boyrT&W5aj+CqfDfi)w8P9p*w8@3F)(v zP}?@0`aji6|4sLLuajU0Bp@Ki)LUy1ZNLx;^q%kD!OkvtU+m3bsMisZ2YL|Gxz}B- z961w(g;*gI{9%~EwL%uHhdtBum~ZVj=I=p$5%C|hJN61bB!8qLJNcve6z6zJRM*#u zGNy3kjjk1Q>_6JD!W9*y=)=mFXI(}MzBmee7(3LBVlTiE!>_>RiKn1%Sk2 zllo0K^PgvnN# zH&JNNP7m5@oiQUBv4e6)`^dcOR665!9spq0D?dS1DuN)# zkuRAcwF{+m7*CNqsYhOO&DV4{;HUDwKUpo`4~+Z(|* zy@S^t0{I3Z9H0#yaD~>z(inN8Kf3LK^d)G^Xe7DyLt*f$QZC(Ab4X;|zv1y9vkUtC z;{+Q+h6ax$yg8vlts~`&gCU7?mPBot0QTAw?K4GF{LVIB(XAaKg&K6B794^!aupAF z*3aAH#jt)A52d7PPz3}Qbk&UMKzxRh&X&i?h!)EgN=2v~uH}+cc%dBiz+vY!|61>} znB?U&F$g#t#YhV`&UOQqsGQ*cYSUbEd>NJK9o1kzjh`Bnl!j#{FOmuy=9Ti$FQT1E zfeysizD0iXZXc@~7c~B*hSoij#4>g-o$}if)Gfnk0VgeMWdac2PWQe)8gQBK^RQ`W zNSvQZ6yw#8wQ)vb9><{uZb%QL^Y!yn{n|#pYBDwAPMz^rJOP)|mF5(pU*hN43U(tp|^oa8qQB54~}30Fw_vhI+F zzo1~eb?)H=5GX(|NyfsH_y9K~FoY_xSal3BY|%-2vz8DChE7IX^ICcgu5aJuc6bO@ z;CMWhmd7An;uuBHn3gDyaO03w93sg~y(~Q-W}X+mMmD1IK`B^+h%UTN%v79$f_e;n zZ?#byn4uX5lf@ca#WGpU4+{ABFsLWDk^1A?(z0766A_TEU{(E(K&Gf214UfPv0CU@ zER2JbfugO$XLYC{f&?^jBz}8~YJ1B?n{TRSezCd3T8PRNLVZUf%o!Rl7BLu%GMx#C z&d0VtohosRBamw+-G~v+4?LpFo0+?*0Aa6Xm%p{ng^U5#5RJnthpA}*=?%E4>eL+0 z$b!Pi+8i*fCCa1TbYbtoh<3RRofWhB{5!9l3hPf-(TsySr|H~a83us%i22mH_{oOYbBI1b;#dlAzO03Y z%*XGJwOu{hj^7L)Ca@ZjD6yRmfjj8z;w~N`;IoV5l~WqUPwxprT8Ws$`H9yr!$s7L z7!uIR1Oi=*ykVoxNM7w%4lM%hEX$P^O=LAzH!3^+6fBd3kN~Gl5Y%DIqK2Fa{TVmFcEScmn={U3dafJvjU#{=U z&w8eWW-T5^2Q?-A5@XZ|1UWJyFQuvhjB;jc^moMMr-7hjlRMx*VG`6|Mf8J>HRM45 zae#2@x8Ow_g=%pa;?~&mC#Z*}Kv(Q2V*wELlfZeaqyyW(1YmRV)rL0t*o|5w0c{)2 zf7hzKN&)xyvAv;uVfefS3zX+oRw)pCndXJO5NpvTMxsbDU#Sq&TWXGR0rAg)sIIih zVsg9NJI2f8{@!M(@(UD?r47C_8bL$)JryI{z-jSkdp5vn8;`Tee$SMot|hM8#S0)i zKau8L2RuMX1uwulkW?(;_5!ND*LY22N>iil2rgOg)s0%)?5=VWVbEE#dI@9&o1^_8 z65-JSo*NxsJLKhdlo)}1mRS0V{jmcBTh-5RyHC(d14k=a6K|5ga3XIm@eRpz4~~HU zh7D~hZ?IQqJO6O;^nA~;rg#myO9|k1Mp39yQ){N7oIy$XlPXSJpVu$}hS2HB6?_9P z6tI(tP=`LuM|8ibkycnNRnSHv7okN;WgE{qgZK6tNtiibbhKJ=Z>d$^7j(GB8yu1uG}HMvkIBYY&ofk&_3mvXDBiQO)t04>fzN^ zHCu>6&WI;8Zv}pe8oGZoUSD{!XQ-VZnP(9df7X#n2w~XzA<-6Lvt1~a^QXk6F*ckDR*n2%~r(K z*jtWwFlq+5LhlZ_t~~NHHE?%GYhvnGQER&OsSv@E-QP|w*=La4VNZ_L_UPv?Tg}_u z5l@clOO0LBSOTUc-{j8M;L4ZO8pgV}oxXQi@8Hwb$4zK zTC$XA`VZXS*sOR`ug`Flub1UcCOaD#=UpSu7nyb)AM`gm;kX4YbILIC^&3pCJDSIs zc2=AlMo@n>H|+8|TtT!}AgF7JXI1!It4XBfT-w?Pf`xc@)Mo*Uhs2;fzoTR?_V)WF zBW>OARA=eFBxErELYyp;n z^Dfx(8%#G5w&M4cu-T}p#?e?}egBXc=@DG+{t^<>m;%z879bfIV3b(!!kFj8zeKCl zVNr%^#T#cJD;xnth78aa+3Q7nN?Mg!RN?*IGO@mSdG<8k)E5h!J{q*3tc>JmBGWA3 z6&R@0-btkR_{in|I=VN@#ed>|zuE&b^aMs1*RP=A)U7zQn8B$OEtrk0OP0vKw1uLX zDzC|y3ZAeskqLYEC|@}Eog=4W8(c`Y<_hDzS4vpiSlt4Mm?aq;ReJ|mnu2Vaf0Xr! zZyv?h|IygYX6Dz0iO;maQlJpu+zKoTNj@tTbifXmH$;PT@COF3r`l@& zK9Hh2C*}`;x5py29SVVXCr`k=zBqWIiO(s~c=ElBBc0PmZaZO>x`9%!TjV0uJXy(v zc%H+6!sT}C2C0a(Iaf(Ru~q%EEd)fsl9W{-wvn`m-^ykCCRpkhh%2Kgp2m`Y11of3 z)v}EbKW|~S9wLuGc5CNlcDuKaY-M$e73mul#+PGNDq z%|5!_&Ui27&_0lzFr zVUlq`fZM+!HK7wZtvPcQGa=kCYcu(Bg_Z`=YQj~5a!&P|g!?O2{$IrooU`haFX*YH z#W__i)n8jV87Os}zOS>hR&A2mcd}|y;SFLTQt*k$Yfn1Ok{Q=;Zbs~lRo#fDUd@&3 z^1L3bw1n}kZB``cZ48&5noGb!r6AzZQ4fazNT!L0n<&MrGFC;BLfTf22{|?~jdF|U zkf>;5yiePJcHY^kLge1p;aC4RU)rABr5GhHaT>^-TI@*Vp-8wV1;Q9?`Gfkc%gNgk<#~byZCnEr_by zN(h@X~Bhv@bB+ zBv9JhUKZXd(RnzldzuFwUS6O6&FA_8K0@EnJMrFiLuqOFslrF(Cw;e8ubZV1!ANzv z;mOmxIcL2TcM=5K<~xxMSwMPdw2;R&?CD>K+$VZqj53-NI!2+BiW3U*sqN#mDmmv4 z4_+2vZ0d(KgZm}>b6-WLUR6bSANuI4HN4RIOkJv0>NQvDJE*Wqj$T|$skScxDjHQ9 z5o#;6lM%BiK+`BNK~a}!sOGBe=E|)7hWhh<)QIE!=Vg#wn8Px?Ci&+LbI$3RW`%S{ z&vnjN6Q{>Zmu9>PcY7$cUuQWQYL3Ry+^L<}0wnc5quJiH2PrnPj~Tf2<5aUxUpcD3 z|CULCSP@7$yiC;;;T4@-4a~0sY+)6KH1|L)~IYog~IlE;ts;uSJ#iaqTP?odAMy7)I88aC0kvB-%wJF{4~(o|GrqC znWDbFAqYb50zx?+!!fzoA0gM*9HBJ)YK^cP>wLdE{T4Dt5+O_9dMKFykn?s`)Ce@( zC>;i}rQLHEUg!aS(p?pGU8q)VP&q8B{TCy0<$Hxo$3UovV2&xwPLWPX;Mn}0X{K)w zzXu&UAvFYz1JzK}zsyDR|3o2)xpsfnr1%z#^&aJGlIYnHfA%UD@5m~a({!m7=_wET zriZmDl*ns&gGVhoO*CBq;w!0(KY3NsXM7_?d(E2>@4kWt@6+TrwY1+&6M%M4+llBi z(<_e=63+i3HTe*ymnzAq@Ah_g<95CHERN`JH0~Byb{EJJ@DICQOxMbN!~fqv(%#tC zV%krZ49t&e{0B$+-@@@9Yp%GXfxWp!YK0GoD#9Jd)waa)Vn|q&Jylt8DuOQv7qC^U zgf9p@Bd#kC=t02mAqkS+25@9<4I06|Oj4hDfjJJqY75EjvVQjpB#4=XqtipNE- zPE892;Q}-fZC{U0T}|2XyO!-VThTd2cjXoZSc}}*1x5vvrWf#*l<&cr*+r~}OOuO7 zbT#+fll)#ZmI!6V38$L*V#Q|4sZTrNHBBfZ5%XW~d6ysyXg!6F9qw}4 zkQ}*2e?%dAM7Y--^UI?DTWv%g?(I6;e$KK@FYy=X8& z4ZCIEyKMO!rD|K0B!RBI^R$5Ng*YB3NbKjO!+bFJ4qZfGuQ8q~SDc!m$%>gOPNgYBS9L1!UvQPAO|kwJOX!Dw4+`5KwJz!)-7jQ~ z-M_MsJh6wf;g3zi0=-I@GB1LiWZr+Vwgjl0lq*?#=A3avyy?(hLma)+Cp5XSdAWsn|Kkyoe?`Ar+Q+>LLbjwflq z$0Y-pi}Q*@=6dry|E;r8NZH^t-@{v>5lgN{`&WTYq)AvMdE|&0|&?*Ly;HbL{QkVoeBAx|yc$=#dmL^w z`}X-de{U4X75E-~C+HOfjKI~j{x%=zj#tQs=E)rKhc94qRiF6VZQrGz>~tX0V1U;j znY0W#sG#Tlk=h6VK+_}kH@LErM9TiKALJG+FThIeM}Gz62RZlj>?OK~e2s!2O~pT@##Ad?=&M0P-Yz+Xk4742g*jyk(2|`A?Eb zbg5Y{lVKXdLRm8VWt+m_WI#lUrcsJAlIp@6%j&qqk-@)FFXSNR+M0vm@j@75H#NP1 zet1PzfikWF$Da6X+V0l(Uc0w%%k#|@hQ>(YwIQ2k%F+=LBqdH~Ry+HdKAdD4i{5fz z;*`-$RkqJN;{f7LZTUmO!4e6&T-Iu9X>LSz1_*xj$Oe6Jikz(#G`6{>Y5q%SD|d0w zy5X6^+3s@*)+zuGg*f6OZksP5^lB|Lji>(0+me&e&#rC@qNY~`tZuoyG*gKlNh@k) zj%4N}g>(;<@)FuYBY(qLsjmzlz79=L7&2xu0?(+q>m~(W>GfKZ%G{v)9p6)V)g9qu zV_YxT**B2k$u?#_QcE=yB&D6!-ZO947w2{XOL%0SRLRG((kMs7JFznbX^Sn-Uln2! zhnfDgAe@R61%eAqpGq4ALI7NxDjoIXt(I0_D3g5gcc5SbYZe~y#y7MOzUA$PWd!@s~}%C!|50fvG#dDo*u zRa;ZB5H4T9rRD;ED#_>+Uy;9I8>8lFfW#6Qq<$?7#@ALXx}2w|qCNqT z78irBOz0zj!xgoaVeeLtdSUsh4Pf8Qm|eKM-tB3Hl^DiQjOdoHdw{zz=>vZW1lLmm z+vfX85J;E3)43WvQ(DjT6F9OcKT)X>$0XxbxHf_8t}8Z=zi36RlwXDAakh%J*_ON^eK`8IzE(g2E>rh7g=J7=(0A7e`(7-!I@G*mEI@<&E~XFi;U4 z#ESg7t7mJ+)st~k>!c`DGeCl8w3e`b8nsl)atkuVnxu7?Af{MDU834nNMABVz?nLP zVdluaR9I(^NCA?#jH5kKDIqyyFb+W0B+9#4m%*sBrKQPB6=$Wl+0)<~W|~n`%&pJ7 z8;G=XR5~YZ#fLNaQ;F7%DU0HtI&Yor#TdE?u1=kqQi;*FJ z_3@>0#hFcokoH9UxHS#Vh`SGh#t}At{wjb418Zer&pc+z`2yTt={q8Q(OpnwQ2$96suU92v{kupOVn+YntqfFc^VZU zoeD%#UG>;iCX>ukFJ^ zAzN-GzM>CB*`dlD5yzFLn@ctbzLDz+2XcKCyhl^nsrMibJ|8QAHO{3M8{#+0 zT3DkeW(rt1f4$(b;pU?%Fui(l3Vz!pu%-2iqQ`!3Q5)z>Q_4Aaf~#y8C-m7UK6J!f z`@k6Ay_yui!J4z{1)a`zPmKbqw0EQj=uyxT_GgS2tUOeFnoidy|A=R=O1HSkfTrf} zwV!BZ38frpP}+O}@kCiCEzsFj8?qL=ELv9&g<-y>^W?`tEOF?XDQUJy`m_3YI|oI- zZS{EnG9=KFc!80wG)BYF4hk)TXlKu)y)LUIPXl5zwkxepoAw=&HfR9gwmQ{E5TPu9 z)CZZOe-@zuNW!Mqc2;Pw&m;-{y}ICIs5$weLV1|@Ii$m z5nf3|gqmR8OW!mF!@?BbC7(rjd5acn&z?*-P5MBJbqW%G0|}>e4O}FLZ9RO#I&5$N z;%a8UAWK=jAz)!jfYT2EPpWw03?@|L|HQ#={+s*oNkhM3P)KO4iXeUtLXiJD_ z)nC+sBoVHP!vPH5%wooj`ZNr!Qs3QY2Gh6}dp329P>)9sv&9~u_1O9y@L8t>w>l~` zx@YP$%I?x~=wg&{?@ht*4s9zLaBav)8r zQrYHmbk>*1lAJF*`s_Ry$JNC0jE?@`TXs730B*eYZ;9k2g{CF_9t1mcgt%Uv|Cd;I zypNGIIffLX(yXK^K_Ze$DCmhl)hK9TvMyNUC9l8 zh5d0dqr2j|d>9rzkTLD5lWAeuRLAv#R;nF2fnkfJ`P~DmHVAJ zfS(K-G4RdC-Aw`&S<2<)vIrpyic)w5#t*y8Z zvP0w~0p?9lS+(eER0MKj-eZSVe(6C%>}Pei0#0pMIQCCD2p|2i2#0f3?LykkY+AGL z#&U*1!Bp?^#3Caih+TAshm6zRVc|EkZMpTd`(49b?wZ)SK|mYFl0f7K<`Z4I5V1P= zBR(hK!0s00Xn6KcL;HvWlzwDUQe29pl1TJC0Gb4%x!e{kf=A;Ch_mP&bF|=|(3_|Z z={S3KAZ^J;gQ(8YQ~EzA$3EfBcYHYb9^o9uJPb&uEbNj)VH6r;O0G5Dq=X0{MNL!+ zG>Xcp*%63F2%M)Kz|#9%9B~Fm|zYeapJ~^fOMJA!qnQIV|$2TaH0f@ z17e+HF~s;5Zt$zKl*Gp8&qnvK!;9#+NQX8EM z9x3>RJg5_fj5szx!GZ!QZDHaF)`s;H{oTis2Ja95vl?{Y7H@$QChIw>e3XHdmQ7yl zGGeI#=c`ZOkN#((P&X19OOD*20-Uh-H{f8QUYlIZ+?&BMwn@k)U@?c~6eY^HVZ?_9@`TW6gJN>Gg*?Yh73E261UDliKb+@_S-~Q~b{O|(A14J9%iCSCKODixCm= z&2Yws6llyB^bM`p1j&3O0`cZ!L6X{e)A9_!mNMX%A>>HQ3+GWHdwza-&^Iq4Y8W}| zd1O#4lTlShA)GeLANA`uGf+}$%$DmSFQlS)dqj{%MH_fR)43MO#>$d=fB<%riFkXnsBY*3907$C|nV3VAlH6KW1PATa@8LFgKYvbBrHt6@faoFV5z zje|JFBCe`LXQFAIuuhY_;9+*i)IrXvCOOV$ziW1ode(p70EQ9yab_@TVA{kp zq4yPP)p^NlNEmVgaQ&>@3WZT5#7iGx5|Mljc^4QFIbH?AWx+gdN^-S=1aCGe+sk+h z#y$uW^I_MzeIcS4GLAO01ShhADl!$yR`bwd541ljXVs=L<9y2s{%+GtNf3oX6`S{J z)!WN!l+Ztpx96P_KyONX?<8Qpfx05?>vEzV9(Tq(Lwc^kj5&W&aTJ1K)XmN1L%)q+ z4dK;1{&Vf*gxsn~xt}$Itk$!(Ebd|qdNY@`Ai)kdm1q`)n{TzrLrcxs)tZ5!sqOfA z_O}oWmdtxR?GkOY87@*YZnmN|YB*g+lwpfAj7Q}9(tWBaU=ga|tF%wCDE!G-}5157@yHn$qa`Sgpa1IQ}UY6 zrpuNCbn0#Z$rbPMaLXTTL4ug7#Rnnh!QP}s=8ZcSE?pX&s*W65I6{L0+~}PWUU1Ab z%LVMxX4hVxT|Q8OWZBu=0*7n2ETM#5c%h|!goSLb9MaV-2ygkPfz zRCe>**vPPmkF>fgD;4AXuKTac?1<3=7&DDCJt~{PP`D9bKUy1eBF4BnWx5DN9{<#o z(5618!3Hc9R>d%o97ckQr097=ToMZRimBxv-Bh&iFz%h-lVNRip4|nL65{fQj@@d4 znfjIxJo;z;c`N()&Z6}$B}w-~pzkAb^mHbG#Pd6A@r1;?=q5rjoGIi>uGz8GmqltM#UzwEYaLyBi;hoh%X%$C`tt~=c96TW-ugVeGW3j zYPjpHi}*qzINVTR#0v!MJj+kOD9|`>odZfcV-{>OSh^at8Z?wLrNXMB9yEM=1j-BG zACNY0!5%zNDiKT;!Xlj9T%D_1g;6FMOWcNo>QIIP)_R(T4N60#^!S28H;xI3S4y{Z zVQpPZ7X7x4mVKl9z?~>tk5B;x3S=-M@XZ~>KQ7|?wz;a8M&KykcVii!^l`%oK|KUL zCZr0!&MHH#+%#SZ^J?q{87ZqqGVE$VQMZQAi5eCve-M}p&;oT!2eJI{5fPv&OxxXC zvrRZ2qdzoyjJmK9CdM*+uC!AX&Z2&t@CmX_T$yn`xskv1E?6RfafDOApKroKejiRr zl$7zsT?e4rp*QL%V`W9@kmF$1I`|ZL@)NMl<*g+xdhS=GJqu zmEz5~8Fjl$W0Roa7iOAf2-l$7V}FSSGEk!om|=VxL)9|};W z?Q4cgxF-uJQ^kR?q7iQDtp|Xtq9|sx(_$(EzJ^ol#?pyEI9_h6h8B^efamw&=#J%7 zeKO`7>FMQkto29+jhUyr%+1J6yBomg%U3r8fv@*-zge&M+kW@(DIn|nZ}+eOzmE6a z@&Q4w$tlWt?N8lo^qo7R>zuqkP76w9e+<@sbINLJtEt#nO*KFD9U8!qsS=yL$~h?D zUzDowVuUAON;axI8Rw=xpGU&t!s(uKRb!`@pdmAiI?yXhU%5C#qJ$Q!sYMOu?=C{R zFkY)frNO|Bb$1_e(M<1TN;>E~39L&nLY9OPlc$yImw%hDLM!iHt7H+M-EJqhx@I3< z90q8*7z8`XsIPY2{NI3oIvz}oZ`-MnR=2!wi)N3wy};fJZBcJ@TtV)bi8%E=%EXhM zY#ls<2aw7v`$$&zVK_j`(ODFB@{yeaQC&@2Y$VYGP&{e^HFhW%zckcfl^aDyE0>ud z{WA60%F8U3r1|3(_w~vJ8-PvgARt0Q*#8)*q%o}~JXp{zvW5d_jzHqkM>Jpu~l?U}3qQ^P+k3ltQOy21?MZDtrf*4D1S;}PCC0I)f9nHbi zHv^YwDua}Jt;GPL0F`8wYSZyV5PT$Ja1De6Ganan)yn=xL^K?6|Kd}F5ByT}qY@Z| z?j{8<{PTtJ0xhI?M4ITv=zSt&gE@m*jLl1x2(t2jd%uVHImndUtZFpX)=E2sX&@ZM znMbqYwxb_=U9%Y`YIIftsG)hnT`ZQBP4cfI7W~uDj`IN>!wI3F%Lqz%P-x~<0h(rl z4H*8q_!W{>eW815L@wSWlq=U>^%*fTdM!5NzuAWvcvEcG3C+_R&MP}gwtLr~#Y)+~ zYq$q2(vPFMT`p&wE9ko_&@{P|1P}-K2livc?$ob`JUVunZphW}M#o^wi(?`0(C+tw zFJ3I(wfq3fQjvwgVQ~Cvv=@iKIE9PBMFTu<$W;SJun5T}7l}Lp^#THfXkkKs4WJ=} z)i?<(I8B_T|2-TspS;JdMo-0xE42v!DS;EO(9XstUKf`usp`NnVAZ zAey{dA|{H2RGsP7-#sK$WQy5Dg0%RtuMb<>!ad$!|1_R>JxOrTb&lTLkZqD;qD&GR z#s1iLrdD*X8ftBxEk7KbhOrq=uh7;m&0P1Oqf3DDUXViKt>YB90kmTQhD+}6*7fJc zCcz0*#^Phyt&3Ff1W#-KUt3=p7FD>l4MT@?Hv$sU-L0gQNOyO)z)%L=451+1UDDkt zol??BcgVN#^7tM+-*XXv?tMS2_sov9%-2&_#E4)eQOU1NJHjZB4fC^1#RHyQi*^1; zO^RF=%v=aNo<3L-LY$?$MVM-7@xdrmZk*aNP*REv7!G;wz;G-JQyE28+N>#PiY&uG z6F#YH8qaLTr_B2~La4l&wQkwvQs{H*J-GG?Z%;oU_lS0&2E#mPGsjv?ow>u?h^tg% zJZqoVpE0okTV;mL#$}@otF24SL7Ph4S2?f{Ghj_!cYy7(1&%~3+cr5KqYBeQ%r$1q z@oKHm^rZoBcmw-h#BQ3eCYrwm>#DvqT(n8~pqGm0A<8V*lW!8y)5CCp3)BOaJ;{W67% zkLc}^sH06hCiCJ`GwaOcVey3v%>!`ylTCW@6l!*J+t69Psf-nZhEkr~9%wtUu-)|b z&%1KY7&Qg2<5y~+$<^6#o_~?2A$b~mT%=>Hqc2zL=66;TjFNzIl5Z^mE*g$x6Fd*% zy8B#Bc@@y{-ZlI#4ckYNU~_t>XfHv5f{trOVW4+|Ndo&^vCB}5o*HS;pgbK+>$oa; z=4v)ZjPm4T;3fiHXUyOw)^E0!Lq}pSV87?Lm{IAzGN!xGL2&myk z?LL`-_@BVn#*zHYgvv+T(tO^&!{JRoN?)D0yP6@1tnm4*1SI~<>~F5+r7ud~yq4H95&4Wb_I{G|D}ydaIDBtHx4=8568>F}-g=@cX^Wo$YL}H3Qs=~~1@{af{&+M4gc)f`%|H|W|P$V_hvrD~g1h7X=;2#gZlRb9~Q1xjln zED5+spj}Zr%*AlG%p*QI`1F|-??VwjpI*?pRgOmj*IAQ48Cw^FJ*oGX(p$t6YR@oK z^WJ(ngN@4ttrrEAN(-;b36edf(oSEm=iR}lNkKky%a*Q+K~shf`0V!ygG+D87S9-@ zUKIzSIH1)SSE=3j=^?DjM@MhyYRk_Jyo0Um#vqG|W;1M0Tme4Qb?s%`AjVTsHST#~ zF`p5h8D2%?6Lj~AV3EL}?;bKbV3=>ME5q>_RVXqgmH)hSbLf;!B~ff7U%>7XX}zTi zJ{A_DSjv-7`}OC=7fdKbM5u=gS@D{%c+LN&G4v3bj!Tb{if+c5z<^fTqUk{p_ znJsJ$W>r0XFh_CD*btcv;Vuc}E(f?FBouX-$AGu{s=sZm2j)CcH$<|6gZ$U$@^^z8 zCGDJO*hx-0KF@e=L*>_i>dpV_+&elT|(q_w1essVqFO-{Ta8 z4P42PrlK+7UkKq$nE%!x%J@F=w6$kQYLKvu@GY-A!i8aXDve=k$BgEgr2-4F1=!p* zWV{q^i95=nKMFMyw*^ZentM9|WxUM*!=lgobI^7LBE-A>a0~UKbRO!dBFGUScJ?!Eh+XsG&>CBDpjL8OvqG%LtALB4mRMb<{%Xf1=Iq8n1 zf1(;~Bxc^aS@M2m9M7;^GVfE66o+;BS{)U0@}~jDSZ(*~P{ant!KD2&f7}#a)mu%Z zy|5c4rxJ_P;@*kWC@YSj8YD5jy_Lz^1gRarfZ0QNq~%-pHxR$CtC|WbqQv0%pykSg zaXNY3-&c=LW`xR$yz-` zm`pF0%BMyH4IM_vO5VV4I8(%1VJpW>s?NU;Hvt)Wyi9WvI~F|^cF?)8eVRbu5SMfr zEB_|ZfIuV1L_@obAA;Nv5X=Yu$h+?53;mM0Z8l*~SRPsUh@#!3pO_;um(7>PTTCK^ zW7Pk$L+~TT7mg8gmh9D72uT3yC#I!CX~uI&^&7Rm@(wuhg2M=oW(~iL$WMFK!gJOW z?x&&XIX~b>%JCdOIqVH(t2p`WVLYSuZl_O1zJA#s^kLh-Ph1QG+I^%QT+D6Hu`&iS zWr5Z3Osm(&+vOWUL&YrRF$~JBhn`tD-PEz=Q?wL9Fg#>sVdq7Y92>G5G-^f+m9!LN zjjkMTeloSP|AZbbzr&A4P`7>5uqJR}d>l`#up2IsdbSziXzf}n(z#mkGSL*{y=n3u zc{w>HnK+bZL@2jx4D;79Fi5;gI2BWrqgcecQSEJG^sMf189F&5^7vasZ49AHwtC1M z)Zp|;I*F1M)j`^J*0z*i!6n8q0X5qp`)3jFWl@>xB?nP2;11o=PaI}Ny5mU89b}37 zEMz_}?ikCGil-{M@?1D*PQBg3>rI6{Uh9X`q70cUT!yLvm@XKCjwbZ!cSDm0o3?`XHW} zR8}R8RagNVzwYDc1@_trm%|A0VAjD!Sk%Op6rDAUaTeNy{eUDe={%K2OUEGeu8~j$ z=)|#lhh4Sk#1rUX1=%gUPAoRn%I!zhuH+wgo}NnC^>1ZylHb)gdJYHRN(rS4Z`qq39d5@2DFgSkg3$cV}KB>`;)@-tM zs268SIXu?3pLSqJsipJJ*rI+mI`)Eo<^7-3zsy?jzrlU1^I z)mPF)Gttqh%Y@I~Nxr*Vby_!#_Fk-Oi{gQq_2hT)dU6E~&-VtE5J#@H+o=m*Ns?f+ zCy#ku!nU)`cn(ahgdL?dYp+Vi=UA zZb`N^wh&3;OB8;^7t)$@H=>bSK5mI1`Nj-OgKsZj5|^<}xfZ3n`=I(~Dyx0vNxkTR z_H6y$1&lEwqpszQLkTwZ3T&UUOy0{r%p~d8sk+~Fn)1LAx=Yn|?iSfxw5~rhOYSJX zdY=6(>;wP0jRfDXABf!j)EBusOS`V&|D3u?F6iP*;$-m0VDIW==-n3! z*w(9FpxRsT`E0%J{nzYomH?IFpG zpzjV6G@EDp4!=w+yi4KHioXG6za${;_xw)Dq8kbc%zqt_!Ginx*$m&X#O9AIOtNrQ zq+i7z`aCY);uTh`byz1G80k{{8JwT^5nJ^$1j@)N%ra6F@P(t?IM!@t`TF|slt^WA z1*===k0%fP83dUM?j(0tMh}&SWRt9;EVB$qJ7l$}+?SskXYD%Ikj7gr)j->3ec}tT zmsqKJ3TE=)=y1)#4%;HrNjAl5$uDAB*Cq;|Wtw?6xcYuZ`M#FOMVnAG|6W@Vfw0wf z0IH1gMc~Q#xlanX!6%ZBVwzSmYo0DlQjP(iT$#5D-e{wKFw@ zc(|D)y9q@OcpI$|t>~d@3HQaIAvWaagTB|aO<-adD}+JwobXK~fg2H3WHKZaaK$7` zi;0?y8b*9fMCitNoC|?VB*|=2ktuFPvAw0*fNGhQP0;qFnrUW%u=O`KhnM^cj%v{^ zDl0y_aHR<%TYX0tXIb&~??TihI!c?Nc_zrk&Y6}@o-t|0t3KaI4I z+kxlG<2_k#`LumpAc4$s-_uAJsj zPGEGBK46rsj1+)%J{R6#6|l5zC>yE9z$`_%FWAjBV~jTChqfSB(c=_g?5@AoG}#Ks zK!!I>`lhZM_oWzl&Ex&Ktv5w++E(2i3j?@TLQNR?z7*Mh;B5mGc?#{I516KzL$kqA z*%?R0ebo1!Qv|o_vzd8j|7LyqFB+q<@&FM{lG!ciPltIjuRYUEze=!?v2EKaSrbh& z1hpnAYOJw+^#*mT&7s#Y6OWy2OtvsMs8_4+jz#q&oXwr2q%WSqUNoK`n=useCwqe5 zF)R&(N7syPT%0j@lM0Ryr|vmFylRP+92N);L$2?dkI*El+}RoTav-PrhP z!Yo>E_|o5O9DmOIKIfa(g*5Ma^&>t7Rs(00xUZNdLm!K)w*_ei!-u!45O*QCSP3l2 z{v{rIpJLu;kzc8r3AatCEc;o!+Eh}F(_Gwv18eQl0spF6yNYt9@4|uZC9Vt7zP+;f zHjIsKGPaEEykEW`zgI?_noj@V(lch-2<9rM?*gU6BbxlpHZ@2*0dlI?KbG#gQN87p zvaFYDxDI>7+!{Yo33KWfsL7s6W}t(&Szah-iQT5)$l+ex9?$n_)hZyvt#7g&t@(63 zPfsuvoASPi%v&sIWJF$lMRFkJi3xNLW@h9?-_zZ?cA@MIhMp#h7ZtrpVsm#(=z?>G z{k8N>kaiRkrrAxw2IHfeWYtqVO)bZ>e%t<0`0!2g??k;4c~%`f-png=?<}8zk5xtw z40pUs8l|pav)*+U7MxuNrWz=)IgY-|&Y?@aWiWiwZy0ZBwU`nV9QG@i)j*d-#XqBi zWSvr<4uz_ON4WVb+8Uj04L!0t8*fG$s!>|iY?&)oSM(R!tFT-yTv`7lp@qeBL}_va z@=uMSzQ&)8dQABEI`gO~B}HVIz-|<o)t!TzpJxP9KQ}^@YOINFH^o=nkolQ5NCwVzj@5-k_KkNr`}(>@V-Fy!tkoJF zFj&FnmQ!e-UkZwy_v4W1vMJEyWoy5hz-h@;j+o(Ei`*f6z5QP6bm;T8Ab2CFmtKp2 zpL%I5r@GJvpI<4qwqhS+K-DN%`^eFfccxowc_V-O*WvFgGb9d!pa{)Q|M&BagJw1|+*F@p;EXp02qJGc ze?F5`l)VceL_@%HTS}elhwhFm0%K8ev5qjcAXnq!?}5`fPHCO6JM!b!pk*n z9QM&KZ#9a=``<3r7g0K%;j1z~mu9neR;djXDgLvzMWygwutl@`x#U>%+n&#PHgz|mo8(EbFt2wD z&R}If^oi!py*Bo!d5eT)UFq?vkGagI4ka>{D!itBm+`f5tyT@%SOf`Tsr-S;EzCC& ziIC$Qu@O5p@u`_9*s_~bBmYPZNogFXUs^5gN0QSkcfSu}J?Np{Wr z2<%SH26_hqd3Qb|M3bjo=-a?nekUzKjq=dfz;&e1E4ttwUQo>|n5_FSBn3`SF`Ybz zu0G0hA2Ep&K~)n|4Wt(!I80B;Z7YE93`Z>+3@n=pfAyA_m{HDdtGHa4Ko=_yD9jHZCWGF20c4%u| zgbFd6%ZMxyPCOsklb1b-evEy7FBrG+c|?qa8ZOmtk0t#rniJ{MR7%+}FO{o1nzDGu zH2hqrk7EZr0_=2!pRsZUiux*%ofy`-qNW?O@zqm)mHBDFzVkT3Y?aCdTVq~Qr?es< zw=qJ&h~Bip^<1G^Wj0sp$eY&VJ;$^71ZRQENRUrWsO(9zfcudlK0O7&9E&Dm$Z)TY zQkqZUjskRL?#0MR>adKcKfGX?7|Ow;BRkQw$V?U@=SlZ#$&(lT)?2~bq0eZQ-(n-C z5qnj+i}g%qX7bMY~BbZGxe1NUy=`F;Zv-f zD5GB@ker>Yi_R-fI zhUF#a(FjN;MI4BZ(yVzBts^<$jKtU zA?=)lms_$vM-SVCsDPBS$I%P%okDDT< zr+VQJgbj9P4;p{be4~Lt@x{-G_`QmWTlwimSu^1d?Nh%*zl5Qa?q#AMaT2hEUuDd? zQ39!;0r?)xN>6^&O$$kb6Lx9-G=q{GFa;XDpjxm^;um46OH)VU*c zjY{^ykg~!wrqeP46|AnXbT2B(YiEIkP!BoCM@927ap?CAmqpQX)vnH$49U$#@}v%k zlJ@)>mJrIHO*Kr~i>XAt0@d{*LXN@TfIrIbl5KEJ;e(BLQr_}0I_nGlk^&pICtw6Y zYOT3s@9e^+;(R(VT;W$8EZUvG-L$%B1i9rv`uC11X=_cKt|+X0oTYnYWv!_s{Qg4h zr$zMglV|}JoksIq3_m5|aGlnfW0Vv+X<5`_zm-rSUpBbGPIRjhAC#n_(ed?gLa-)b zlsC4c((SX@^#cfBTX8MBlp@Hmm^5M~=CZ*gYLacj<(*A|54+y`jYtd{(5j_wD{)Z2 zC*-Ac3Boq)jiWbBlUnQP=Rn`Cf{Dpjg9#3=KD|138Ks?dW!G&Gn-5x4 zE2vrQSJNR3o#Mk32&tuKn3Omai5+6p%Sl~;Zb`Ib=o{BV5jnfVt8G%Wd%aq7R<$Tf zu8{;GA7Gq=wcn1-b;%4s;O`_gmwV00r3&6gM>VzU1CP>zE|cYJW3!03vh0;aiH!4` zvkxu&{lqLQGK1a}Z1e3&nke$M!@!a{WS735L_qzpFCN#+!_og#_f#FOKEsb>wNB2kKSl0N4Ap85>CJxBV+@WwHrYh?bb?fHHdU2fWUqp1^p)z4hf!-lnUOy#9eaB!|Ek0Bf? zQkZHA%i9^O;rvX6k=F#b3tC;?bDyU(Mb<5dY)VC4(Ou?m?3Vc>jODc8AstnW z+y33g-mt5KU2SdtGhr4<+&6gGe#eM=3oVdBgU*k#4N+gSt=q9(S`39}yo%plMR9!V zpBo(WXu~W16iEs8iFVAnAv5qUG7^J4=ZuJODcYYGO`W?sy6|HI7q^e*^t2Ua@Fh-F z&VzMK^oZo!`V9~g#`VaIf)#1?Cxc3&tGFT+di87QGWzjTWHLfY(J(uYRGAc)$}I8L zxZ!xHO|>|_;haNO(&<06t^7K5s22G|7V3XFJZT@~_tY=_ss9*@bX15ape zy#eprd4etCEP@t+9Lrm{xHn-PPNZQ{&5B^zXkkZWenyfBL zY~gkT2LNSfS{!bI>B~d<94E zIrOxfP5-pvuTLvShDrAtO5qb9I?4!LY>Y(_OqHz#o^{4%@mdaq$8hq(gt(edp3)_( zjl}_7y?s<*Pu>Vy{P?2V0e-VpO8_ov93zX{Cy9&oy0OLFrS|u8DK-Ot>XQwFGYzS~Vcexe2n@v1`c$m*+^VqrJfF zAq`1wGYf5>B^D=A(SPUa3|$&uwM@&$gFx&h&(4zKp%HK6M)u=-<21L_t%nCpi|1|I zM%K4?l4Zl{f1?THZ4R*(wVG~}RHCnw5%_1T>_Gv!SH)E75KkJyfs zWfbmsy#dEi8Mwm8SNt_Uy_Mc7ztr?$87rr1AqlS=)-yY1vuTW2WkqF|S0^)ZkqmDr zA14@DSCx|Ul|3NRijYBda@KWozH+n@KtDE?X0^<;=yLvEK9#E!dR%2+W1N*_|)wyh*BEvQys3AkkmG1pXu*@oUTlL&qRoqU5Ns%V7Cn z2yNi1h*M19ugkEWpHCSupW54_H*%?LZH1%bQ}wBD_{!XuerdwxTFWI!NZr10fmqIM zsc@x4T=gT4^s#*F+O}xj;W1kzChh{S<@mr=gzMvPQJ>-=E4Fz|=%rxdA}hCjv@88Y z?FloH(hhIW-z?2>uuxZGmr>6sN@F~RGs@<@Q&3%e9d)ug4fUq_Itt@kAlnBsu;B61(Pv{P+epb6a7>FWSb*cokZ z16K^3m-TT&B;mtvq5OhSl-32p@vWsM&@GRQzu?w}XxcQ-2Qk01>*jJR(;JEr-Y=4) z*4uFPuNsUS%s9)!p1$6^KivsUb19)*n$&*o5-tI!L(F%HGYvGphBeDCjFj_U_~vCd z#b)RNt@f6TrO7jtf)l}O+RpTiUqVGUZCQp6zq0uu6YpUr#I6HG3~pjM+VT->-laQe zq(j%N5YaW0^P_{Z3l=F(#9Ll!+WaEDutct^bj+cIY+Is~kDN=2Cav!t4bM;0)Lm(S z%_-b^5s&T7`MOhX#UC$~Jw6VF6f`n_f19(ZQyps~2)n%>SnLReP%969+qwfc}2 z1cOm_vuLet{0}*AHo>ni*|V?)U2w)mLQ9B7-w>#a7v)CYHk$LTFWG$g2;;3HbwFx) zedL*?9CT#4yuy$j<9pgVg5#=sx%q)D+$fX)i6ixo%Ap)k7 zrD9)kuIjBoNFmyK(mGpY!(kh;&|OD)4{|+wX*gH+de+x@2;Ohsgb&?H5eVAD`(AFTK*ba{+-(h zj%c?wH}Qb{>5S}c@mBusiz5E(Ul?N7Mk;O*dkTIK4B=6vmb7D_CRAOT_DIxA;0%b$qF3gXKfe1&1bu@i7mpiq zIEws!k2SuStj|R%*q+X-GjZqLXUrP)ycf@#S81Nie=iY2HGBr#|249!f4g_K*>Zc5=6i7++2VU*uitome3I;o!6%CXjw_jP4Lr4*wjiRLbt^Nj z8hTG%A-XaY>3gvONo%@Zb*8>4yf=CI<$AK^wyfl7AM-vo96hbf21fs7tGjx<>y2+9 z%NPo~gtn|}Q(2Wni}-{Q47~H)o-CSFoKPggDMtk=yeyM*>X5mjHZE4hE=5Ml^wiPp5HM?`l2TS% z+ap=Ij{W&V_ZwXGhUqdKmE&I;LfN2)NgZDJVLOv?RQ&9%``syZC&kSdqA1l^l@2%xNE0skM5xL za>qttX@PbzMp2k*gwq!yB8@!-!I5>9yM@p%jFtjbD4EFWaSk=oTB}r%nagGSYw<02 zg&t=pPjBZs?9L?ao9|^Bhot+l-$JGV-)vUvOtt=dkIZ#GEyEcFnPg0g`P|)` zb(QIgEw1{gnoZf+hTCnj4^&H7)s$Izxf%)O2{sV#kLf)=0BI>$}uZ!gg;>|GRRKJ_J@lk}kPtP@sE zC{Z;+%!2F+*yJ>X1mc>bY3K6OCRV_>G8Vag(d?w&v_#c41NnOs5AkLiyJyTk`WwkW zF#Q$#$0V_Qts2Z|%0!F{gEw=g+qolYB4GLZe%0vhoB|De^1TwT|rV3xJ+;A1;Dx z*OCwd!7m~Rz-TphXy#?Nn7cy>!5LqJkp98SFPt+#;V6)Q1ZsqhBw^ep*yHpzvzqfZCxM@=^QOmd_cfF-I5L z;-&#ZReI)pCixX^kS@VzDlX1nFDyKj!_?Mm(ZOQnvkPRhBwwy!8H6~GMo9}VnOrN8 z7)%(X2r^LTDTY*$h?#e$vvy-tL!oR4) z%n3=#ZpJi3Ammj?>3H+ZtY4iKH}gXD2W5Mnti{W&w&m^Owx5ZtZ3KCOGlvO2_F=I* zWgOtjA6m_)HgOe5zP|`#r*Jk36kjR*)G4?`Lq(ew?6QqIZ#_`?)uAs;SsFZQE}%2% z&vO{NvpOG%PO0a^wK#;fI#?T4s6Ra3@+ya)GiqT%8TVj5cud2V)<>^HlHGBaO-j&E z_r0sYhG}9PYmkzXcRIVHsTJ<3bqMuYLhvbAvjg>)vGWvrxX2LYmGV&h_XyhCd!CJk zov6$9iCK)Nu25R_4A~v2)V^?LWw9P{2}h0*Z^!6#`pC@v`T9Wqq9`6&vL8N8vGlK- z1|dg;3nk^Vz_ z8}_uNdCfLYSyg-l)MAVdWC@0DMIzv{(wfg=2G+O%)6WAkAP}<{=HzOc+iY?%#<(m~TmwPoRs9ap=-$Ph| zb~?XTmcPUZBzFWvP4Vym8;UR{FCQ=j8Xg-83hO@*;D46C+cU`S2#Df0*VL2s`wXDD z^Lt=^%fmp||Ew(kB}T~e(LY?cO?}MKs8CQ1&!M1zyBB{~mVY%1#C{Y+{+ml+*hdl* z*pUc${}cBw=3z%yK}g9ci0Zdo_a>sy#lUWRfKUXFP<7&vqfyYa-&|Z`wzAQHT-E@R zW5tPXZk}?S*g4j-i(0;Re-K);Z0#G49WU@z4L6-+8 zBjrN?YK*YYYa&8HDF7oa9y_|-6&ms#0!{cxsRuhyjBhe|0!GaNK0H45y0R~XX$r*f z+ew^d%ql6s*3E!j0q(ym%O5rX(mDkqX0~$vZ*x5`KdBCRHU)_M0$_h^h?$^=W0-z3 z6I2brN&u{dfU6!mcK1D`_#sFhxE3=mu`7W682~9C?{6IbfWn6$P5dz`alDjwHsB=; zs(;f3>ccY$W+M@;u7DH#frNYP2-@U_W9WX1sy;&HIu9s=2YB{z;!dPO zdM1Fxec-asvnv4uYBvJnKIU4>fS^o*=ze=@J+)W?4p4>}(D|`(lCz*8)h5XNZ` z8s!6HeNz-^FR<@JGcQ1?zbngsq3}1B8UmgMq5hU}=fgYP4#1q4fPjzPxn2q>oCe(a zz&Mg(+))HD<^qfqfB7C_bhYLIMFKf!fQJ9g`deE3=*j~T0IvvW{y13%>!BgdEzm>| zy%`YdZ)t6-)Slb+~fHa3JUo7yR!V1#vh=pztuNQb^LS!IMNGH|8WHtTZTB!0u}f{{eXQM zVH!Z4av)V6JJMtwQa<~q0+*DMdXWKjwUp=I!ql_{IhzGh{^nvMTt;_)C~yGsar~m5 zL%8QaG`|f(<2p-Q37z$V>9-`fglIS zAhJiP{E+=DIJq+>fbZJ@IUZNibR@_VV0OuGfi0D|^)&!uc0l>Z0&`M{msRtdonNu#Q7%x`MBOh5JD#BffLJvTqVb9BJ2Pn z0{!1pSuzQPcmYKIJ8rU4cC4%bt~dbsxNP50f*_Q%AiV!k*vmTy<^~9}R>0$r4@snk zEH8j?|39ftWpL+U3LK*XZ1va^-OnD5q5Ung$dTJYCxCkJz~i&85gmkf5jguk_^2+D zM{)=-4I+Siy#E^ph}q(wvo8$RCZ8L?GY1&_v0L6ehvYAUD1WPe<%5N8@vtKx*JHQb zGJ_x#oFIb#Q6JI&{NqCg9|JM`_>d%42+McClMh1b(KbEN0=Dn_pVIBh`+&lSgns{% zjvf@cYwQ4Q6;S4}q=|3YEwKcMg*W=O$9T9*Hm z<2Cm`<9vV*H;*Hv#SpT)3`EF-i~f7$$K#k>GKDa&{E5lG(<9XWKc4=lbI^aGoI)U?tA9$x-~J=?|JGc~2*|tD zKQ;I7J8ys`9@kupPmr$FKQ;I7DWO_|LzLQe}`(fbq8n{$4%2^r}8i*FYyAKFXsQ(8qub4vs diff --git a/build/standalone/hilo/core/Class.js b/build/standalone/hilo/core/Class.js index 7f535fcc..a07f3aea 100644 --- a/build/standalone/hilo/core/Class.js +++ b/build/standalone/hilo/core/Class.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/core/Class.min.js b/build/standalone/hilo/core/Class.min.js index 45eb9dc5..e027dd65 100644 --- a/build/standalone/hilo/core/Class.min.js +++ b/build/standalone/hilo/core/Class.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/core/Hilo.js b/build/standalone/hilo/core/Hilo.js index b5f2e6aa..b1ed36ab 100644 --- a/build/standalone/hilo/core/Hilo.js +++ b/build/standalone/hilo/core/Hilo.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -29,7 +29,7 @@ var Hilo = { * Hilo version * @type String */ - version: '1.1.11', + version: '1.2.0', /** * @language=en * Gets a globally unique id. Such as Stage1, Bitmap2 etc. @@ -233,12 +233,23 @@ var Hilo = { if (this.cacheStateIfChanged(obj, ['depth'], stateCache)) { style.zIndex = obj.depth + 1; } - if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { - style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + if (obj.transform){ + var transform = obj.transform; + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = '0 0'; + } + style[prefix + 'Transform'] = 'matrix3d(' + transform.a + ', '+ transform.b + ', 0, 0, '+ transform.c + ', '+ transform.d + ', 0, 0, 0, 0, 1, 0, '+ transform.tx + ', '+ transform.ty + ', 0, 1)'; } - if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { - style[prefix + 'Transform'] = this.getTransformCSS(obj); + else{ + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + } + + if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { + style[prefix + 'Transform'] = this.getTransformCSS(obj); + } } + if (this.cacheStateIfChanged(obj, ['background'], stateCache)) { style.backgroundColor = obj.background; } diff --git a/build/standalone/hilo/core/Hilo.min.js b/build/standalone/hilo/core/Hilo.min.js index 293cdc86..c3728256 100644 --- a/build/standalone/hilo/core/Hilo.min.js +++ b/build/standalone/hilo/core/Hilo.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ -!function(e){e.Hilo||(e.Hilo={});var t=e.Hilo.browser,a=e.Hilo.util,o=e,r=document,n=r.documentElement,i=0,s={},c={version:"1.1.11",getUid:function(e){var t=++i;if(e){var a=e.charCodeAt(e.length-1);return a>=48&&a<=57&&(e+="_"),e+t}return t},viewToString:function(e){for(var t,a=e;a;)t=t?a.id+"."+t:a.id,a=a.parent;return t},copy:function(e,t,o){return a.copy(e,t,o),s.copy||(s.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),e},browser:t,event:{POINTER_START:t.POINTER_START,POINTER_MOVE:t.POINTER_MOVE,POINTER_END:t.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(e){var t;try{t=e.getBoundingClientRect()}catch(a){t={top:e.offsetTop,left:e.offsetLeft,right:e.offsetLeft+e.offsetWidth,bottom:e.offsetTop+e.offsetHeight}}var r=(o.pageXOffset||n.scrollLeft)-(n.clientLeft||0)||0,i=(o.pageYOffset||n.scrollTop)-(n.clientTop||0)||0,s=o.getComputedStyle?getComputedStyle(e):e.currentStyle,c=parseInt,h=c(s.paddingLeft)+c(s.borderLeftWidth)||0,d=c(s.paddingTop)+c(s.borderTopWidth)||0,f=c(s.paddingRight)+c(s.borderRightWidth)||0,l=c(s.paddingBottom)+c(s.borderBottomWidth)||0,g=t.top||0,p=t.left||0,T=t.right||0,m=t.bottom||0;return{left:p+r+h,top:g+i+d,width:T-f-p-h,height:m-l-g-d}},createElement:function(e,t){var a,o,n,i=r.createElement(e);for(a in t)if(o=t[a],"style"===a)for(n in o)i.style[n]=o[n];else i[a]=o;return i},getElement:function(e){return r.getElementById(e)},setElementStyleByView:function(e){var t=e.drawable,a=t.domElement.style,o=e._stateCache||(e._stateCache={}),r=c.browser.jsVendor,n="px",i=!1;if(this.cacheStateIfChanged(e,["visible"],o)&&(a.display=e.visible?"":"none"),this.cacheStateIfChanged(e,["alpha"],o)&&(a.opacity=e.alpha),e.visible&&!(e.alpha<=0)){this.cacheStateIfChanged(e,["width"],o)&&(a.width=e.width+n),this.cacheStateIfChanged(e,["height"],o)&&(a.height=e.height+n),this.cacheStateIfChanged(e,["depth"],o)&&(a.zIndex=e.depth+1),(i=this.cacheStateIfChanged(e,["pivotX","pivotY"],o))&&(a[r+"TransformOrigin"]=e.pivotX+n+" "+e.pivotY+n),(this.cacheStateIfChanged(e,["x","y","rotation","scaleX","scaleY"],o)||i)&&(a[r+"Transform"]=this.getTransformCSS(e)),this.cacheStateIfChanged(e,["background"],o)&&(a.backgroundColor=e.background),a.pointerEvents||(a.pointerEvents="none");var s=t.image;if(s){var h=s.src;h!==o.image&&(o.image=h,a.backgroundImage="url("+h+")");var d=t.rect;if(d){var f=d[0],l=d[1];f!==o.sx&&(o.sx=f,a.backgroundPositionX=-f+n),l!==o.sy&&(o.sy=l,a.backgroundPositionY=-l+n)}}var g=e.mask;if(g){var p=g.drawable.domElement.style.backgroundImage;p!==o.maskImage&&(o.maskImage=p,a[r+"MaskImage"]=p,a[r+"MaskRepeat"]="no-repeat");var T=g.x,m=g.y;T===o.maskX&&m===o.maskY||(o.maskX=T,o.maskY=m,a[r+"MaskPosition"]=T+n+" "+m+n)}}},cacheStateIfChanged:function(e,t,a){var o,r,n,i,s=!1;for(o=0,r=t.length;o=48&&a<=57&&(t+="_"),t+e}return e},viewToString:function(t){for(var e,a=t;a;)e=e?a.id+"."+e:a.id,a=a.parent;return e},copy:function(t,e,o){return a.copy(t,e,o),s.copy||(s.copy=!0,console.warn("Hilo.copy has been Deprecated! Use Hilo.util.copy instead.")),t},browser:e,event:{POINTER_START:e.POINTER_START,POINTER_MOVE:e.POINTER_MOVE,POINTER_END:e.POINTER_END},align:{TOP_LEFT:"TL",TOP:"T",TOP_RIGHT:"TR",LEFT:"L",CENTER:"C",RIGHT:"R",BOTTOM_LEFT:"BL",BOTTOM:"B",BOTTOM_RIGHT:"BR"},getElementRect:function(t){var e;try{e=t.getBoundingClientRect()}catch(a){e={top:t.offsetTop,left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,bottom:t.offsetTop+t.offsetHeight}}var r=(o.pageXOffset||n.scrollLeft)-(n.clientLeft||0)||0,i=(o.pageYOffset||n.scrollTop)-(n.clientTop||0)||0,s=o.getComputedStyle?getComputedStyle(t):t.currentStyle,c=parseInt,f=c(s.paddingLeft)+c(s.borderLeftWidth)||0,h=c(s.paddingTop)+c(s.borderTopWidth)||0,d=c(s.paddingRight)+c(s.borderRightWidth)||0,l=c(s.paddingBottom)+c(s.borderBottomWidth)||0,g=e.top||0,p=e.left||0,m=e.right||0,T=e.bottom||0;return{left:p+r+f,top:g+i+h,width:m-d-p-f,height:T-l-g-h}},createElement:function(t,e){var a,o,n,i=r.createElement(t);for(a in e)if(o=e[a],"style"===a)for(n in o)i.style[n]=o[n];else i[a]=o;return i},getElement:function(t){return r.getElementById(t)},setElementStyleByView:function(t){var e=t.drawable,a=e.domElement.style,o=t._stateCache||(t._stateCache={}),r=c.browser.jsVendor,n="px",i=!1;if(this.cacheStateIfChanged(t,["visible"],o)&&(a.display=t.visible?"":"none"),this.cacheStateIfChanged(t,["alpha"],o)&&(a.opacity=t.alpha),t.visible&&!(t.alpha<=0)){if(this.cacheStateIfChanged(t,["width"],o)&&(a.width=t.width+n),this.cacheStateIfChanged(t,["height"],o)&&(a.height=t.height+n),this.cacheStateIfChanged(t,["depth"],o)&&(a.zIndex=t.depth+1),t.transform){var s=t.transform;(i=this.cacheStateIfChanged(t,["pivotX","pivotY"],o))&&(a[r+"TransformOrigin"]="0 0"),a[r+"Transform"]="matrix3d("+s.a+", "+s.b+", 0, 0, "+s.c+", "+s.d+", 0, 0, 0, 0, 1, 0, "+s.tx+", "+s.ty+", 0, 1)"}else(i=this.cacheStateIfChanged(t,["pivotX","pivotY"],o))&&(a[r+"TransformOrigin"]=t.pivotX+n+" "+t.pivotY+n),(this.cacheStateIfChanged(t,["x","y","rotation","scaleX","scaleY"],o)||i)&&(a[r+"Transform"]=this.getTransformCSS(t));this.cacheStateIfChanged(t,["background"],o)&&(a.backgroundColor=t.background),a.pointerEvents||(a.pointerEvents="none");var f=e.image;if(f){var h=f.src;h!==o.image&&(o.image=h,a.backgroundImage="url("+h+")");var d=e.rect;if(d){var l=d[0],g=d[1];l!==o.sx&&(o.sx=l,a.backgroundPositionX=-l+n),g!==o.sy&&(o.sy=g,a.backgroundPositionY=-g+n)}}var p=t.mask;if(p){var m=p.drawable.domElement.style.backgroundImage;m!==o.maskImage&&(o.maskImage=m,a[r+"MaskImage"]=m,a[r+"MaskRepeat"]="no-repeat");var T=p.x,u=p.y;T===o.maskX&&u===o.maskY||(o.maskX=T,o.maskY=u,a[r+"MaskPosition"]=T+n+" "+u+n)}}},cacheStateIfChanged:function(t,e,a){var o,r,n,i,s=!1;for(o=0,r=e.length;o=6?(i=c[0],s=c[1],h=c[2],n=c[3],r=c[4],a=c[5]):(i=t.a,s=t.b,h=t.c,n=t.d,r=t.tx,a=t.ty),this.a=o*i+y*h,this.b=o*s+y*n,this.c=u*i+x*h,this.d=u*s+x*n,this.tx=e*i+d*h+r,this.ty=e*s+d*n+a,this},rotate:function(t){var i=Math.sin(t),s=Math.cos(t),h=this.a,n=this.b,r=this.c,a=this.d,c=this.tx,o=this.ty;return this.a=h*s-n*i,this.b=h*i+n*s,this.c=r*s-a*i,this.d=r*i+a*s,this.tx=c*s-o*i,this.ty=c*i+o*s,this},scale:function(t,i){return this.a*=t,this.d*=i,this.c*=t,this.b*=i,this.tx*=t,this.ty*=i,this},translate:function(t,i){return this.tx+=t,this.ty+=i,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,i=this.b,s=this.c,h=this.d,n=this.tx,r=t*h-i*s;return this.a=h/r,this.b=-i/r,this.c=-s/r,this.d=t/r,this.tx=(s*this.ty-h*n)/r,this.ty=-(t*this.ty-i*n)/r,this},transformPoint:function(t,i,s){var h=t.x*this.a+t.y*this.c+this.tx,n=t.x*this.b+t.y*this.d+this.ty;return i&&(h=h+.5>>0,n=n+.5>>0),s?{x:h,y:n}:(t.x=h,t.y=n,t)}});t.Hilo.Matrix=s}(window); \ No newline at end of file +!function(t){t.Hilo||(t.Hilo={});var i=t.Hilo.Class,s=i.create({constructor:function(t,i,s,h,n,c){this.a=t,this.b=i,this.c=s,this.d=h,this.tx=n,this.ty=c},set:function(t,i,s,h,n,c){return this.a=t,this.b=i,this.c=s,this.d=h,this.tx=n,this.ty=c,this},copy:function(t){return this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.tx=t.tx,this.ty=t.ty,this},clone:function(){return(new s).copy(this)},concat:function(t){var i,s,h,n,c,r,a=arguments,o=this.a,u=this.b,y=this.c,e=this.d,x=this.tx,d=this.ty;return a.length>=6?(i=a[0],s=a[1],h=a[2],n=a[3],c=a[4],r=a[5]):(i=t.a,s=t.b,h=t.c,n=t.d,c=t.tx,r=t.ty),this.a=o*i+u*h,this.b=o*s+u*n,this.c=y*i+e*h,this.d=y*s+e*n,this.tx=x*i+d*h+c,this.ty=x*s+d*n+r,this},rotate:function(t){var i=Math.sin(t),s=Math.cos(t),h=this.a,n=this.b,c=this.c,r=this.d,a=this.tx,o=this.ty;return this.a=h*s-n*i,this.b=h*i+n*s,this.c=c*s-r*i,this.d=c*i+r*s,this.tx=a*s-o*i,this.ty=a*i+o*s,this},scale:function(t,i){return this.a*=t,this.d*=i,this.c*=t,this.b*=i,this.tx*=t,this.ty*=i,this},translate:function(t,i){return this.tx+=t,this.ty+=i,this},identity:function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},invert:function(){var t=this.a,i=this.b,s=this.c,h=this.d,n=this.tx,c=t*h-i*s;return this.a=h/c,this.b=-i/c,this.c=-s/c,this.d=t/c,this.tx=(s*this.ty-h*n)/c,this.ty=-(t*this.ty-i*n)/c,this},transformPoint:function(t,i,s){var h=t.x*this.a+t.y*this.c+this.tx,n=t.x*this.b+t.y*this.d+this.ty;return i&&(h=h+.5>>0,n=n+.5>>0),s?{x:h,y:n}:(t.x=h,t.y=n,t)}});t.Hilo.Matrix=s}(window); \ No newline at end of file diff --git a/build/standalone/hilo/loader/ImageLoader.js b/build/standalone/hilo/loader/ImageLoader.js index dce388b6..6c1c2bf5 100644 --- a/build/standalone/hilo/loader/ImageLoader.js +++ b/build/standalone/hilo/loader/ImageLoader.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/loader/ImageLoader.min.js b/build/standalone/hilo/loader/ImageLoader.min.js index 5c8491aa..b821ce3e 100644 --- a/build/standalone/hilo/loader/ImageLoader.min.js +++ b/build/standalone/hilo/loader/ImageLoader.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/loader/LoadQueue.js b/build/standalone/hilo/loader/LoadQueue.js index 55a0d049..bf7361f5 100644 --- a/build/standalone/hilo/loader/LoadQueue.js +++ b/build/standalone/hilo/loader/LoadQueue.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -53,6 +53,7 @@ var LoadQueue = Class.create(/** @lends LoadQueue.prototype */{ *
  • loader - specified resource loader. If you specify this,we abandon choosing loader inside
  • *
  • noCache - a tag that set on or off to prevent cache,implemented by adding timestamp inside
  • *
  • size - predicted resource size, help calculating loading progress
  • + *
  • crossOrigin - Whether cross-domain is needed. eg:crossOrigin='anonymous'
  • * * @returns {LoadQueue} 下载队列实例本身。 */ diff --git a/build/standalone/hilo/loader/LoadQueue.min.js b/build/standalone/hilo/loader/LoadQueue.min.js index da510e0e..efeb2145 100644 --- a/build/standalone/hilo/loader/LoadQueue.min.js +++ b/build/standalone/hilo/loader/LoadQueue.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/loader/ScriptLoader.js b/build/standalone/hilo/loader/ScriptLoader.js index 2965f449..b47be631 100644 --- a/build/standalone/hilo/loader/ScriptLoader.js +++ b/build/standalone/hilo/loader/ScriptLoader.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/loader/ScriptLoader.min.js b/build/standalone/hilo/loader/ScriptLoader.min.js index b2dfa640..cd48db06 100644 --- a/build/standalone/hilo/loader/ScriptLoader.min.js +++ b/build/standalone/hilo/loader/ScriptLoader.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/media/HTMLAudio.js b/build/standalone/hilo/media/HTMLAudio.js index c602725b..cfdac9d4 100644 --- a/build/standalone/hilo/media/HTMLAudio.js +++ b/build/standalone/hilo/media/HTMLAudio.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/media/HTMLAudio.min.js b/build/standalone/hilo/media/HTMLAudio.min.js index b767e659..23f7cfcf 100644 --- a/build/standalone/hilo/media/HTMLAudio.min.js +++ b/build/standalone/hilo/media/HTMLAudio.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/media/WebAudio.js b/build/standalone/hilo/media/WebAudio.js index 0ee31320..5b895887 100644 --- a/build/standalone/hilo/media/WebAudio.js +++ b/build/standalone/hilo/media/WebAudio.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/media/WebAudio.min.js b/build/standalone/hilo/media/WebAudio.min.js index 76100073..ab3814c0 100644 --- a/build/standalone/hilo/media/WebAudio.min.js +++ b/build/standalone/hilo/media/WebAudio.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/media/WebSound.js b/build/standalone/hilo/media/WebSound.js index 61383ec7..d49d9e7c 100644 --- a/build/standalone/hilo/media/WebSound.js +++ b/build/standalone/hilo/media/WebSound.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/media/WebSound.min.js b/build/standalone/hilo/media/WebSound.min.js index aedfa222..ee5d05a6 100644 --- a/build/standalone/hilo/media/WebSound.min.js +++ b/build/standalone/hilo/media/WebSound.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/renderer/CanvasRenderer.js b/build/standalone/hilo/renderer/CanvasRenderer.js index bff95e8a..0685747d 100644 --- a/build/standalone/hilo/renderer/CanvasRenderer.js +++ b/build/standalone/hilo/renderer/CanvasRenderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -20,26 +20,26 @@ var Hilo = window.Hilo;var Renderer = window.Hilo.Renderer; * @requires hilo/renderer/Renderer * @property {CanvasRenderingContext2D} context The context of the canvas element, readonly. */ -var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ +var CanvasRenderer = Class.create( /** @lends CanvasRenderer.prototype */ { Extends: Renderer, - constructor: function(properties){ + constructor: function(properties) { CanvasRenderer.superclass.constructor.call(this, properties); this.context = this.canvas.getContext("2d"); }, - renderType:'canvas', + renderType: 'canvas', context: null, /** * @private * @see Renderer#startDraw */ - startDraw: function(target){ - if(target.visible && target.alpha > 0){ - if(target === this.stage){ + startDraw: function(target) { + if (target.visible && target.alpha > 0) { + if (target === this.stage) { this.context.clearRect(0, 0, target.width, target.height); } - if(target.blendMode !== this.blendMode){ + if (target.blendMode !== this.blendMode) { this.context.globalCompositeOperation = this.blendMode = target.blendMode; } this.context.save(); @@ -52,31 +52,38 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#draw */ - draw: function(target){ - var ctx = this.context, w = target.width, h = target.height; + draw: function(target) { + var ctx = this.context, + w = target.width, + h = target.height; //draw background var bg = target.background; - if(bg){ + if (bg) { ctx.fillStyle = bg; ctx.fillRect(0, 0, w, h); } //draw image - var drawable = target.drawable, image = drawable && drawable.image; - if(image){ - var rect = drawable.rect, sw = rect[2], sh = rect[3], offsetX = rect[4], offsetY = rect[5]; + var drawable = target.drawable, + image = drawable && drawable.image; + if (image) { + var rect = drawable.rect, + sw = rect[2], + sh = rect[3], + offsetX = rect[4], + offsetY = rect[5]; //ie9+浏览器宽高为0时会报错 fixed ie9 bug. - if(!sw || !sh){ + if (!sw || !sh) { return; } - if(!w && !h){ + if (!w && !h) { //fix width/height TODO: how to get rid of this? w = target.width = sw; h = target.height = sh; } //the pivot is the center of frame if has offset, otherwise is (0, 0) - if(offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); + if (offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); ctx.drawImage(image, rect[0], rect[1], sw, sh, 0, 0, w, h); } }, @@ -85,7 +92,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#endDraw */ - endDraw: function(target){ + endDraw: function(target) { this.context.restore(); }, @@ -93,9 +100,9 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#transform */ - transform: function(target){ + transform: function(target) { var drawable = target.drawable; - if(drawable && drawable.domElement){ + if (drawable && drawable.domElement) { Hilo.setElementStyleByView(target); return; } @@ -104,66 +111,72 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ scaleX = target.scaleX, scaleY = target.scaleY; - if(target === this.stage){ + if (target === this.stage) { var style = this.canvas.style, oldScaleX = target._scaleX, oldScaleY = target._scaleY, isStyleChange = false; - if((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)){ + if ((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)) { target._scaleX = scaleX; style.width = scaleX * target.width + "px"; isStyleChange = true; } - if((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)){ + if ((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)) { target._scaleY = scaleY; style.height = scaleY * target.height + "px"; isStyleChange = true; } - if(isStyleChange){ + if (isStyleChange) { target.updateViewport(); } - }else{ + } else { var x = target.x, y = target.y, pivotX = target.pivotX, pivotY = target.pivotY, rotation = target.rotation % 360, + transform = target.transform, mask = target.mask; - if(mask){ + if (mask) { mask._render(this); ctx.clip(); } //alignment var align = target.align; - if(align){ + if (align) { var pos = target.getAlignPosition(); x = pos.x; y = pos.y; } + + if (transform) { + ctx.transform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); + } else { + if (x != 0 || y != 0) ctx.translate(x, y); + if (rotation != 0) ctx.rotate(rotation * Math.PI / 180); + if (scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); + if (pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); + } - if(x != 0 || y != 0) ctx.translate(x, y); - if(rotation != 0) ctx.rotate(rotation * Math.PI / 180); - if(scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); - if(pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); } - if(target.alpha > 0) ctx.globalAlpha *= target.alpha; + if (target.alpha > 0) ctx.globalAlpha *= target.alpha; }, /** * @private * @see Renderer#remove */ - remove: function(target){ + remove: function(target) { var drawable = target.drawable; var elem = drawable && drawable.domElement; - if(elem){ + if (elem) { var parentElem = elem.parentNode; - if(parentElem){ + if (parentElem) { parentElem.removeChild(elem); } } @@ -173,7 +186,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#clear */ - clear: function(x, y, width, height){ + clear: function(x, y, width, height) { this.context.clearRect(x, y, width, height); }, @@ -181,7 +194,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#resize */ - resize: function(width, height){ + resize: function(width, height) { var canvas = this.canvas; var stage = this.stage; var style = canvas.style; diff --git a/build/standalone/hilo/renderer/CanvasRenderer.min.js b/build/standalone/hilo/renderer/CanvasRenderer.min.js index cae3203f..554cf682 100644 --- a/build/standalone/hilo/renderer/CanvasRenderer.min.js +++ b/build/standalone/hilo/renderer/CanvasRenderer.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ -!function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,a=t.Hilo,i=t.Hilo.Renderer,n=e.create({Extends:i,constructor:function(t){n.superclass.constructor.call(this,t),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(t){return!!(t.visible&&t.alpha>0)&&(t===this.stage&&this.context.clearRect(0,0,t.width,t.height),t.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=t.blendMode),this.context.save(),!0)},draw:function(t){var e=this.context,a=t.width,i=t.height,n=t.background;n&&(e.fillStyle=n,e.fillRect(0,0,a,i));var r=t.drawable,l=r&&r.image;if(l){var s=r.rect,o=s[2],h=s[3],c=s[4],d=s[5];if(!o||!h)return;a||i||(a=t.width=o,i=t.height=h),(c||d)&&e.translate(c-.5*o,d-.5*h),e.drawImage(l,s[0],s[1],o,h,0,0,a,i)}},endDraw:function(t){this.context.restore()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void a.setElementStyleByView(t);var i=this.context,n=t.scaleX,r=t.scaleY;if(t===this.stage){var l=this.canvas.style,s=t._scaleX,o=t._scaleY,h=!1;(!s&&1!=n||s&&s!=n)&&(t._scaleX=n,l.width=n*t.width+"px",h=!0),(!o&&1!=r||o&&o!=r)&&(t._scaleY=r,l.height=r*t.height+"px",h=!0),h&&t.updateViewport()}else{var c=t.x,d=t.y,v=t.pivotX,g=t.pivotY,w=t.rotation%360,f=t.mask;f&&(f._render(this),i.clip());var p=t.align;if(p){var u=t.getAlignPosition();c=u.x,d=u.y}0==c&&0==d||i.translate(c,d),0!=w&&i.rotate(w*Math.PI/180),1==n&&1==r||i.scale(n,r),0==v&&0==g||i.translate(-v,-g)}t.alpha>0&&(i.globalAlpha*=t.alpha)},remove:function(t){var e=t.drawable,a=e&&e.domElement;if(a){var i=a.parentNode;i&&i.removeChild(a)}},clear:function(t,e,a,i){this.context.clearRect(t,e,a,i)},resize:function(t,e){var a=this.canvas,i=this.stage,n=a.style;a.width=t,a.height=e,n.width=i.width*i.scaleX+"px",n.height=i.height*i.scaleY+"px"}});t.Hilo.CanvasRenderer=n}(window); \ No newline at end of file +!function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,a=t.Hilo,i=t.Hilo.Renderer,n=e.create({Extends:i,constructor:function(t){n.superclass.constructor.call(this,t),this.context=this.canvas.getContext("2d")},renderType:"canvas",context:null,startDraw:function(t){return!!(t.visible&&t.alpha>0)&&(t===this.stage&&this.context.clearRect(0,0,t.width,t.height),t.blendMode!==this.blendMode&&(this.context.globalCompositeOperation=this.blendMode=t.blendMode),this.context.save(),!0)},draw:function(t){var e=this.context,a=t.width,i=t.height,n=t.background;n&&(e.fillStyle=n,e.fillRect(0,0,a,i));var r=t.drawable,s=r&&r.image;if(s){var l=r.rect,o=l[2],c=l[3],h=l[4],d=l[5];if(!o||!c)return;a||i||(a=t.width=o,i=t.height=c),(h||d)&&e.translate(h-.5*o,d-.5*c),e.drawImage(s,l[0],l[1],o,c,0,0,a,i)}},endDraw:function(t){this.context.restore()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void a.setElementStyleByView(t);var i=this.context,n=t.scaleX,r=t.scaleY;if(t===this.stage){var s=this.canvas.style,l=t._scaleX,o=t._scaleY,c=!1;(!l&&1!=n||l&&l!=n)&&(t._scaleX=n,s.width=n*t.width+"px",c=!0),(!o&&1!=r||o&&o!=r)&&(t._scaleY=r,s.height=r*t.height+"px",c=!0),c&&t.updateViewport()}else{var h=t.x,d=t.y,v=t.pivotX,f=t.pivotY,g=t.rotation%360,w=t.transform,p=t.mask;p&&(p._render(this),i.clip());var u=t.align;if(u){var x=t.getAlignPosition();h=x.x,d=x.y}w?i.transform(w.a,w.b,w.c,w.d,w.tx,w.ty):(0==h&&0==d||i.translate(h,d),0!=g&&i.rotate(g*Math.PI/180),1==n&&1==r||i.scale(n,r),0==v&&0==f||i.translate(-v,-f))}t.alpha>0&&(i.globalAlpha*=t.alpha)},remove:function(t){var e=t.drawable,a=e&&e.domElement;if(a){var i=a.parentNode;i&&i.removeChild(a)}},clear:function(t,e,a,i){this.context.clearRect(t,e,a,i)},resize:function(t,e){var a=this.canvas,i=this.stage,n=a.style;a.width=t,a.height=e,n.width=i.width*i.scaleX+"px",n.height=i.height*i.scaleY+"px"}});t.Hilo.CanvasRenderer=n}(window); \ No newline at end of file diff --git a/build/standalone/hilo/renderer/DOMRenderer.js b/build/standalone/hilo/renderer/DOMRenderer.js index 700ba94e..bbbdbf15 100644 --- a/build/standalone/hilo/renderer/DOMRenderer.js +++ b/build/standalone/hilo/renderer/DOMRenderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/renderer/DOMRenderer.min.js b/build/standalone/hilo/renderer/DOMRenderer.min.js index 4cc7b3b3..779ea0e3 100644 --- a/build/standalone/hilo/renderer/DOMRenderer.min.js +++ b/build/standalone/hilo/renderer/DOMRenderer.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/renderer/Renderer.js b/build/standalone/hilo/renderer/Renderer.js index 1b95c616..5590d07c 100644 --- a/build/standalone/hilo/renderer/Renderer.js +++ b/build/standalone/hilo/renderer/Renderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/renderer/Renderer.min.js b/build/standalone/hilo/renderer/Renderer.min.js index fe2fbc8c..781eb738 100644 --- a/build/standalone/hilo/renderer/Renderer.min.js +++ b/build/standalone/hilo/renderer/Renderer.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/renderer/WebGLRenderer.js b/build/standalone/hilo/renderer/WebGLRenderer.js index 4d2614b3..a9762151 100644 --- a/build/standalone/hilo/renderer/WebGLRenderer.js +++ b/build/standalone/hilo/renderer/WebGLRenderer.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -426,21 +426,28 @@ var WebGLRenderer = Class.create(/** @lends WebGLRenderer.prototype */{ var cos = 1, sin = 0, rotation = view.rotation % 360, pivotX = view.pivotX, pivotY = view.pivotY, - scaleX = view.scaleX, scaleY = view.scaleY; + scaleX = view.scaleX, scaleY = view.scaleY, + transform = view.transform; - if(rotation){ - var r = rotation * DEG2RAD; - cos = Math.cos(r); - sin = Math.sin(r); + if (transform) { + mtx.copy(transform); } + else { + if(rotation){ + var r = rotation * DEG2RAD; + cos = Math.cos(r); + sin = Math.sin(r); + } + + var pos = view.getAlignPosition(); - var pos = view.getAlignPosition(); - mtx.a = cos*scaleX; - mtx.b = sin*scaleX; - mtx.c = -sin*scaleY; - mtx.d = cos*scaleY; - mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; - mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + mtx.a = cos*scaleX; + mtx.b = sin*scaleX; + mtx.c = -sin*scaleY; + mtx.d = cos*scaleY; + mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; + mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + } mtx.concat(ancestor.__webglWorldMatrix); }, diff --git a/build/standalone/hilo/renderer/WebGLRenderer.min.js b/build/standalone/hilo/renderer/WebGLRenderer.min.js index d136f974..0c3ef25d 100644 --- a/build/standalone/hilo/renderer/WebGLRenderer.min.js +++ b/build/standalone/hilo/renderer/WebGLRenderer.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ -!function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,r=t.Hilo,i=t.Hilo.Renderer,a=t.Hilo.Matrix,n=Math.PI/180,s=e.create({Extends:i,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var t=document.createElement("canvas");t.getContext&&(t.getContext("webgl")||t.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(t){s.superclass.constructor.call(this,t);var e=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=s.MAX_BATCH_NUM,this.positionStride=4*s.ATTRIBUTE_NUM;var r=this.maxBatchNum*s.ATTRIBUTE_NUM*4,i=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*r),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(i);for(var a=0,n=0;a0)&&(t===this.stage&&this.clear(),!0)},draw:function(t){var e=t.width,r=t.height,i=(t.background,t.drawable),a=i&&i.image;if(a){var n=i.rect,s=n[2],o=n[3];e||r||(e=t.width=s,r=t.height=o),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var h=this._createVertexs(a,n[0],n[1],s,o,0,0,e,r),_=this.batchIndex*this.positionStride,c=this.float32Array,l=this.uint32Array,d=(t.tint>>16)+(65280&t.tint)+((255&t.tint)<<16)+(255*t.__webglRenderAlpha<<24);c[_+0]=h[0],c[_+1]=h[1],c[_+2]=h[2],c[_+3]=h[3],l[_+4]=d,c[_+5]=h[4],c[_+6]=h[5],c[_+7]=h[6],c[_+8]=h[7],l[_+9]=d,c[_+10]=h[8],c[_+11]=h[9],c[_+12]=h[10],c[_+13]=h[11],l[_+14]=d,c[_+15]=h[12],c[_+16]=h[13],c[_+17]=h[14],c[_+18]=h[15],l[_+19]=d;for(var u=t.__webglWorldMatrix,f=0;f<4;f++){var g=c[_+5*f],T=c[_+5*f+1];c[_+5*f]=u.a*g+u.c*T+u.tx,c[_+5*f+1]=u.b*g+u.d*T+u.ty}t.__textureImage=a,this.sprites[this.batchIndex++]=t}},endDraw:function(t){t===this.stage&&this._renderBatches()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void r.setElementStyleByView(t);var i=t.scaleX,n=t.scaleY;if(t===this.stage){var s=this.canvas.style,o=t._scaleX,h=t._scaleY,_=!1;(!o&&1!=i||o&&o!=i)&&(t._scaleX=i,s.width=i*t.width+"px",_=!0),(!h&&1!=n||h&&h!=n)&&(t._scaleY=n,s.height=n*t.height+"px",_=!0),_&&t.updateViewport(),t.__webglWorldMatrix=t.__webglWorldMatrix||new a(1,0,0,1,0,0)}else t.parent&&(t.__webglWorldMatrix=t.__webglWorldMatrix||new a(1,0,0,1,0,0),this._setConcatenatedMatrix(t,t.parent));t.alpha>0&&(t.parent&&t.parent.__webglRenderAlpha?t.__webglRenderAlpha=t.alpha*t.parent.__webglRenderAlpha:t.__webglRenderAlpha=t.alpha)},remove:function(t){var e=t.drawable,r=e&&e.domElement;if(r){var i=r.parentNode;i&&i.removeChild(r)}},clear:function(t,e,r,i){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(t,e){if(this.width!==t||this.height!==e){var r=this.canvas,i=this.stage,a=r.style;this.width=r.width=t,this.height=r.height=e,a.width=i.width*i.scaleX+"px",a.height=i.height*i.scaleY+"px",this.gl.viewport(0,0,t,e),this.canvasHalfWidth=.5*t,this.canvasHalfHeight=.5*e,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var t=this.gl;t.bufferSubData(t.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var e=0,r=0,i=null,a=0;a0&&(r.bindTexture(r.TEXTURE_2D,this._getTexture(this.sprites[t])),r.drawElements(r.TRIANGLES,6*i,r.UNSIGNED_SHORT,6*t*2))},_uploadProjectionTransform:function(t){this._projectionTransformElements&&!t||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var t=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",e="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new o(this,{v:t,f:e},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(t,e,r,i,a,n,s,o,h){var _=this.__tempVertexs||[],c=t.width,l=t.height;i/=c,a/=l,e/=c,r/=l,o=o,h=h,n=n,s=s,i+e>1&&(i=1-e),a+r>1&&(a=1-r);var d=0;return _[d++]=n,_[d++]=s,_[d++]=e,_[d++]=r,_[d++]=n+o,_[d++]=s,_[d++]=e+i,_[d++]=r,_[d++]=n,_[d++]=s+h,_[d++]=e,_[d++]=r+a,_[d++]=n+o,_[d++]=s+h,_[d++]=e+i,_[d++]=r+a,_},_setConcatenatedMatrix:function(t,e){var r=t.__webglWorldMatrix,i=1,a=0,s=t.rotation%360,o=t.pivotX,h=t.pivotY,_=t.scaleX,c=t.scaleY;if(s){var l=s*n;i=Math.cos(l),a=Math.sin(l)}var d=t.getAlignPosition();r.a=i*_,r.b=a*_,r.c=-a*c,r.d=i*c,r.tx=d.x-r.a*o-r.c*h,r.ty=d.y-r.b*o-r.d*h,r.concat(e.__webglWorldMatrix)},_getTexture:function(t){var e=t.__textureImage,r=this._cacheTexture[e.src];return r||(r=this.activeShader.uploadTexture(e)),r}}),o=function(t,e,r){this.renderer=t,this.gl=t.gl,this.program=this._createProgram(this.gl,e.v,e.f),r=r||{},this.attributes=r.attributes||[],this.uniforms=r.uniforms||[]};o.prototype={active:function(){var t=this,e=t.renderer,r=t.gl,i=t.program;i&&r&&(e.activeShader=t,r.useProgram(i),t.attributes.forEach(function(t){e[t]=r.getAttribLocation(i,t),r.enableVertexAttribArray(e[t])}),t.uniforms.forEach(function(t){e[t]=r.getUniformLocation(i,t)}),t.width===e.width&&t.height===e.height||(t.width=e.width,t.height=e.height,e._uploadProjectionTransform()))},uploadTexture:function(t){var e=this.gl,r=this.renderer,i=e.createTexture(),a=r.u_Sampler;return e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,i),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.uniform1i(a,0),e.bindTexture(e.TEXTURE_2D,null),this.renderer._cacheTexture[t.src]=i,i},_createProgram:function(t,e,r){var i=this._createShader(t,t.VERTEX_SHADER,e),a=this._createShader(t,t.FRAGMENT_SHADER,r);if(!i||!a)return null;var n=t.createProgram();if(n){t.attachShader(n,i),t.attachShader(n,a),t.linkProgram(n),t.deleteShader(a),t.deleteShader(i);var s=t.getProgramParameter(n,t.LINK_STATUS);if(!s){var o=t.getProgramInfoLog(n);return console.log("Failed to link program: "+o),t.deleteProgram(n),null}}return n},_createShader:function(t,e,r){var i=t.createShader(e);if(i){t.shaderSource(i,r),t.compileShader(i);var a=t.getShaderParameter(i,t.COMPILE_STATUS);if(!a){var n=t.getShaderInfoLog(i);return console.log("Failed to compile shader: "+n),t.deleteShader(i),null}}return i}},t.Hilo.WebGLRenderer=s}(window); \ No newline at end of file +!function(t){t.Hilo||(t.Hilo={});var e=t.Hilo.Class,r=t.Hilo,i=t.Hilo.Renderer,a=t.Hilo.Matrix,n=Math.PI/180,s=e.create({Extends:i,Statics:{MAX_BATCH_NUM:2e3,ATTRIBUTE_NUM:5,isSupport:function(){if(void 0==this._isSupported){var t=document.createElement("canvas");t.getContext&&(t.getContext("webgl")||t.getContext("experimental-webgl"))?this._isSupported=!0:this._isSupported=!1}return this._isSupported}},renderType:"webgl",gl:null,_isContextLost:!1,_cacheTexture:{},constructor:function(t){s.superclass.constructor.call(this,t);var e=this;this.gl=this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl"),this.maxBatchNum=s.MAX_BATCH_NUM,this.positionStride=4*s.ATTRIBUTE_NUM;var r=this.maxBatchNum*s.ATTRIBUTE_NUM*4,i=6*this.maxBatchNum;this.arrayBuffer=new ArrayBuffer(4*r),this.float32Array=new Float32Array(this.arrayBuffer),this.uint32Array=new Uint32Array(this.arrayBuffer),this.indexs=new Uint16Array(i);for(var a=0,n=0;a0)&&(t===this.stage&&this.clear(),!0)},draw:function(t){var e=t.width,r=t.height,i=(t.background,t.drawable),a=i&&i.image;if(a){var n=i.rect,s=n[2],o=n[3];e||r||(e=t.width=s,r=t.height=o),this.batchIndex>=this.maxBatchNum&&this._renderBatches();var h=this._createVertexs(a,n[0],n[1],s,o,0,0,e,r),_=this.batchIndex*this.positionStride,c=this.float32Array,l=this.uint32Array,d=(t.tint>>16)+(65280&t.tint)+((255&t.tint)<<16)+(255*t.__webglRenderAlpha<<24);c[_+0]=h[0],c[_+1]=h[1],c[_+2]=h[2],c[_+3]=h[3],l[_+4]=d,c[_+5]=h[4],c[_+6]=h[5],c[_+7]=h[6],c[_+8]=h[7],l[_+9]=d,c[_+10]=h[8],c[_+11]=h[9],c[_+12]=h[10],c[_+13]=h[11],l[_+14]=d,c[_+15]=h[12],c[_+16]=h[13],c[_+17]=h[14],c[_+18]=h[15],l[_+19]=d;for(var u=t.__webglWorldMatrix,f=0;f<4;f++){var g=c[_+5*f],T=c[_+5*f+1];c[_+5*f]=u.a*g+u.c*T+u.tx,c[_+5*f+1]=u.b*g+u.d*T+u.ty}t.__textureImage=a,this.sprites[this.batchIndex++]=t}},endDraw:function(t){t===this.stage&&this._renderBatches()},transform:function(t){var e=t.drawable;if(e&&e.domElement)return void r.setElementStyleByView(t);var i=t.scaleX,n=t.scaleY;if(t===this.stage){var s=this.canvas.style,o=t._scaleX,h=t._scaleY,_=!1;(!o&&1!=i||o&&o!=i)&&(t._scaleX=i,s.width=i*t.width+"px",_=!0),(!h&&1!=n||h&&h!=n)&&(t._scaleY=n,s.height=n*t.height+"px",_=!0),_&&t.updateViewport(),t.__webglWorldMatrix=t.__webglWorldMatrix||new a(1,0,0,1,0,0)}else t.parent&&(t.__webglWorldMatrix=t.__webglWorldMatrix||new a(1,0,0,1,0,0),this._setConcatenatedMatrix(t,t.parent));t.alpha>0&&(t.parent&&t.parent.__webglRenderAlpha?t.__webglRenderAlpha=t.alpha*t.parent.__webglRenderAlpha:t.__webglRenderAlpha=t.alpha)},remove:function(t){var e=t.drawable,r=e&&e.domElement;if(r){var i=r.parentNode;i&&i.removeChild(r)}},clear:function(t,e,r,i){this.gl.clear(this.gl.COLOR_BUFFER_BIT)},resize:function(t,e){if(this.width!==t||this.height!==e){var r=this.canvas,i=this.stage,a=r.style;this.width=r.width=t,this.height=r.height=e,a.width=i.width*i.scaleX+"px",a.height=i.height*i.scaleY+"px",this.gl.viewport(0,0,t,e),this.canvasHalfWidth=.5*t,this.canvasHalfHeight=.5*e,this._uploadProjectionTransform(!0)}},_renderBatches:function(){var t=this.gl;t.bufferSubData(t.ARRAY_BUFFER,0,this.uint32Array.subarray(0,this.batchIndex*this.positionStride));for(var e=0,r=0,i=null,a=0;a0&&(r.bindTexture(r.TEXTURE_2D,this._getTexture(this.sprites[t])),r.drawElements(r.TRIANGLES,6*i,r.UNSIGNED_SHORT,6*t*2))},_uploadProjectionTransform:function(t){this._projectionTransformElements&&!t||(this._projectionTransformElements=new Float32Array([1/this.canvasHalfWidth,0,0,0,-1/this.canvasHalfHeight,0,-1,1,1])),this.gl.uniformMatrix3fv(this.u_projectionTransform,!1,this._projectionTransformElements)},_initShaders:function(){var t=" attribute vec2 a_position;\n attribute vec2 a_TexCoord;\n attribute vec4 a_tint;\n uniform mat3 u_projectionTransform;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_Position = vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n v_TexCoord = a_TexCoord;\n v_tint = vec4(a_tint.rgb * a_tint.a, a_tint.a);\n }\n ",e="\n precision mediump float;\n uniform sampler2D u_Sampler;\n varying vec2 v_TexCoord;\n varying vec4 v_tint;\n void main(){\n gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_tint;\n }\n ";this.defaultShader=new o(this,{v:t,f:e},{attributes:["a_position","a_TexCoord","a_tint"],uniforms:["u_projectionTransform","u_Sampler"]})},_createVertexs:function(t,e,r,i,a,n,s,o,h){var _=this.__tempVertexs||[],c=t.width,l=t.height;i/=c,a/=l,e/=c,r/=l,o=o,h=h,n=n,s=s,i+e>1&&(i=1-e),a+r>1&&(a=1-r);var d=0;return _[d++]=n,_[d++]=s,_[d++]=e,_[d++]=r,_[d++]=n+o,_[d++]=s,_[d++]=e+i,_[d++]=r,_[d++]=n,_[d++]=s+h,_[d++]=e,_[d++]=r+a,_[d++]=n+o,_[d++]=s+h,_[d++]=e+i,_[d++]=r+a,_},_setConcatenatedMatrix:function(t,e){var r=t.__webglWorldMatrix,i=1,a=0,s=t.rotation%360,o=t.pivotX,h=t.pivotY,_=t.scaleX,c=t.scaleY,l=t.transform;if(l)r.copy(l);else{if(s){var d=s*n;i=Math.cos(d),a=Math.sin(d)}var u=t.getAlignPosition();r.a=i*_,r.b=a*_,r.c=-a*c,r.d=i*c,r.tx=u.x-r.a*o-r.c*h,r.ty=u.y-r.b*o-r.d*h}r.concat(e.__webglWorldMatrix)},_getTexture:function(t){var e=t.__textureImage,r=this._cacheTexture[e.src];return r||(r=this.activeShader.uploadTexture(e)),r}}),o=function(t,e,r){this.renderer=t,this.gl=t.gl,this.program=this._createProgram(this.gl,e.v,e.f),r=r||{},this.attributes=r.attributes||[],this.uniforms=r.uniforms||[]};o.prototype={active:function(){var t=this,e=t.renderer,r=t.gl,i=t.program;i&&r&&(e.activeShader=t,r.useProgram(i),t.attributes.forEach(function(t){e[t]=r.getAttribLocation(i,t),r.enableVertexAttribArray(e[t])}),t.uniforms.forEach(function(t){e[t]=r.getUniformLocation(i,t)}),t.width===e.width&&t.height===e.height||(t.width=e.width,t.height=e.height,e._uploadProjectionTransform()))},uploadTexture:function(t){var e=this.gl,r=this.renderer,i=e.createTexture(),a=r.u_Sampler;return e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,i),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.uniform1i(a,0),e.bindTexture(e.TEXTURE_2D,null),this.renderer._cacheTexture[t.src]=i,i},_createProgram:function(t,e,r){var i=this._createShader(t,t.VERTEX_SHADER,e),a=this._createShader(t,t.FRAGMENT_SHADER,r);if(!i||!a)return null;var n=t.createProgram();if(n){t.attachShader(n,i),t.attachShader(n,a),t.linkProgram(n),t.deleteShader(a),t.deleteShader(i);var s=t.getProgramParameter(n,t.LINK_STATUS);if(!s){var o=t.getProgramInfoLog(n);return console.log("Failed to link program: "+o),t.deleteProgram(n),null}}return n},_createShader:function(t,e,r){var i=t.createShader(e);if(i){t.shaderSource(i,r),t.compileShader(i);var a=t.getShaderParameter(i,t.COMPILE_STATUS);if(!a){var n=t.getShaderInfoLog(i);return console.log("Failed to compile shader: "+n),t.deleteShader(i),null}}return i}},t.Hilo.WebGLRenderer=s}(window); \ No newline at end of file diff --git a/build/standalone/hilo/tween/Ease.js b/build/standalone/hilo/tween/Ease.js index a37a87f4..a5108a76 100644 --- a/build/standalone/hilo/tween/Ease.js +++ b/build/standalone/hilo/tween/Ease.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/tween/Ease.min.js b/build/standalone/hilo/tween/Ease.min.js index 0fe01476..2c7dcf12 100644 --- a/build/standalone/hilo/tween/Ease.min.js +++ b/build/standalone/hilo/tween/Ease.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/tween/Tween.js b/build/standalone/hilo/tween/Tween.js index 326fcda0..8d1bcaad 100644 --- a/build/standalone/hilo/tween/Tween.js +++ b/build/standalone/hilo/tween/Tween.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/tween/Tween.min.js b/build/standalone/hilo/tween/Tween.min.js index 8b313aa0..29f31a43 100644 --- a/build/standalone/hilo/tween/Tween.min.js +++ b/build/standalone/hilo/tween/Tween.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/util/TextureAtlas.js b/build/standalone/hilo/util/TextureAtlas.js index f50c8ae7..9ec5589f 100644 --- a/build/standalone/hilo/util/TextureAtlas.js +++ b/build/standalone/hilo/util/TextureAtlas.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/util/TextureAtlas.min.js b/build/standalone/hilo/util/TextureAtlas.min.js index 020be8cd..eb7f4b25 100644 --- a/build/standalone/hilo/util/TextureAtlas.min.js +++ b/build/standalone/hilo/util/TextureAtlas.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/util/Ticker.js b/build/standalone/hilo/util/Ticker.js index fcff5137..67dfdec8 100644 --- a/build/standalone/hilo/util/Ticker.js +++ b/build/standalone/hilo/util/Ticker.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/util/Ticker.min.js b/build/standalone/hilo/util/Ticker.min.js index 91a93851..e678055c 100644 --- a/build/standalone/hilo/util/Ticker.min.js +++ b/build/standalone/hilo/util/Ticker.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/util/browser.js b/build/standalone/hilo/util/browser.js index 26649138..b5492829 100644 --- a/build/standalone/hilo/util/browser.js +++ b/build/standalone/hilo/util/browser.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/util/browser.min.js b/build/standalone/hilo/util/browser.min.js index 48f7c95b..3857198a 100644 --- a/build/standalone/hilo/util/browser.min.js +++ b/build/standalone/hilo/util/browser.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/util/drag.js b/build/standalone/hilo/util/drag.js index 05891ee9..676f4eb7 100644 --- a/build/standalone/hilo/util/drag.js +++ b/build/standalone/hilo/util/drag.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/util/drag.min.js b/build/standalone/hilo/util/drag.min.js index 8f40a082..0aaa7eca 100644 --- a/build/standalone/hilo/util/drag.min.js +++ b/build/standalone/hilo/util/drag.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/util/polyfill.js b/build/standalone/hilo/util/polyfill.js index fa9eb576..2296b0d7 100644 --- a/build/standalone/hilo/util/polyfill.js +++ b/build/standalone/hilo/util/polyfill.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/util/polyfill.min.js b/build/standalone/hilo/util/polyfill.min.js index cde82a50..e0f3c144 100644 --- a/build/standalone/hilo/util/polyfill.min.js +++ b/build/standalone/hilo/util/polyfill.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/util/util.js b/build/standalone/hilo/util/util.js index 86f8eb9f..1ece0f58 100644 --- a/build/standalone/hilo/util/util.js +++ b/build/standalone/hilo/util/util.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/util/util.min.js b/build/standalone/hilo/util/util.min.js index f34607fc..ad196f78 100644 --- a/build/standalone/hilo/util/util.min.js +++ b/build/standalone/hilo/util/util.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/Bitmap.js b/build/standalone/hilo/view/Bitmap.js index ae85ddae..f74765c9 100644 --- a/build/standalone/hilo/view/Bitmap.js +++ b/build/standalone/hilo/view/Bitmap.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/Bitmap.min.js b/build/standalone/hilo/view/Bitmap.min.js index 5173d20b..22148fb3 100644 --- a/build/standalone/hilo/view/Bitmap.min.js +++ b/build/standalone/hilo/view/Bitmap.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/BitmapText.js b/build/standalone/hilo/view/BitmapText.js index a03368b9..3aa8585f 100644 --- a/build/standalone/hilo/view/BitmapText.js +++ b/build/standalone/hilo/view/BitmapText.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/BitmapText.min.js b/build/standalone/hilo/view/BitmapText.min.js index 2094017f..76592e63 100644 --- a/build/standalone/hilo/view/BitmapText.min.js +++ b/build/standalone/hilo/view/BitmapText.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/Button.js b/build/standalone/hilo/view/Button.js index f3988ce0..b87c81c2 100644 --- a/build/standalone/hilo/view/Button.js +++ b/build/standalone/hilo/view/Button.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/Button.min.js b/build/standalone/hilo/view/Button.min.js index 3c1beb75..5b679a5c 100644 --- a/build/standalone/hilo/view/Button.min.js +++ b/build/standalone/hilo/view/Button.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/CacheMixin.js b/build/standalone/hilo/view/CacheMixin.js index 25abcfdd..9ab2fe73 100644 --- a/build/standalone/hilo/view/CacheMixin.js +++ b/build/standalone/hilo/view/CacheMixin.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/CacheMixin.min.js b/build/standalone/hilo/view/CacheMixin.min.js index f0a95acc..eb95458a 100644 --- a/build/standalone/hilo/view/CacheMixin.min.js +++ b/build/standalone/hilo/view/CacheMixin.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/Container.js b/build/standalone/hilo/view/Container.js index 44907345..21154b11 100644 --- a/build/standalone/hilo/view/Container.js +++ b/build/standalone/hilo/view/Container.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/Container.min.js b/build/standalone/hilo/view/Container.min.js index 870b5419..1958635d 100644 --- a/build/standalone/hilo/view/Container.min.js +++ b/build/standalone/hilo/view/Container.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/DOMElement.js b/build/standalone/hilo/view/DOMElement.js index aa3e2d2e..305b91b3 100644 --- a/build/standalone/hilo/view/DOMElement.js +++ b/build/standalone/hilo/view/DOMElement.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -87,7 +87,8 @@ var DOMElement = Class.create(/** @lends DOMElement.prototype */{ style:{ 'position':'absolute', 'transform':'scale3d(' + stage.scaleX + ',' + stage.scaleY + ', 1)', - 'transformOrigin':'0 0' + 'transformOrigin':'0 0', + 'zIndex':'1' } }); canvas.parentNode.insertBefore(renderer._domElementContainer, canvas.nextSibling); diff --git a/build/standalone/hilo/view/DOMElement.min.js b/build/standalone/hilo/view/DOMElement.min.js index c949ce4f..6fe9122a 100644 --- a/build/standalone/hilo/view/DOMElement.min.js +++ b/build/standalone/hilo/view/DOMElement.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ -!function(e){e.Hilo||(e.Hilo={});var t=e.Hilo,n=e.Hilo.Class,i=e.Hilo.View,r=e.Hilo.Drawable,s=n.create({Extends:i,constructor:function(e){e=e||{},this.id=this.id||e.id||t.getUid("DOMElement"),s.superclass.constructor.call(this,e),this.drawable=new r;var n=this.drawable.domElement=e.element||t.createElement("div");n.id=this.id,this.pointerEnabled&&!n.style.pointerEvents&&(n.style.pointerEvents="visible")},_render:function(e,t){this.onUpdate&&this.onUpdate(t)===!1||(e.transform(this),this.visible&&this.alpha>0&&this.render(e,t))},render:function(e,n){if("dom"!==e.renderType){var i=e.canvas,r=this.parent,s=e._domElementContainer;e._domElementContainer||(s=e._domElementContainer=t.createElement("div",{style:{position:"absolute",transform:"scale3d("+r.scaleX+","+r.scaleY+", 1)",transformOrigin:"0 0"}}),i.parentNode.insertBefore(e._domElementContainer,i.nextSibling));var o,l=this.drawable.domElement,a=this.depth,d=s.childNodes[0];if(l.parentNode)return;for(;d&&3!=d.nodeType&&(o=parseInt(d.style.zIndex)||0,!(o<=0||o>a));)d=d.nextSibling;s.insertBefore(this.drawable.domElement,d)}else e.draw(this)}});e.Hilo.DOMElement=s}(window); \ No newline at end of file +!function(e){e.Hilo||(e.Hilo={});var t=e.Hilo,n=e.Hilo.Class,i=e.Hilo.View,r=e.Hilo.Drawable,s=n.create({Extends:i,constructor:function(e){e=e||{},this.id=this.id||e.id||t.getUid("DOMElement"),s.superclass.constructor.call(this,e),this.drawable=new r;var n=this.drawable.domElement=e.element||t.createElement("div");n.id=this.id,this.pointerEnabled&&!n.style.pointerEvents&&(n.style.pointerEvents="visible")},_render:function(e,t){this.onUpdate&&this.onUpdate(t)===!1||(e.transform(this),this.visible&&this.alpha>0&&this.render(e,t))},render:function(e,n){if("dom"!==e.renderType){var i=e.canvas,r=this.parent,s=e._domElementContainer;e._domElementContainer||(s=e._domElementContainer=t.createElement("div",{style:{position:"absolute",transform:"scale3d("+r.scaleX+","+r.scaleY+", 1)",transformOrigin:"0 0",zIndex:"1"}}),i.parentNode.insertBefore(e._domElementContainer,i.nextSibling));var o,l=this.drawable.domElement,a=this.depth,d=s.childNodes[0];if(l.parentNode)return;for(;d&&3!=d.nodeType&&(o=parseInt(d.style.zIndex)||0,!(o<=0||o>a));)d=d.nextSibling;s.insertBefore(this.drawable.domElement,d)}else e.draw(this)}});e.Hilo.DOMElement=s}(window); \ No newline at end of file diff --git a/build/standalone/hilo/view/Drawable.js b/build/standalone/hilo/view/Drawable.js index fa0954f6..d18ea4c1 100644 --- a/build/standalone/hilo/view/Drawable.js +++ b/build/standalone/hilo/view/Drawable.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/Drawable.min.js b/build/standalone/hilo/view/Drawable.min.js index 08053c5d..d64a428f 100644 --- a/build/standalone/hilo/view/Drawable.min.js +++ b/build/standalone/hilo/view/Drawable.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/Graphics.js b/build/standalone/hilo/view/Graphics.js index 1baf2457..423feaf0 100644 --- a/build/standalone/hilo/view/Graphics.js +++ b/build/standalone/hilo/view/Graphics.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/Graphics.min.js b/build/standalone/hilo/view/Graphics.min.js index 21a0c587..fb27639a 100644 --- a/build/standalone/hilo/view/Graphics.min.js +++ b/build/standalone/hilo/view/Graphics.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/Sprite.js b/build/standalone/hilo/view/Sprite.js index 54efdd84..f77a3f3b 100644 --- a/build/standalone/hilo/view/Sprite.js +++ b/build/standalone/hilo/view/Sprite.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/Sprite.min.js b/build/standalone/hilo/view/Sprite.min.js index ba50c405..06fd4c7d 100644 --- a/build/standalone/hilo/view/Sprite.min.js +++ b/build/standalone/hilo/view/Sprite.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/Stage.js b/build/standalone/hilo/view/Stage.js index 4ecf1dcc..61c980d8 100644 --- a/build/standalone/hilo/view/Stage.js +++ b/build/standalone/hilo/view/Stage.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/Stage.min.js b/build/standalone/hilo/view/Stage.min.js index d6c4aa8a..744eefd9 100644 --- a/build/standalone/hilo/view/Stage.min.js +++ b/build/standalone/hilo/view/Stage.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/Text.js b/build/standalone/hilo/view/Text.js index 403ad600..478a452d 100644 --- a/build/standalone/hilo/view/Text.js +++ b/build/standalone/hilo/view/Text.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/Text.min.js b/build/standalone/hilo/view/Text.min.js index 16957a3e..bebc8295 100644 --- a/build/standalone/hilo/view/Text.min.js +++ b/build/standalone/hilo/view/Text.min.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ diff --git a/build/standalone/hilo/view/View.js b/build/standalone/hilo/view/View.js index 6bcdace4..07b5654c 100644 --- a/build/standalone/hilo/view/View.js +++ b/build/standalone/hilo/view/View.js @@ -1,5 +1,5 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ @@ -37,6 +37,7 @@ var util = window.Hilo.util; * @property {Number} pivotY Position of the center point on the y axis of the view, default value is 0. * @property {Number} scaleX The x axis scale factor of the view, default value is 1. * @property {Number} scaleY The y axis scale factor of the view, default value is 1. + * @property {Matrix} transform The transform of the view.If set the transform, x, y, scaleX, scaleY, rotation, pivotX, pivotY will be ignored.default is null. * @property {Boolean} pointerEnabled Is the view can receive DOM events, default value is true. * @property {Object} background The background style to fill the view, can be css color, gradient or pattern of canvas * @property {Graphics} mask Sets a mask for the view. A mask is an object that limits the visibility of an object to the shape of the mask applied to it. A regular mask must be a Hilo.Graphics object. This allows for much faster masking in canvas as it utilises shape clipping. To remove a mask, set this property to null. @@ -78,6 +79,7 @@ return Class.create(/** @lends View.prototype */{ boundsArea: null, parent: null, depth: -1, + transform: null, blendMode:'source-over', /** @@ -190,19 +192,26 @@ return Class.create(/** @lends View.prototype */{ var cos = 1, sin = 0, rotation = o.rotation % 360, pivotX = o.pivotX, pivotY = o.pivotY, - scaleX = o.scaleX, scaleY = o.scaleY; + scaleX = o.scaleX, scaleY = o.scaleY, + transform = o.transform; - if(rotation){ - var r = rotation * Math.PI / 180; - cos = Math.cos(r); - sin = Math.sin(r); + if(transform) { + mtx.concat(transform); } + else{ + if(rotation){ + var r = rotation * Math.PI / 180; + cos = Math.cos(r); + sin = Math.sin(r); + } - if(pivotX != 0) mtx.tx -= pivotX; - if(pivotY != 0) mtx.ty -= pivotY; + if(pivotX != 0) mtx.tx -= pivotX; + if(pivotY != 0) mtx.ty -= pivotY; - var pos = o.getAlignPosition(); - mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + var pos = o.getAlignPosition(); + mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + } + } return mtx; }, diff --git a/build/standalone/hilo/view/View.min.js b/build/standalone/hilo/view/View.min.js index be4742a2..8e5ea6cd 100644 --- a/build/standalone/hilo/view/View.min.js +++ b/build/standalone/hilo/view/View.min.js @@ -1,6 +1,6 @@ /** - * Hilo 1.1.11 for standalone + * Hilo 1.2.0 for standalone * Copyright 2016 alibaba.com * Licensed under the MIT License */ -!function(t){t.Hilo||(t.Hilo={});var e=t.Hilo,i=t.Hilo.Class,n=t.Hilo.EventMixin,r=t.Hilo.Matrix,o=t.Hilo.util,a=function(){function t(t,e,i){for(var n,r,o,a,s=0,h=!1,u=0,y=i.length;uc.x?(n=c.x,r=l.x):(n=l.x,r=c.x),t>=n&&t<=r))h=!0;else if(l.y>c.y?(o=c.y,a=l.y):(o=l.y,a=c.y),!(ea)){var x=(e-l.y)*(c.x-l.x)/(c.y-l.y)+l.x;if(x>t?s++:x==t&&(h=!0),l.x>t&&l.y==e){var d=i[(y+u-1)%y];(d.ye||d.y>e&&c.ys?s=y:yu?u=y:y=0)return!1;l>i.overlap&&(i.overlap=l,i.normal.x=d.x,i.normal.y=d.y)}return i}return i.create({Mixes:n,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("View"),o.copy(this,t,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,n,r,o,a,s=this.width,h=this.height,u=this.getConcatenatedMatrix(),y=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:h},{x:0,y:h}],l=[],c=0,x=y.length;ce?n=e:ri?o=i:a>1,n=0;break;case"TR":i=a-r,n=0;break;case"L":i=0,n=s-o>>1;break;case"C":i=a-r>>1,n=s-o>>1;break;case"R":i=a-r,n=s-o>>1;break;case"BL":i=0,n=s-o;break;case"B":i=a-r>>1,n=s-o;break;case"BR":i=a-r,n=s-o}}return{x:i,y:n}},hitTestPoint:function(e,i,n){var r=this.getBounds(),o=e>=r.x&&e<=r.x+r.width&&i>=r.y&&i<=r.y+r.height;return o&&n&&(o=t(e,i,r)),o},hitTestObject:function(t,e){var i=this.getBounds(),n=t.getBounds(),r=i.x<=n.x+n.width&&n.x<=i.x+i.width&&i.y<=n.y+n.height&&n.y<=i.y+i.height;return r&&e&&(r=a(i,n)),!!r},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=o.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return e.viewToString(this)}})}();t.Hilo.View=a}(window); \ No newline at end of file +!function(t){t.Hilo||(t.Hilo={});var e=t.Hilo,i=t.Hilo.Class,n=t.Hilo.EventMixin,r=t.Hilo.Matrix,o=t.Hilo.util,a=function(){function t(t,e,i){for(var n,r,o,a,s=0,h=!1,u=0,l=i.length;uc.x?(n=c.x,r=y.x):(n=y.x,r=c.x),t>=n&&t<=r))h=!0;else if(y.y>c.y?(o=c.y,a=y.y):(o=y.y,a=c.y),!(ea)){var x=(e-y.y)*(c.x-y.x)/(c.y-y.y)+y.x;if(x>t?s++:x==t&&(h=!0),y.x>t&&y.y==e){var d=i[(l+u-1)%l];(d.ye||d.y>e&&c.ys?s=l:lu?u=l:l=0)return!1;y>i.overlap&&(i.overlap=y,i.normal.x=d.x,i.normal.y=d.y)}return i}return i.create({Mixes:n,constructor:function(t){t=t||{},this.id=this.id||t.id||e.getUid("View"),o.copy(this,t,!0)},tint:16777215,id:null,x:0,y:0,width:0,height:0,alpha:1,rotation:0,visible:!0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,pointerEnabled:!0,background:null,mask:null,align:null,drawable:null,boundsArea:null,parent:null,depth:-1,transform:null,blendMode:"source-over",getStage:function(){for(var t,e=this;t=e.parent;)e=t;return e.canvas?e:null},getScaledWidth:function(){return this.width*this.scaleX},getScaledHeight:function(){return this.height*this.scaleY},addTo:function(t,e){return"number"==typeof e?t.addChildAt(this,e):t.addChild(this),this},removeFromParent:function(){var t=this.parent;return t&&t.removeChild(this),this},getBounds:function(){for(var t,e,i,n,r,o,a,s=this.width,h=this.height,u=this.getConcatenatedMatrix(),l=this.boundsArea||[{x:0,y:0},{x:s,y:0},{x:s,y:h},{x:0,y:h}],y=[],c=0,x=l.length;ce?n=e:ri?o=i:a>1,n=0;break;case"TR":i=a-r,n=0;break;case"L":i=0,n=s-o>>1;break;case"C":i=a-r>>1,n=s-o>>1;break;case"R":i=a-r,n=s-o>>1;break;case"BL":i=0,n=s-o;break;case"B":i=a-r>>1,n=s-o;break;case"BR":i=a-r,n=s-o}}return{x:i,y:n}},hitTestPoint:function(e,i,n){var r=this.getBounds(),o=e>=r.x&&e<=r.x+r.width&&i>=r.y&&i<=r.y+r.height;return o&&n&&(o=t(e,i,r)),o},hitTestObject:function(t,e){var i=this.getBounds(),n=t.getBounds(),r=i.x<=n.x+n.width&&n.x<=i.x+i.width&&i.y<=n.y+n.height&&n.y<=i.y+i.height;return r&&e&&(r=a(i,n)),!!r},_render:function(t,e){this.onUpdate&&this.onUpdate(e)===!1||!t.startDraw(this)||(t.transform(this),this.render(t,e),t.endDraw(this))},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"==t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=o.copy({},t);e.type="mouseover",this.fire(e)}}else"mouseout"==t.type&&(this.__mouseOver=!1);var i=this.parent;t._stopped||t._stopPropagationed||!i||("mouseout"==t.type||"touchout"==t.type?i.hitTestPoint(t.stageX,t.stageY,!0)||i._fireMouseEvent(t):i._fireMouseEvent(t))},onUpdate:null,render:function(t,e){t.draw(this)},toString:function(){return e.viewToString(this)}})}();t.Hilo.View=a}(window); \ No newline at end of file diff --git a/docs/api-en/code/core/Hilo.js b/docs/api-en/code/core/Hilo.js index 0ddd4a66..044772d6 100644 --- a/docs/api-en/code/core/Hilo.js +++ b/docs/api-en/code/core/Hilo.js @@ -217,12 +217,23 @@ var Hilo = { if (this.cacheStateIfChanged(obj, ['depth'], stateCache)) { style.zIndex = obj.depth + 1; } - if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { - style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + if (obj.transform){ + var transform = obj.transform; + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = '0 0'; + } + style[prefix + 'Transform'] = 'matrix3d(' + transform.a + ', '+ transform.b + ', 0, 0, '+ transform.c + ', '+ transform.d + ', 0, 0, 0, 0, 1, 0, '+ transform.tx + ', '+ transform.ty + ', 0, 1)'; } - if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { - style[prefix + 'Transform'] = this.getTransformCSS(obj); + else{ + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + } + + if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { + style[prefix + 'Transform'] = this.getTransformCSS(obj); + } } + if (this.cacheStateIfChanged(obj, ['background'], stateCache)) { style.backgroundColor = obj.background; } diff --git a/docs/api-en/code/geom/Matrix.js b/docs/api-en/code/geom/Matrix.js index dbb3f2e9..14a67dd5 100644 --- a/docs/api-en/code/geom/Matrix.js +++ b/docs/api-en/code/geom/Matrix.js @@ -25,6 +25,50 @@ var Matrix = Class.create(/** @lends Matrix.prototype */{ this.ty = ty; }, + /** + * set + * @param {Number} a + * @param {Number} b + * @param {Number} c + * @param {Number} d + * @param {Number} tx + * @param {Number} ty + */ + set: function(a, b, c, d, tx, ty){ + this.a = a; + this.b = b; + this.c = c; + this.d = d; + this.tx = tx; + this.ty = ty; + + return this; + }, + + /** + * copy + * @param {Matrix} mat + * @return {Matrix} this + */ + copy: function(mat){ + this.a = mat.a; + this.b = mat.b; + this.c = mat.c; + this.d = mat.d; + this.tx = mat.tx; + this.ty = mat.ty; + + return this; + }, + + /** + * clone + * @return {Matrix} + */ + clone: function(){ + return new Matrix().copy(this); + }, + /** * Link a Matrix to current Matrix, in order to make geometry effects on these two composed more effective. * @param {Matrix} mtx Matrix that link to the source matrix. diff --git a/docs/api-en/code/renderer/CanvasRenderer.js b/docs/api-en/code/renderer/CanvasRenderer.js index 53b15109..371ef0f5 100644 --- a/docs/api-en/code/renderer/CanvasRenderer.js +++ b/docs/api-en/code/renderer/CanvasRenderer.js @@ -14,26 +14,26 @@ * @requires hilo/renderer/Renderer * @property {CanvasRenderingContext2D} context The context of the canvas element, readonly. */ -var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ +var CanvasRenderer = Class.create( /** @lends CanvasRenderer.prototype */ { Extends: Renderer, - constructor: function(properties){ + constructor: function(properties) { CanvasRenderer.superclass.constructor.call(this, properties); this.context = this.canvas.getContext("2d"); }, - renderType:'canvas', + renderType: 'canvas', context: null, /** * @private * @see Renderer#startDraw */ - startDraw: function(target){ - if(target.visible && target.alpha > 0){ - if(target === this.stage){ + startDraw: function(target) { + if (target.visible && target.alpha > 0) { + if (target === this.stage) { this.context.clearRect(0, 0, target.width, target.height); } - if(target.blendMode !== this.blendMode){ + if (target.blendMode !== this.blendMode) { this.context.globalCompositeOperation = this.blendMode = target.blendMode; } this.context.save(); @@ -46,31 +46,38 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#draw */ - draw: function(target){ - var ctx = this.context, w = target.width, h = target.height; + draw: function(target) { + var ctx = this.context, + w = target.width, + h = target.height; //draw background var bg = target.background; - if(bg){ + if (bg) { ctx.fillStyle = bg; ctx.fillRect(0, 0, w, h); } //draw image - var drawable = target.drawable, image = drawable && drawable.image; - if(image){ - var rect = drawable.rect, sw = rect[2], sh = rect[3], offsetX = rect[4], offsetY = rect[5]; + var drawable = target.drawable, + image = drawable && drawable.image; + if (image) { + var rect = drawable.rect, + sw = rect[2], + sh = rect[3], + offsetX = rect[4], + offsetY = rect[5]; //ie9+浏览器宽高为0时会报错 fixed ie9 bug. - if(!sw || !sh){ + if (!sw || !sh) { return; } - if(!w && !h){ + if (!w && !h) { //fix width/height TODO: how to get rid of this? w = target.width = sw; h = target.height = sh; } //the pivot is the center of frame if has offset, otherwise is (0, 0) - if(offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); + if (offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); ctx.drawImage(image, rect[0], rect[1], sw, sh, 0, 0, w, h); } }, @@ -79,7 +86,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#endDraw */ - endDraw: function(target){ + endDraw: function(target) { this.context.restore(); }, @@ -87,9 +94,9 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#transform */ - transform: function(target){ + transform: function(target) { var drawable = target.drawable; - if(drawable && drawable.domElement){ + if (drawable && drawable.domElement) { Hilo.setElementStyleByView(target); return; } @@ -98,66 +105,72 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ scaleX = target.scaleX, scaleY = target.scaleY; - if(target === this.stage){ + if (target === this.stage) { var style = this.canvas.style, oldScaleX = target._scaleX, oldScaleY = target._scaleY, isStyleChange = false; - if((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)){ + if ((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)) { target._scaleX = scaleX; style.width = scaleX * target.width + "px"; isStyleChange = true; } - if((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)){ + if ((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)) { target._scaleY = scaleY; style.height = scaleY * target.height + "px"; isStyleChange = true; } - if(isStyleChange){ + if (isStyleChange) { target.updateViewport(); } - }else{ + } else { var x = target.x, y = target.y, pivotX = target.pivotX, pivotY = target.pivotY, rotation = target.rotation % 360, + transform = target.transform, mask = target.mask; - if(mask){ + if (mask) { mask._render(this); ctx.clip(); } //alignment var align = target.align; - if(align){ + if (align) { var pos = target.getAlignPosition(); x = pos.x; y = pos.y; } + + if (transform) { + ctx.transform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); + } else { + if (x != 0 || y != 0) ctx.translate(x, y); + if (rotation != 0) ctx.rotate(rotation * Math.PI / 180); + if (scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); + if (pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); + } - if(x != 0 || y != 0) ctx.translate(x, y); - if(rotation != 0) ctx.rotate(rotation * Math.PI / 180); - if(scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); - if(pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); } - if(target.alpha > 0) ctx.globalAlpha *= target.alpha; + if (target.alpha > 0) ctx.globalAlpha *= target.alpha; }, /** * @private * @see Renderer#remove */ - remove: function(target){ + remove: function(target) { var drawable = target.drawable; var elem = drawable && drawable.domElement; - if(elem){ + if (elem) { var parentElem = elem.parentNode; - if(parentElem){ + if (parentElem) { parentElem.removeChild(elem); } } @@ -167,7 +180,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#clear */ - clear: function(x, y, width, height){ + clear: function(x, y, width, height) { this.context.clearRect(x, y, width, height); }, @@ -175,7 +188,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#resize */ - resize: function(width, height){ + resize: function(width, height) { var canvas = this.canvas; var stage = this.stage; var style = canvas.style; diff --git a/docs/api-en/code/renderer/WebGLRenderer.js b/docs/api-en/code/renderer/WebGLRenderer.js index fd738b83..50f58757 100644 --- a/docs/api-en/code/renderer/WebGLRenderer.js +++ b/docs/api-en/code/renderer/WebGLRenderer.js @@ -416,21 +416,28 @@ var WebGLRenderer = Class.create(/** @lends WebGLRenderer.prototype */{ var cos = 1, sin = 0, rotation = view.rotation % 360, pivotX = view.pivotX, pivotY = view.pivotY, - scaleX = view.scaleX, scaleY = view.scaleY; + scaleX = view.scaleX, scaleY = view.scaleY, + transform = view.transform; - if(rotation){ - var r = rotation * DEG2RAD; - cos = Math.cos(r); - sin = Math.sin(r); + if (transform) { + mtx.copy(transform); } + else { + if(rotation){ + var r = rotation * DEG2RAD; + cos = Math.cos(r); + sin = Math.sin(r); + } + + var pos = view.getAlignPosition(); - var pos = view.getAlignPosition(); - mtx.a = cos*scaleX; - mtx.b = sin*scaleX; - mtx.c = -sin*scaleY; - mtx.d = cos*scaleY; - mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; - mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + mtx.a = cos*scaleX; + mtx.b = sin*scaleX; + mtx.c = -sin*scaleY; + mtx.d = cos*scaleY; + mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; + mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + } mtx.concat(ancestor.__webglWorldMatrix); }, diff --git a/docs/api-en/code/view/View.js b/docs/api-en/code/view/View.js index 3486fc40..9e61156d 100644 --- a/docs/api-en/code/view/View.js +++ b/docs/api-en/code/view/View.js @@ -29,6 +29,7 @@ * @property {Number} pivotY Position of the center point on the y axis of the view, default value is 0. * @property {Number} scaleX The x axis scale factor of the view, default value is 1. * @property {Number} scaleY The y axis scale factor of the view, default value is 1. + * @property {Matrix} transform The transform of the view.If set the transform, x, y, scaleX, scaleY, rotation, pivotX, pivotY will be ignored.default is null. * @property {Boolean} pointerEnabled Is the view can receive DOM events, default value is true. * @property {Object} background The background style to fill the view, can be css color, gradient or pattern of canvas * @property {Graphics} mask Sets a mask for the view. A mask is an object that limits the visibility of an object to the shape of the mask applied to it. A regular mask must be a Hilo.Graphics object. This allows for much faster masking in canvas as it utilises shape clipping. To remove a mask, set this property to null. @@ -70,6 +71,7 @@ return Class.create(/** @lends View.prototype */{ boundsArea: null, parent: null, depth: -1, + transform: null, blendMode:'source-over', /** @@ -175,19 +177,26 @@ return Class.create(/** @lends View.prototype */{ var cos = 1, sin = 0, rotation = o.rotation % 360, pivotX = o.pivotX, pivotY = o.pivotY, - scaleX = o.scaleX, scaleY = o.scaleY; + scaleX = o.scaleX, scaleY = o.scaleY, + transform = o.transform; - if(rotation){ - var r = rotation * Math.PI / 180; - cos = Math.cos(r); - sin = Math.sin(r); + if(transform) { + mtx.concat(transform); } + else{ + if(rotation){ + var r = rotation * Math.PI / 180; + cos = Math.cos(r); + sin = Math.sin(r); + } - if(pivotX != 0) mtx.tx -= pivotX; - if(pivotY != 0) mtx.ty -= pivotY; + if(pivotX != 0) mtx.tx -= pivotX; + if(pivotY != 0) mtx.ty -= pivotY; - var pos = o.getAlignPosition(); - mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + var pos = o.getAlignPosition(); + mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + } + } return mtx; }, diff --git a/docs/api-en/index.html b/docs/api-en/index.html index 7f37efd5..1b6af9cd 100644 --- a/docs/api-en/index.html +++ b/docs/api-en/index.html @@ -188,7 +188,7 @@
    -
    All Class Index(v1.1.13)
    +
    All Class Index(v1.2.0)
    diff --git a/docs/api-en/symbols/Bitmap.html b/docs/api-en/symbols/Bitmap.html index c4ef1096..f04acd76 100644 --- a/docs/api-en/symbols/Bitmap.html +++ b/docs/api-en/symbols/Bitmap.html @@ -626,6 +626,26 @@

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    clone():Matrix +
    +
    + + clone +
    +
    + Matrix +
    @@ -285,6 +303,24 @@

    Methods

    + + +
    copy(mat:Matrix):Matrix +
    +
    + + copy +
    +
    + Matrix +
    @@ -357,6 +393,24 @@

    Methods

    + + +
    set(a:Number, b:Number, c:Number, d:Number, tx:Number, ty:Number) +
    +
    + + set +
    +
    + Matrix +
    @@ -475,6 +529,33 @@

    Constructor


    Method Detail

    + +
    +
    + + clone():Matrix +
    +
    clone
    + + + + + + + + +
    +
    return
    + +
    Matrix
    + +
    + + + + +
    +
    @@ -510,6 +591,43 @@

    Constructor

    +
    + + +
    +
    + + copy(mat:Matrix):Matrix +
    +
    copy
    + + + + +
    +
    parameters
    + +
    + mat:Matrix + — +
    + +
    + + + + + +
    +
    return
    + +
    Matrix — this
    + +
    + + + +
    @@ -643,6 +761,61 @@

    Constructor

    +
    + + +
    +
    + + set(a:Number, b:Number, c:Number, d:Number, tx:Number, ty:Number) +
    +
    set
    + + + + +
    +
    parameters
    + +
    + a:Number + — +
    + +
    + b:Number + — +
    + +
    + c:Number + — +
    + +
    + d:Number + — +
    + +
    + tx:Number + — +
    + +
    + ty:Number + — +
    + +
    + + + + + + + +
    diff --git a/docs/api-en/symbols/ParticleSystem.html b/docs/api-en/symbols/ParticleSystem.html index f9b4e8b8..6ec1fdfa 100644 --- a/docs/api-en/symbols/ParticleSystem.html +++ b/docs/api-en/symbols/ParticleSystem.html @@ -841,6 +841,26 @@

    Properties

    + + +
    + + transform:Matrix +
    +
    + + The transform of the view.If set the transform, x, y, scaleX, scaleY, rotation, pivotX, pivotY will be ignored.default is null. +
    +
    + View +
    @@ -1354,6 +1374,25 @@

    Property Detail

    + + + +
    +
    + transform:Matrix + +
    +
    + The transform of the view.If set the transform, x, y, scaleX, scaleY, rotation, pivotX, pivotY will be ignored.default is null. +
    + + + + + + + +
    diff --git a/docs/api-en/symbols/src/docs_api-en_code_core_Hilo.js.html b/docs/api-en/symbols/src/docs_api-en_code_core_Hilo.js.html index 606102c9..b847c87f 100644 --- a/docs/api-en/symbols/src/docs_api-en_code_core_Hilo.js.html +++ b/docs/api-en/symbols/src/docs_api-en_code_core_Hilo.js.html @@ -224,90 +224,101 @@ 217 if (this.cacheStateIfChanged(obj, ['depth'], stateCache)) { 218 style.zIndex = obj.depth + 1; 219 } -220 if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { -221 style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; -222 } -223 if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { -224 style[prefix + 'Transform'] = this.getTransformCSS(obj); -225 } -226 if (this.cacheStateIfChanged(obj, ['background'], stateCache)) { -227 style.backgroundColor = obj.background; -228 } -229 if (!style.pointerEvents) { -230 style.pointerEvents = 'none'; -231 } -232 -233 //render image as background -234 var image = drawable.image; -235 if (image) { -236 var src = image.src; -237 if (src !== stateCache.image) { -238 stateCache.image = src; -239 style.backgroundImage = 'url(' + src + ')'; -240 } -241 -242 var rect = drawable.rect; -243 if (rect) { -244 var sx = rect[0], -245 sy = rect[1]; -246 if (sx !== stateCache.sx) { -247 stateCache.sx = sx; -248 style.backgroundPositionX = -sx + px; -249 } -250 if (sy !== stateCache.sy) { -251 stateCache.sy = sy; -252 style.backgroundPositionY = -sy + px; -253 } -254 } -255 } -256 -257 //render mask -258 var mask = obj.mask; -259 if (mask) { -260 var maskImage = mask.drawable.domElement.style.backgroundImage; -261 if (maskImage !== stateCache.maskImage) { -262 stateCache.maskImage = maskImage; -263 style[prefix + 'MaskImage'] = maskImage; -264 style[prefix + 'MaskRepeat'] = 'no-repeat'; +220 if (obj.transform){ +221 var transform = obj.transform; +222 if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { +223 style[prefix + 'TransformOrigin'] = '0 0'; +224 } +225 style[prefix + 'Transform'] = 'matrix3d(' + transform.a + ', '+ transform.b + ', 0, 0, '+ transform.c + ', '+ transform.d + ', 0, 0, 0, 0, 1, 0, '+ transform.tx + ', '+ transform.ty + ', 0, 1)'; +226 } +227 else{ +228 if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { +229 style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; +230 } +231 +232 if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { +233 style[prefix + 'Transform'] = this.getTransformCSS(obj); +234 } +235 } +236 +237 if (this.cacheStateIfChanged(obj, ['background'], stateCache)) { +238 style.backgroundColor = obj.background; +239 } +240 if (!style.pointerEvents) { +241 style.pointerEvents = 'none'; +242 } +243 +244 //render image as background +245 var image = drawable.image; +246 if (image) { +247 var src = image.src; +248 if (src !== stateCache.image) { +249 stateCache.image = src; +250 style.backgroundImage = 'url(' + src + ')'; +251 } +252 +253 var rect = drawable.rect; +254 if (rect) { +255 var sx = rect[0], +256 sy = rect[1]; +257 if (sx !== stateCache.sx) { +258 stateCache.sx = sx; +259 style.backgroundPositionX = -sx + px; +260 } +261 if (sy !== stateCache.sy) { +262 stateCache.sy = sy; +263 style.backgroundPositionY = -sy + px; +264 } 265 } -266 -267 var maskX = mask.x, -268 maskY = mask.y; -269 if (maskX !== stateCache.maskX || maskY !== stateCache.maskY) { -270 stateCache.maskX = maskX; -271 stateCache.maskY = maskY; -272 style[prefix + 'MaskPosition'] = maskX + px + ' ' + maskY + px; -273 } -274 } -275 }, -276 -277 /** -278 * @private -279 */ -280 cacheStateIfChanged: function(obj, propNames, stateCache) { -281 var i, len, name, value, changed = false; -282 for (i = 0, len = propNames.length; i < len; i++) { -283 name = propNames[i]; -284 value = obj[name]; -285 if (value != stateCache[name]) { -286 stateCache[name] = value; -287 changed = true; -288 } -289 } -290 return changed; -291 }, -292 -293 /** -294 * Generated visual object CSS style transformation. -295 * @param {View} obj Specifies visual object whose CSS style must be got. -296 * @returns {String} String representation of the CSS style. -297 */ -298 getTransformCSS: function(obj) { -299 var use3d = this.browser.supportTransform3D, -300 str3d = use3d ? '3d' : ''; -301 -302 return 'translate' + str3d + '(' + (obj.x - obj.pivotX) + 'px, ' + (obj.y - obj.pivotY) + (use3d ? 'px, 0px)' : 'px)') + -303 'rotate' + str3d + (use3d ? '(0, 0, 1, ' : '(') + obj.rotation + 'deg)' + -304 'scale' + str3d + '(' + obj.scaleX + ', ' + obj.scaleY + (use3d ? ', 1)' : ')'); -305 } -306 }; \ No newline at end of file +266 } +267 +268 //render mask +269 var mask = obj.mask; +270 if (mask) { +271 var maskImage = mask.drawable.domElement.style.backgroundImage; +272 if (maskImage !== stateCache.maskImage) { +273 stateCache.maskImage = maskImage; +274 style[prefix + 'MaskImage'] = maskImage; +275 style[prefix + 'MaskRepeat'] = 'no-repeat'; +276 } +277 +278 var maskX = mask.x, +279 maskY = mask.y; +280 if (maskX !== stateCache.maskX || maskY !== stateCache.maskY) { +281 stateCache.maskX = maskX; +282 stateCache.maskY = maskY; +283 style[prefix + 'MaskPosition'] = maskX + px + ' ' + maskY + px; +284 } +285 } +286 }, +287 +288 /** +289 * @private +290 */ +291 cacheStateIfChanged: function(obj, propNames, stateCache) { +292 var i, len, name, value, changed = false; +293 for (i = 0, len = propNames.length; i < len; i++) { +294 name = propNames[i]; +295 value = obj[name]; +296 if (value != stateCache[name]) { +297 stateCache[name] = value; +298 changed = true; +299 } +300 } +301 return changed; +302 }, +303 +304 /** +305 * Generated visual object CSS style transformation. +306 * @param {View} obj Specifies visual object whose CSS style must be got. +307 * @returns {String} String representation of the CSS style. +308 */ +309 getTransformCSS: function(obj) { +310 var use3d = this.browser.supportTransform3D, +311 str3d = use3d ? '3d' : ''; +312 +313 return 'translate' + str3d + '(' + (obj.x - obj.pivotX) + 'px, ' + (obj.y - obj.pivotY) + (use3d ? 'px, 0px)' : 'px)') + +314 'rotate' + str3d + (use3d ? '(0, 0, 1, ' : '(') + obj.rotation + 'deg)' + +315 'scale' + str3d + '(' + obj.scaleX + ', ' + obj.scaleY + (use3d ? ', 1)' : ')'); +316 } +317 }; \ No newline at end of file diff --git a/docs/api-en/symbols/src/docs_api-en_code_geom_Matrix.js.html b/docs/api-en/symbols/src/docs_api-en_code_geom_Matrix.js.html index 3c01ecd0..932794de 100644 --- a/docs/api-en/symbols/src/docs_api-en_code_geom_Matrix.js.html +++ b/docs/api-en/symbols/src/docs_api-en_code_geom_Matrix.js.html @@ -33,140 +33,184 @@ 26 }, 27 28 /** - 29 * Link a Matrix to current Matrix, in order to make geometry effects on these two composed more effective. - 30 * @param {Matrix} mtx Matrix that link to the source matrix. - 31 * @returns {Matrix} A Matrix Object. - 32 */ - 33 concat: function(mtx){ - 34 var args = arguments, - 35 a = this.a, b = this.b, c = this.c, d = this.d, - 36 tx = this.tx, ty = this.ty; - 37 - 38 var ma, mb, mc, md, mx, my; - 39 if(args.length >= 6){ - 40 ma = args[0]; - 41 mb = args[1]; - 42 mc = args[2]; - 43 md = args[3]; - 44 mx = args[4]; - 45 my = args[5]; - 46 } - 47 else{ - 48 ma = mtx.a; - 49 mb = mtx.b; - 50 mc = mtx.c; - 51 md = mtx.d; - 52 mx = mtx.tx; - 53 my = mtx.ty; - 54 } - 55 - 56 this.a = a * ma + b * mc; - 57 this.b = a * mb + b * md; - 58 this.c = c * ma + d * mc; - 59 this.d = c * mb + d * md; - 60 this.tx = tx * ma + ty * mc + mx; - 61 this.ty = tx * mb + ty * md + my; - 62 return this; - 63 }, - 64 - 65 /** - 66 * Rotate the Matrix Object. - 67 * @param {Number} angle The angle to rotate. - 68 * @returns {Matrix} A Matrix object. - 69 */ - 70 rotate: function(angle){ - 71 var sin = Math.sin(angle), cos = Math.cos(angle), - 72 a = this.a, b = this.b, c = this.c, d = this.d, - 73 tx = this.tx, ty = this.ty; - 74 - 75 this.a = a * cos - b * sin; - 76 this.b = a * sin + b * cos; - 77 this.c = c * cos - d * sin; - 78 this.d = c * sin + d * cos; - 79 this.tx = tx * cos - ty * sin; - 80 this.ty = tx * sin + ty * cos; - 81 return this; - 82 }, - 83 - 84 /** - 85 * Scale the Matrix. - 86 * @param {Number} sx The value to multiply those object scale alongside the x axis. - 87 * @param {Number} sy The value to multiply those object scale alongside the y axis. - 88 * @returns {Matrix} A Matrix object. - 89 */ - 90 scale: function(sx, sy){ - 91 this.a *= sx; - 92 this.d *= sy; - 93 this.c *= sx; - 94 this.b *= sy; - 95 this.tx *= sx; - 96 this.ty *= sy; - 97 return this; - 98 }, + 29 * set + 30 * @param {Number} a + 31 * @param {Number} b + 32 * @param {Number} c + 33 * @param {Number} d + 34 * @param {Number} tx + 35 * @param {Number} ty + 36 */ + 37 set: function(a, b, c, d, tx, ty){ + 38 this.a = a; + 39 this.b = b; + 40 this.c = c; + 41 this.d = d; + 42 this.tx = tx; + 43 this.ty = ty; + 44 + 45 return this; + 46 }, + 47 + 48 /** + 49 * copy + 50 * @param {Matrix} mat + 51 * @return {Matrix} this + 52 */ + 53 copy: function(mat){ + 54 this.a = mat.a; + 55 this.b = mat.b; + 56 this.c = mat.c; + 57 this.d = mat.d; + 58 this.tx = mat.tx; + 59 this.ty = mat.ty; + 60 + 61 return this; + 62 }, + 63 + 64 /** + 65 * clone + 66 * @return {Matrix} + 67 */ + 68 clone: function(){ + 69 return new Matrix().copy(this); + 70 }, + 71 + 72 /** + 73 * Link a Matrix to current Matrix, in order to make geometry effects on these two composed more effective. + 74 * @param {Matrix} mtx Matrix that link to the source matrix. + 75 * @returns {Matrix} A Matrix Object. + 76 */ + 77 concat: function(mtx){ + 78 var args = arguments, + 79 a = this.a, b = this.b, c = this.c, d = this.d, + 80 tx = this.tx, ty = this.ty; + 81 + 82 var ma, mb, mc, md, mx, my; + 83 if(args.length >= 6){ + 84 ma = args[0]; + 85 mb = args[1]; + 86 mc = args[2]; + 87 md = args[3]; + 88 mx = args[4]; + 89 my = args[5]; + 90 } + 91 else{ + 92 ma = mtx.a; + 93 mb = mtx.b; + 94 mc = mtx.c; + 95 md = mtx.d; + 96 mx = mtx.tx; + 97 my = mtx.ty; + 98 } 99 -100 /** -101 * Translate the Matrix alongside x axis and y axis by dx and dy. -102 * @param {Number} dx Translate Matrix alongside the x axis to the right (measured in px). -103 * @param {Number} dy Translate Matrix alongside the y axis to the right (measured in px). -104 * @returns {Matrix} A Matrix object. -105 */ -106 translate: function(dx, dy){ -107 this.tx += dx; -108 this.ty += dy; -109 return this; -110 }, -111 -112 /** -113 * Set each Matrix property a value to trigger null transform. The Matrix after applying identity matrix transformation will be exactly the same as original. -114 * @returns {Matrix} A Matrix object. -115 */ -116 identity: function(){ -117 this.a = this.d = 1; -118 this.b = this.c = this.tx = this.ty = 0; -119 return this; -120 }, -121 -122 /** -123 * Apply an invert transformation of original Matrix. Using this invert transformation, you can reset a Matrix to a state before it had been apply some Matrix. -124 * @returns {Matrix} A Matrix object. -125 */ -126 invert: function(){ -127 var a = this.a; -128 var b = this.b; -129 var c = this.c; -130 var d = this.d; -131 var tx = this.tx; -132 var i = a * d - b * c; -133 -134 this.a = d / i; -135 this.b = -b / i; -136 this.c = -c / i; -137 this.d = a / i; -138 this.tx = (c * this.ty - d * tx) / i; -139 this.ty = -(a * this.ty - b * tx) / i; -140 return this; -141 }, -142 -143 /** -144 * Return the result after apply a Matrix displaying transform on the point. -145 * @param {Object} point Point need to transform. -146 * @param {Boolean} round Whether ceil the coordinate values of the point. -147 * @param {Boolean} returnNew Whether return a new point. -148 * @returns {Object} 由应用矩阵转换所产生的点。 +100 this.a = a * ma + b * mc; +101 this.b = a * mb + b * md; +102 this.c = c * ma + d * mc; +103 this.d = c * mb + d * md; +104 this.tx = tx * ma + ty * mc + mx; +105 this.ty = tx * mb + ty * md + my; +106 return this; +107 }, +108 +109 /** +110 * Rotate the Matrix Object. +111 * @param {Number} angle The angle to rotate. +112 * @returns {Matrix} A Matrix object. +113 */ +114 rotate: function(angle){ +115 var sin = Math.sin(angle), cos = Math.cos(angle), +116 a = this.a, b = this.b, c = this.c, d = this.d, +117 tx = this.tx, ty = this.ty; +118 +119 this.a = a * cos - b * sin; +120 this.b = a * sin + b * cos; +121 this.c = c * cos - d * sin; +122 this.d = c * sin + d * cos; +123 this.tx = tx * cos - ty * sin; +124 this.ty = tx * sin + ty * cos; +125 return this; +126 }, +127 +128 /** +129 * Scale the Matrix. +130 * @param {Number} sx The value to multiply those object scale alongside the x axis. +131 * @param {Number} sy The value to multiply those object scale alongside the y axis. +132 * @returns {Matrix} A Matrix object. +133 */ +134 scale: function(sx, sy){ +135 this.a *= sx; +136 this.d *= sy; +137 this.c *= sx; +138 this.b *= sy; +139 this.tx *= sx; +140 this.ty *= sy; +141 return this; +142 }, +143 +144 /** +145 * Translate the Matrix alongside x axis and y axis by dx and dy. +146 * @param {Number} dx Translate Matrix alongside the x axis to the right (measured in px). +147 * @param {Number} dy Translate Matrix alongside the y axis to the right (measured in px). +148 * @returns {Matrix} A Matrix object. 149 */ -150 transformPoint: function(point, round, returnNew){ -151 var x = point.x * this.a + point.y * this.c + this.tx, -152 y = point.x * this.b + point.y * this.d + this.ty; -153 -154 if(round){ -155 x = x + 0.5 >> 0; -156 y = y + 0.5 >> 0; -157 } -158 if(returnNew) return {x:x, y:y}; -159 point.x = x; -160 point.y = y; -161 return point; -162 } -163 -164 }); -165 \ No newline at end of file +150 translate: function(dx, dy){ +151 this.tx += dx; +152 this.ty += dy; +153 return this; +154 }, +155 +156 /** +157 * Set each Matrix property a value to trigger null transform. The Matrix after applying identity matrix transformation will be exactly the same as original. +158 * @returns {Matrix} A Matrix object. +159 */ +160 identity: function(){ +161 this.a = this.d = 1; +162 this.b = this.c = this.tx = this.ty = 0; +163 return this; +164 }, +165 +166 /** +167 * Apply an invert transformation of original Matrix. Using this invert transformation, you can reset a Matrix to a state before it had been apply some Matrix. +168 * @returns {Matrix} A Matrix object. +169 */ +170 invert: function(){ +171 var a = this.a; +172 var b = this.b; +173 var c = this.c; +174 var d = this.d; +175 var tx = this.tx; +176 var i = a * d - b * c; +177 +178 this.a = d / i; +179 this.b = -b / i; +180 this.c = -c / i; +181 this.d = a / i; +182 this.tx = (c * this.ty - d * tx) / i; +183 this.ty = -(a * this.ty - b * tx) / i; +184 return this; +185 }, +186 +187 /** +188 * Return the result after apply a Matrix displaying transform on the point. +189 * @param {Object} point Point need to transform. +190 * @param {Boolean} round Whether ceil the coordinate values of the point. +191 * @param {Boolean} returnNew Whether return a new point. +192 * @returns {Object} 由应用矩阵转换所产生的点。 +193 */ +194 transformPoint: function(point, round, returnNew){ +195 var x = point.x * this.a + point.y * this.c + this.tx, +196 y = point.x * this.b + point.y * this.d + this.ty; +197 +198 if(round){ +199 x = x + 0.5 >> 0; +200 y = y + 0.5 >> 0; +201 } +202 if(returnNew) return {x:x, y:y}; +203 point.x = x; +204 point.y = y; +205 return point; +206 } +207 +208 }); +209 \ No newline at end of file diff --git a/docs/api-en/symbols/src/docs_api-en_code_renderer_CanvasRenderer.js.html b/docs/api-en/symbols/src/docs_api-en_code_renderer_CanvasRenderer.js.html index c509359a..7106bf72 100644 --- a/docs/api-en/symbols/src/docs_api-en_code_renderer_CanvasRenderer.js.html +++ b/docs/api-en/symbols/src/docs_api-en_code_renderer_CanvasRenderer.js.html @@ -21,26 +21,26 @@ 14 * @requires hilo/renderer/Renderer 15 * @property {CanvasRenderingContext2D} context The context of the canvas element, readonly. 16 */ - 17 var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ + 17 var CanvasRenderer = Class.create( /** @lends CanvasRenderer.prototype */ { 18 Extends: Renderer, - 19 constructor: function(properties){ + 19 constructor: function(properties) { 20 CanvasRenderer.superclass.constructor.call(this, properties); 21 22 this.context = this.canvas.getContext("2d"); 23 }, - 24 renderType:'canvas', + 24 renderType: 'canvas', 25 context: null, 26 27 /** 28 * @private 29 * @see Renderer#startDraw 30 */ - 31 startDraw: function(target){ - 32 if(target.visible && target.alpha > 0){ - 33 if(target === this.stage){ + 31 startDraw: function(target) { + 32 if (target.visible && target.alpha > 0) { + 33 if (target === this.stage) { 34 this.context.clearRect(0, 0, target.width, target.height); 35 } - 36 if(target.blendMode !== this.blendMode){ + 36 if (target.blendMode !== this.blendMode) { 37 this.context.globalCompositeOperation = this.blendMode = target.blendMode; 38 } 39 this.context.save(); @@ -53,145 +53,158 @@ 46 * @private 47 * @see Renderer#draw 48 */ - 49 draw: function(target){ - 50 var ctx = this.context, w = target.width, h = target.height; - 51 - 52 //draw background - 53 var bg = target.background; - 54 if(bg){ - 55 ctx.fillStyle = bg; - 56 ctx.fillRect(0, 0, w, h); - 57 } - 58 - 59 //draw image - 60 var drawable = target.drawable, image = drawable && drawable.image; - 61 if(image){ - 62 var rect = drawable.rect, sw = rect[2], sh = rect[3], offsetX = rect[4], offsetY = rect[5]; - 63 //ie9+浏览器宽高为0时会报错 fixed ie9 bug. - 64 if(!sw || !sh){ - 65 return; - 66 } - 67 if(!w && !h){ - 68 //fix width/height TODO: how to get rid of this? - 69 w = target.width = sw; - 70 h = target.height = sh; - 71 } - 72 //the pivot is the center of frame if has offset, otherwise is (0, 0) - 73 if(offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); - 74 ctx.drawImage(image, rect[0], rect[1], sw, sh, 0, 0, w, h); - 75 } - 76 }, - 77 - 78 /** - 79 * @private - 80 * @see Renderer#endDraw - 81 */ - 82 endDraw: function(target){ - 83 this.context.restore(); - 84 }, - 85 - 86 /** - 87 * @private - 88 * @see Renderer#transform - 89 */ - 90 transform: function(target){ - 91 var drawable = target.drawable; - 92 if(drawable && drawable.domElement){ - 93 Hilo.setElementStyleByView(target); - 94 return; - 95 } - 96 - 97 var ctx = this.context, - 98 scaleX = target.scaleX, - 99 scaleY = target.scaleY; -100 -101 if(target === this.stage){ -102 var style = this.canvas.style, -103 oldScaleX = target._scaleX, -104 oldScaleY = target._scaleY, -105 isStyleChange = false; -106 -107 if((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)){ -108 target._scaleX = scaleX; -109 style.width = scaleX * target.width + "px"; -110 isStyleChange = true; -111 } -112 if((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)){ -113 target._scaleY = scaleY; -114 style.height = scaleY * target.height + "px"; -115 isStyleChange = true; -116 } -117 if(isStyleChange){ -118 target.updateViewport(); -119 } -120 }else{ -121 var x = target.x, -122 y = target.y, -123 pivotX = target.pivotX, -124 pivotY = target.pivotY, -125 rotation = target.rotation % 360, -126 mask = target.mask; -127 -128 if(mask){ -129 mask._render(this); -130 ctx.clip(); -131 } -132 -133 //alignment -134 var align = target.align; -135 if(align){ -136 var pos = target.getAlignPosition(); -137 x = pos.x; -138 y = pos.y; + 49 draw: function(target) { + 50 var ctx = this.context, + 51 w = target.width, + 52 h = target.height; + 53 + 54 //draw background + 55 var bg = target.background; + 56 if (bg) { + 57 ctx.fillStyle = bg; + 58 ctx.fillRect(0, 0, w, h); + 59 } + 60 + 61 //draw image + 62 var drawable = target.drawable, + 63 image = drawable && drawable.image; + 64 if (image) { + 65 var rect = drawable.rect, + 66 sw = rect[2], + 67 sh = rect[3], + 68 offsetX = rect[4], + 69 offsetY = rect[5]; + 70 //ie9+浏览器宽高为0时会报错 fixed ie9 bug. + 71 if (!sw || !sh) { + 72 return; + 73 } + 74 if (!w && !h) { + 75 //fix width/height TODO: how to get rid of this? + 76 w = target.width = sw; + 77 h = target.height = sh; + 78 } + 79 //the pivot is the center of frame if has offset, otherwise is (0, 0) + 80 if (offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); + 81 ctx.drawImage(image, rect[0], rect[1], sw, sh, 0, 0, w, h); + 82 } + 83 }, + 84 + 85 /** + 86 * @private + 87 * @see Renderer#endDraw + 88 */ + 89 endDraw: function(target) { + 90 this.context.restore(); + 91 }, + 92 + 93 /** + 94 * @private + 95 * @see Renderer#transform + 96 */ + 97 transform: function(target) { + 98 var drawable = target.drawable; + 99 if (drawable && drawable.domElement) { +100 Hilo.setElementStyleByView(target); +101 return; +102 } +103 +104 var ctx = this.context, +105 scaleX = target.scaleX, +106 scaleY = target.scaleY; +107 +108 if (target === this.stage) { +109 var style = this.canvas.style, +110 oldScaleX = target._scaleX, +111 oldScaleY = target._scaleY, +112 isStyleChange = false; +113 +114 if ((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)) { +115 target._scaleX = scaleX; +116 style.width = scaleX * target.width + "px"; +117 isStyleChange = true; +118 } +119 if ((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)) { +120 target._scaleY = scaleY; +121 style.height = scaleY * target.height + "px"; +122 isStyleChange = true; +123 } +124 if (isStyleChange) { +125 target.updateViewport(); +126 } +127 } else { +128 var x = target.x, +129 y = target.y, +130 pivotX = target.pivotX, +131 pivotY = target.pivotY, +132 rotation = target.rotation % 360, +133 transform = target.transform, +134 mask = target.mask; +135 +136 if (mask) { +137 mask._render(this); +138 ctx.clip(); 139 } 140 -141 if(x != 0 || y != 0) ctx.translate(x, y); -142 if(rotation != 0) ctx.rotate(rotation * Math.PI / 180); -143 if(scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); -144 if(pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); -145 } -146 -147 if(target.alpha > 0) ctx.globalAlpha *= target.alpha; -148 }, -149 -150 /** -151 * @private -152 * @see Renderer#remove -153 */ -154 remove: function(target){ -155 var drawable = target.drawable; -156 var elem = drawable && drawable.domElement; +141 //alignment +142 var align = target.align; +143 if (align) { +144 var pos = target.getAlignPosition(); +145 x = pos.x; +146 y = pos.y; +147 } +148 +149 if (transform) { +150 ctx.transform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); +151 } else { +152 if (x != 0 || y != 0) ctx.translate(x, y); +153 if (rotation != 0) ctx.rotate(rotation * Math.PI / 180); +154 if (scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); +155 if (pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); +156 } 157 -158 if(elem){ -159 var parentElem = elem.parentNode; -160 if(parentElem){ -161 parentElem.removeChild(elem); -162 } -163 } -164 }, -165 -166 /** -167 * @private -168 * @see Renderer#clear -169 */ -170 clear: function(x, y, width, height){ -171 this.context.clearRect(x, y, width, height); -172 }, -173 -174 /** -175 * @private -176 * @see Renderer#resize -177 */ -178 resize: function(width, height){ -179 var canvas = this.canvas; -180 var stage = this.stage; -181 var style = canvas.style; -182 -183 canvas.width = width; -184 canvas.height = height; -185 -186 style.width = stage.width * stage.scaleX + 'px'; -187 style.height = stage.height * stage.scaleY + 'px'; -188 } -189 -190 }); \ No newline at end of file +158 } +159 +160 if (target.alpha > 0) ctx.globalAlpha *= target.alpha; +161 }, +162 +163 /** +164 * @private +165 * @see Renderer#remove +166 */ +167 remove: function(target) { +168 var drawable = target.drawable; +169 var elem = drawable && drawable.domElement; +170 +171 if (elem) { +172 var parentElem = elem.parentNode; +173 if (parentElem) { +174 parentElem.removeChild(elem); +175 } +176 } +177 }, +178 +179 /** +180 * @private +181 * @see Renderer#clear +182 */ +183 clear: function(x, y, width, height) { +184 this.context.clearRect(x, y, width, height); +185 }, +186 +187 /** +188 * @private +189 * @see Renderer#resize +190 */ +191 resize: function(width, height) { +192 var canvas = this.canvas; +193 var stage = this.stage; +194 var style = canvas.style; +195 +196 canvas.width = width; +197 canvas.height = height; +198 +199 style.width = stage.width * stage.scaleX + 'px'; +200 style.height = stage.height * stage.scaleY + 'px'; +201 } +202 +203 }); \ No newline at end of file diff --git a/docs/api-en/symbols/src/docs_api-en_code_renderer_WebGLRenderer.js.html b/docs/api-en/symbols/src/docs_api-en_code_renderer_WebGLRenderer.js.html index fa066cb4..d6ac6c13 100644 --- a/docs/api-en/symbols/src/docs_api-en_code_renderer_WebGLRenderer.js.html +++ b/docs/api-en/symbols/src/docs_api-en_code_renderer_WebGLRenderer.js.html @@ -423,143 +423,150 @@ 416 var cos = 1, sin = 0, 417 rotation = view.rotation % 360, 418 pivotX = view.pivotX, pivotY = view.pivotY, -419 scaleX = view.scaleX, scaleY = view.scaleY; -420 -421 if(rotation){ -422 var r = rotation * DEG2RAD; -423 cos = Math.cos(r); -424 sin = Math.sin(r); -425 } -426 -427 var pos = view.getAlignPosition(); -428 mtx.a = cos*scaleX; -429 mtx.b = sin*scaleX; -430 mtx.c = -sin*scaleY; -431 mtx.d = cos*scaleY; -432 mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; -433 mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; -434 -435 mtx.concat(ancestor.__webglWorldMatrix); -436 }, -437 _getTexture:function(sprite){ -438 var image = sprite.__textureImage; -439 var texture = this._cacheTexture[image.src]; -440 if(!texture){ -441 texture = this.activeShader.uploadTexture(image); -442 } -443 return texture; -444 } -445 }); -446 -447 /** -448 * shader -449 * @param {WebGLRenderer} renderer [description] -450 * @param {Object} source -451 * @param {String} source.v 顶点shader -452 * @param {String} source.f 片段shader -453 * @param {Object} attr -454 * @param {Array} attr.attributes attribute数组 -455 * @param {Array} attr.uniforms uniform数组 -456 */ -457 var Shader = function(renderer, source, attr){ -458 this.renderer = renderer; -459 this.gl = renderer.gl; -460 this.program = this._createProgram(this.gl, source.v, source.f); -461 -462 attr = attr||{}; -463 this.attributes = attr.attributes||[]; -464 this.uniforms = attr.uniforms||[]; -465 }; -466 -467 Shader.prototype = { -468 active:function(){ -469 var that = this; -470 var renderer = that.renderer; -471 var gl = that.gl; -472 var program = that.program; +419 scaleX = view.scaleX, scaleY = view.scaleY, +420 transform = view.transform; +421 +422 if (transform) { +423 mtx.copy(transform); +424 } +425 else { +426 if(rotation){ +427 var r = rotation * DEG2RAD; +428 cos = Math.cos(r); +429 sin = Math.sin(r); +430 } +431 +432 var pos = view.getAlignPosition(); +433 +434 mtx.a = cos*scaleX; +435 mtx.b = sin*scaleX; +436 mtx.c = -sin*scaleY; +437 mtx.d = cos*scaleY; +438 mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; +439 mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; +440 } +441 +442 mtx.concat(ancestor.__webglWorldMatrix); +443 }, +444 _getTexture:function(sprite){ +445 var image = sprite.__textureImage; +446 var texture = this._cacheTexture[image.src]; +447 if(!texture){ +448 texture = this.activeShader.uploadTexture(image); +449 } +450 return texture; +451 } +452 }); +453 +454 /** +455 * shader +456 * @param {WebGLRenderer} renderer [description] +457 * @param {Object} source +458 * @param {String} source.v 顶点shader +459 * @param {String} source.f 片段shader +460 * @param {Object} attr +461 * @param {Array} attr.attributes attribute数组 +462 * @param {Array} attr.uniforms uniform数组 +463 */ +464 var Shader = function(renderer, source, attr){ +465 this.renderer = renderer; +466 this.gl = renderer.gl; +467 this.program = this._createProgram(this.gl, source.v, source.f); +468 +469 attr = attr||{}; +470 this.attributes = attr.attributes||[]; +471 this.uniforms = attr.uniforms||[]; +472 }; 473 -474 if(program && gl){ -475 renderer.activeShader = that; -476 gl.useProgram(program); -477 that.attributes.forEach(function(attribute){ -478 renderer[attribute] = gl.getAttribLocation(program, attribute); -479 gl.enableVertexAttribArray(renderer[attribute]); -480 }); -481 -482 that.uniforms.forEach(function(uniform){ -483 renderer[uniform] = gl.getUniformLocation(program, uniform); -484 }); -485 -486 if(that.width !== renderer.width || that.height !== renderer.height){ -487 that.width = renderer.width; -488 that.height = renderer.height; -489 renderer._uploadProjectionTransform(); -490 } -491 } -492 }, -493 uploadTexture:function(image){ -494 var gl = this.gl; -495 var renderer = this.renderer; -496 var texture = gl.createTexture(); -497 var u_Sampler = renderer.u_Sampler; -498 -499 gl.activeTexture(gl.TEXTURE0); -500 gl.bindTexture(gl.TEXTURE_2D, texture); -501 -502 // gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1); -503 gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1); -504 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image); +474 Shader.prototype = { +475 active:function(){ +476 var that = this; +477 var renderer = that.renderer; +478 var gl = that.gl; +479 var program = that.program; +480 +481 if(program && gl){ +482 renderer.activeShader = that; +483 gl.useProgram(program); +484 that.attributes.forEach(function(attribute){ +485 renderer[attribute] = gl.getAttribLocation(program, attribute); +486 gl.enableVertexAttribArray(renderer[attribute]); +487 }); +488 +489 that.uniforms.forEach(function(uniform){ +490 renderer[uniform] = gl.getUniformLocation(program, uniform); +491 }); +492 +493 if(that.width !== renderer.width || that.height !== renderer.height){ +494 that.width = renderer.width; +495 that.height = renderer.height; +496 renderer._uploadProjectionTransform(); +497 } +498 } +499 }, +500 uploadTexture:function(image){ +501 var gl = this.gl; +502 var renderer = this.renderer; +503 var texture = gl.createTexture(); +504 var u_Sampler = renderer.u_Sampler; 505 -506 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); -507 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); -508 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); -509 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); -510 gl.uniform1i(u_Sampler, 0); -511 gl.bindTexture(gl.TEXTURE_2D, null); +506 gl.activeTexture(gl.TEXTURE0); +507 gl.bindTexture(gl.TEXTURE_2D, texture); +508 +509 // gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1); +510 gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1); +511 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image); 512 -513 this.renderer._cacheTexture[image.src] = texture; -514 return texture; -515 }, -516 _createProgram:function(gl, vshader, fshader){ -517 var vertexShader = this._createShader(gl, gl.VERTEX_SHADER, vshader); -518 var fragmentShader = this._createShader(gl, gl.FRAGMENT_SHADER, fshader); -519 if (!vertexShader || !fragmentShader) { -520 return null; -521 } -522 -523 var program = gl.createProgram(); -524 if (program) { -525 gl.attachShader(program, vertexShader); -526 gl.attachShader(program, fragmentShader); -527 -528 gl.linkProgram(program); +513 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); +514 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); +515 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); +516 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); +517 gl.uniform1i(u_Sampler, 0); +518 gl.bindTexture(gl.TEXTURE_2D, null); +519 +520 this.renderer._cacheTexture[image.src] = texture; +521 return texture; +522 }, +523 _createProgram:function(gl, vshader, fshader){ +524 var vertexShader = this._createShader(gl, gl.VERTEX_SHADER, vshader); +525 var fragmentShader = this._createShader(gl, gl.FRAGMENT_SHADER, fshader); +526 if (!vertexShader || !fragmentShader) { +527 return null; +528 } 529 -530 gl.deleteShader(fragmentShader); -531 gl.deleteShader(vertexShader); -532 var linked = gl.getProgramParameter(program, gl.LINK_STATUS); -533 if (!linked) { -534 var error = gl.getProgramInfoLog(program); -535 console.log('Failed to link program: ' + error); -536 gl.deleteProgram(program); -537 return null; -538 } -539 } -540 return program; -541 }, -542 _createShader:function(gl, type, source){ -543 var shader = gl.createShader(type); -544 if(shader){ -545 gl.shaderSource(shader, source); -546 gl.compileShader(shader); -547 -548 var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); -549 if (!compiled) { -550 var error = gl.getShaderInfoLog(shader); -551 console.log('Failed to compile shader: ' + error); -552 gl.deleteShader(shader); -553 return null; -554 } -555 } -556 return shader; -557 } -558 }; \ No newline at end of file +530 var program = gl.createProgram(); +531 if (program) { +532 gl.attachShader(program, vertexShader); +533 gl.attachShader(program, fragmentShader); +534 +535 gl.linkProgram(program); +536 +537 gl.deleteShader(fragmentShader); +538 gl.deleteShader(vertexShader); +539 var linked = gl.getProgramParameter(program, gl.LINK_STATUS); +540 if (!linked) { +541 var error = gl.getProgramInfoLog(program); +542 console.log('Failed to link program: ' + error); +543 gl.deleteProgram(program); +544 return null; +545 } +546 } +547 return program; +548 }, +549 _createShader:function(gl, type, source){ +550 var shader = gl.createShader(type); +551 if(shader){ +552 gl.shaderSource(shader, source); +553 gl.compileShader(shader); +554 +555 var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); +556 if (!compiled) { +557 var error = gl.getShaderInfoLog(shader); +558 console.log('Failed to compile shader: ' + error); +559 gl.deleteShader(shader); +560 return null; +561 } +562 } +563 return shader; +564 } +565 }; \ No newline at end of file diff --git a/docs/api-en/symbols/src/docs_api-en_code_view_View.js.html b/docs/api-en/symbols/src/docs_api-en_code_view_View.js.html index 8bed37b6..47320190 100644 --- a/docs/api-en/symbols/src/docs_api-en_code_view_View.js.html +++ b/docs/api-en/symbols/src/docs_api-en_code_view_View.js.html @@ -36,435 +36,444 @@ 29 * @property {Number} pivotY Position of the center point on the y axis of the view, default value is 0. 30 * @property {Number} scaleX The x axis scale factor of the view, default value is 1. 31 * @property {Number} scaleY The y axis scale factor of the view, default value is 1. - 32 * @property {Boolean} pointerEnabled Is the view can receive DOM events, default value is true. - 33 * @property {Object} background The background style to fill the view, can be css color, gradient or pattern of canvas - 34 * @property {Graphics} mask Sets a mask for the view. A mask is an object that limits the visibility of an object to the shape of the mask applied to it. A regular mask must be a Hilo.Graphics object. This allows for much faster masking in canvas as it utilises shape clipping. To remove a mask, set this property to null. - 35 * @property {Number} tint The tint applied to the view,default is 0xFFFFFF.Only support in WebGL mode. - 36 * @property {String|Function} align The alignment of the view, the value must be one of Hilo.align enum. - 37 * @property {Container} parent The parent view of this view, readonly! - 38 * @property {Number} depth The z index of the view, readonly! - 39 * @property {Drawable} drawable The drawable object of the view. Only for advanced develop. - 40 * @property {Array} boundsArea The vertex points of the view, the points are relative to the center point. This is a example: [{x:10, y:10}, {x:20, y:20}]. - 41 */ - 42 var View = (function(){ - 43 - 44 return Class.create(/** @lends View.prototype */{ - 45 Mixes: EventMixin, - 46 constructor: function(properties){ - 47 properties = properties || {}; - 48 this.id = this.id || properties.id || Hilo.getUid("View"); - 49 util.copy(this, properties, true); - 50 }, - 51 - 52 tint:0xffffff, - 53 id: null, - 54 x: 0, - 55 y: 0, - 56 width: 0, - 57 height: 0, - 58 alpha: 1, - 59 rotation: 0, - 60 visible: true, - 61 pivotX: 0, - 62 pivotY: 0, - 63 scaleX: 1, - 64 scaleY: 1, - 65 pointerEnabled: true, - 66 background: null, - 67 mask: null, - 68 align: null, - 69 drawable: null, - 70 boundsArea: null, - 71 parent: null, - 72 depth: -1, - 73 blendMode:'source-over', - 74 - 75 /** - 76 * Get the stage object of the view. If the view doesn't add to any stage, null will be returned. - 77 * @returns {Stage} The stage object of the view. - 78 */ - 79 getStage: function(){ - 80 var obj = this, parent; - 81 while(parent = obj.parent) obj = parent; - 82 //NOTE: don't use `instanceof` to prevent circular module requirement. - 83 //But it's not a very reliable way to check it's a stage instance. - 84 if(obj.canvas) return obj; - 85 return null; - 86 }, - 87 - 88 /** - 89 * Get the scaled width of the view. - 90 * @returns {Number} scaled width of the view. - 91 */ - 92 getScaledWidth: function(){ - 93 return this.width * this.scaleX; - 94 }, - 95 - 96 /** - 97 * Get the scaled height of the view. - 98 * @returns {Number} scaled height of the view. - 99 */ -100 getScaledHeight: function(){ -101 return this.height * this.scaleY; -102 }, -103 -104 /** -105 * Add current view to a Contaner. -106 * @param {Container} container Container object. -107 * @param {Uint} index The index of the view in container. -108 * @returns {View} Current view. -109 */ -110 addTo: function(container, index){ -111 if(typeof index === 'number') container.addChildAt(this, index); -112 else container.addChild(this); -113 return this; -114 }, -115 -116 /** -117 * Remove current view from it's parent container -118 * @returns {View} Current view. -119 */ -120 removeFromParent: function(){ -121 var parent = this.parent; -122 if(parent) parent.removeChild(this); -123 return this; -124 }, -125 -126 /** -127 * Get the bounds of the view as a circumscribed rectangle and all vertex points relative to the coordinates of the stage. -128 * @returns {Array} The vertex points array, and the array contains the following properties: -129 * <ul> -130 * <li><b>x</b> - The position of the view on the x axis relative to the coordinates of the stage.</li> -131 * <li><b>y</b> - The position of the view on the y axis relative to the coordinates of the stage.</li> -132 * <li><b>width</b> - The width of circumscribed rectangle of the view.</li> -133 * <li><b>height</b> - The height of circumscribed rectangle of the view</li> -134 * </ul> -135 */ -136 getBounds: function(){ -137 var w = this.width, h = this.height, -138 mtx = this.getConcatenatedMatrix(), -139 poly = this.boundsArea || [{x:0, y:0}, {x:w, y:0}, {x:w, y:h}, {x:0, y:h}], -140 vertexs = [], point, x, y, minX, maxX, minY, maxY; -141 -142 for(var i = 0, len = poly.length; i < len; i++){ -143 point = mtx.transformPoint(poly[i], true, true); -144 x = point.x; -145 y = point.y; -146 -147 if(i == 0){ -148 minX = maxX = x; -149 minY = maxY = y; -150 }else{ -151 if(minX > x) minX = x; -152 else if(maxX < x) maxX = x; -153 if(minY > y) minY = y; -154 else if(maxY < y) maxY = y; -155 } -156 vertexs[i] = point; -157 } -158 -159 vertexs.x = minX; -160 vertexs.y = minY; -161 vertexs.width = maxX - minX; -162 vertexs.height = maxY - minY; -163 return vertexs; -164 }, -165 -166 /** -167 * Get the matrix that can transform points from current view coordinates to the ancestor container coordinates. -168 * @param {View} ancestor The ancestor of current view, default value is the top container. -169 * @private -170 */ -171 getConcatenatedMatrix: function(ancestor){ -172 var mtx = new Matrix(1, 0, 0, 1, 0, 0); -173 -174 for(var o = this; o != ancestor && o.parent; o = o.parent){ -175 var cos = 1, sin = 0, -176 rotation = o.rotation % 360, -177 pivotX = o.pivotX, pivotY = o.pivotY, -178 scaleX = o.scaleX, scaleY = o.scaleY; -179 -180 if(rotation){ -181 var r = rotation * Math.PI / 180; -182 cos = Math.cos(r); -183 sin = Math.sin(r); -184 } -185 -186 if(pivotX != 0) mtx.tx -= pivotX; -187 if(pivotY != 0) mtx.ty -= pivotY; -188 -189 var pos = o.getAlignPosition(); -190 mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); -191 } -192 return mtx; -193 }, -194 -195 getAlignPosition: function(){ -196 var parent = this.parent; -197 var align = this.align; -198 var x = this.x; -199 var y = this.y; -200 -201 if(parent && this.align){ -202 if(typeof align === 'function'){ -203 return this.align(); -204 } -205 -206 var w = this.width, h = this.height, -207 pw = parent.width, ph = parent.height; -208 switch(align){ -209 case 'TL': -210 x = 0; -211 y = 0; -212 break; -213 case 'T': -214 x = pw - w >> 1; -215 y = 0; -216 break; -217 case 'TR': -218 x = pw - w; -219 y = 0; -220 break; -221 case 'L': -222 x = 0; -223 y = ph - h >> 1; -224 break; -225 case 'C': -226 x = pw - w >> 1; -227 y = ph - h >> 1; -228 break; -229 case 'R': -230 x = pw - w; -231 y = ph - h >> 1; -232 break; -233 case 'BL': -234 x = 0; -235 y = ph - h; -236 break; -237 case 'B': -238 x = pw - w >> 1; -239 y = ph - h; -240 break; -241 case 'BR': -242 x = pw - w; -243 y = ph - h; -244 break; -245 } -246 } -247 -248 return { -249 x:x, -250 y:y -251 }; -252 }, -253 -254 /** -255 * Determining whether a point is in the circumscribed rectangle of current view. -256 * @param {Number} x The x axis relative to the stage coordinates. -257 * @param {Number} y The y axis relative to the stage coordinates. -258 * @param {Boolean} usePolyCollision Is use polygon collision, default value is false. -259 * @returns {Boolean} the point is in the circumscribed rectangle of current view. -260 */ -261 hitTestPoint: function(x, y, usePolyCollision){ -262 var bound = this.getBounds(), -263 hit = x >= bound.x && x <= bound.x + bound.width && -264 y >= bound.y && y <= bound.y + bound.height; -265 -266 if(hit && usePolyCollision){ -267 hit = pointInPolygon(x, y, bound); -268 } -269 return hit; -270 }, -271 -272 /** -273 * Determining whether an object is in the circumscribed rectangle of current view. -274 * @param {View} object The object need to determining. -275 * @param {Boolean} usePolyCollision Is use polygon collision, default value is false. -276 */ -277 hitTestObject: function(object, usePolyCollision){ -278 var b1 = this.getBounds(), -279 b2 = object.getBounds(), -280 hit = b1.x <= b2.x + b2.width && b2.x <= b1.x + b1.width && -281 b1.y <= b2.y + b2.height && b2.y <= b1.y + b1.height; -282 -283 if(hit && usePolyCollision){ -284 hit = polygonCollision(b1, b2); -285 } -286 return !!hit; -287 }, -288 -289 /** -290 * The method to render current display object. Only for advanced develop. -291 * @param {Renderer} renderer Renderer object. -292 * @param {Number} delta The delta time of render. -293 * @protected -294 */ -295 _render: function(renderer, delta){ -296 if((!this.onUpdate || this.onUpdate(delta) !== false) && renderer.startDraw(this)){ -297 renderer.transform(this); -298 this.render(renderer, delta); -299 renderer.endDraw(this); -300 } -301 }, -302 /** -303 * Mouse event -304 */ -305 _fireMouseEvent:function(e){ -306 e.eventCurrentTarget = this; -307 this.fire(e); -308 -309 // 处理mouseover事件 mouseover不需要阻止冒泡 -310 // handle mouseover event, mouseover needn't stop propagation. -311 if(e.type == "mousemove"){ -312 if(!this.__mouseOver){ -313 this.__mouseOver = true; -314 var overEvent = util.copy({}, e); -315 overEvent.type = "mouseover"; -316 this.fire(overEvent); -317 } -318 } -319 else if(e.type == "mouseout"){ -320 this.__mouseOver = false; -321 } -322 -323 // 向上冒泡 -324 // handle event propagation -325 var parent = this.parent; -326 if(!e._stopped && !e._stopPropagationed && parent){ -327 if(e.type == "mouseout" || e.type == "touchout"){ -328 if(!parent.hitTestPoint(e.stageX, e.stageY, true)){ -329 parent._fireMouseEvent(e); -330 } -331 } -332 else{ -333 parent._fireMouseEvent(e); -334 } -335 } -336 }, -337 -338 /** -339 * This method will call while the view need update(usually caused by ticker update). This method can return a Boolean value, if return false, the view will not be drawn. -340 * Limit: If you change the index in it's parent, it will not be drawn correct in current frame but next frame is correct. -341 * @type Function -342 * @default null -343 */ -344 onUpdate: null, -345 -346 /** -347 * The render method of current view. The subclass can implement it's own render logic by rewrite this function. -348 * @param {Renderer} renderer Renderer object. -349 * @param {Number} delta The delta time of render. -350 */ -351 render: function(renderer, delta){ -352 renderer.draw(this); -353 }, + 32 * @property {Matrix} transform The transform of the view.If set the transform, x, y, scaleX, scaleY, rotation, pivotX, pivotY will be ignored.default is null. + 33 * @property {Boolean} pointerEnabled Is the view can receive DOM events, default value is true. + 34 * @property {Object} background The background style to fill the view, can be css color, gradient or pattern of canvas + 35 * @property {Graphics} mask Sets a mask for the view. A mask is an object that limits the visibility of an object to the shape of the mask applied to it. A regular mask must be a Hilo.Graphics object. This allows for much faster masking in canvas as it utilises shape clipping. To remove a mask, set this property to null. + 36 * @property {Number} tint The tint applied to the view,default is 0xFFFFFF.Only support in WebGL mode. + 37 * @property {String|Function} align The alignment of the view, the value must be one of Hilo.align enum. + 38 * @property {Container} parent The parent view of this view, readonly! + 39 * @property {Number} depth The z index of the view, readonly! + 40 * @property {Drawable} drawable The drawable object of the view. Only for advanced develop. + 41 * @property {Array} boundsArea The vertex points of the view, the points are relative to the center point. This is a example: [{x:10, y:10}, {x:20, y:20}]. + 42 */ + 43 var View = (function(){ + 44 + 45 return Class.create(/** @lends View.prototype */{ + 46 Mixes: EventMixin, + 47 constructor: function(properties){ + 48 properties = properties || {}; + 49 this.id = this.id || properties.id || Hilo.getUid("View"); + 50 util.copy(this, properties, true); + 51 }, + 52 + 53 tint:0xffffff, + 54 id: null, + 55 x: 0, + 56 y: 0, + 57 width: 0, + 58 height: 0, + 59 alpha: 1, + 60 rotation: 0, + 61 visible: true, + 62 pivotX: 0, + 63 pivotY: 0, + 64 scaleX: 1, + 65 scaleY: 1, + 66 pointerEnabled: true, + 67 background: null, + 68 mask: null, + 69 align: null, + 70 drawable: null, + 71 boundsArea: null, + 72 parent: null, + 73 depth: -1, + 74 transform: null, + 75 blendMode:'source-over', + 76 + 77 /** + 78 * Get the stage object of the view. If the view doesn't add to any stage, null will be returned. + 79 * @returns {Stage} The stage object of the view. + 80 */ + 81 getStage: function(){ + 82 var obj = this, parent; + 83 while(parent = obj.parent) obj = parent; + 84 //NOTE: don't use `instanceof` to prevent circular module requirement. + 85 //But it's not a very reliable way to check it's a stage instance. + 86 if(obj.canvas) return obj; + 87 return null; + 88 }, + 89 + 90 /** + 91 * Get the scaled width of the view. + 92 * @returns {Number} scaled width of the view. + 93 */ + 94 getScaledWidth: function(){ + 95 return this.width * this.scaleX; + 96 }, + 97 + 98 /** + 99 * Get the scaled height of the view. +100 * @returns {Number} scaled height of the view. +101 */ +102 getScaledHeight: function(){ +103 return this.height * this.scaleY; +104 }, +105 +106 /** +107 * Add current view to a Contaner. +108 * @param {Container} container Container object. +109 * @param {Uint} index The index of the view in container. +110 * @returns {View} Current view. +111 */ +112 addTo: function(container, index){ +113 if(typeof index === 'number') container.addChildAt(this, index); +114 else container.addChild(this); +115 return this; +116 }, +117 +118 /** +119 * Remove current view from it's parent container +120 * @returns {View} Current view. +121 */ +122 removeFromParent: function(){ +123 var parent = this.parent; +124 if(parent) parent.removeChild(this); +125 return this; +126 }, +127 +128 /** +129 * Get the bounds of the view as a circumscribed rectangle and all vertex points relative to the coordinates of the stage. +130 * @returns {Array} The vertex points array, and the array contains the following properties: +131 * <ul> +132 * <li><b>x</b> - The position of the view on the x axis relative to the coordinates of the stage.</li> +133 * <li><b>y</b> - The position of the view on the y axis relative to the coordinates of the stage.</li> +134 * <li><b>width</b> - The width of circumscribed rectangle of the view.</li> +135 * <li><b>height</b> - The height of circumscribed rectangle of the view</li> +136 * </ul> +137 */ +138 getBounds: function(){ +139 var w = this.width, h = this.height, +140 mtx = this.getConcatenatedMatrix(), +141 poly = this.boundsArea || [{x:0, y:0}, {x:w, y:0}, {x:w, y:h}, {x:0, y:h}], +142 vertexs = [], point, x, y, minX, maxX, minY, maxY; +143 +144 for(var i = 0, len = poly.length; i < len; i++){ +145 point = mtx.transformPoint(poly[i], true, true); +146 x = point.x; +147 y = point.y; +148 +149 if(i == 0){ +150 minX = maxX = x; +151 minY = maxY = y; +152 }else{ +153 if(minX > x) minX = x; +154 else if(maxX < x) maxX = x; +155 if(minY > y) minY = y; +156 else if(maxY < y) maxY = y; +157 } +158 vertexs[i] = point; +159 } +160 +161 vertexs.x = minX; +162 vertexs.y = minY; +163 vertexs.width = maxX - minX; +164 vertexs.height = maxY - minY; +165 return vertexs; +166 }, +167 +168 /** +169 * Get the matrix that can transform points from current view coordinates to the ancestor container coordinates. +170 * @param {View} ancestor The ancestor of current view, default value is the top container. +171 * @private +172 */ +173 getConcatenatedMatrix: function(ancestor){ +174 var mtx = new Matrix(1, 0, 0, 1, 0, 0); +175 +176 for(var o = this; o != ancestor && o.parent; o = o.parent){ +177 var cos = 1, sin = 0, +178 rotation = o.rotation % 360, +179 pivotX = o.pivotX, pivotY = o.pivotY, +180 scaleX = o.scaleX, scaleY = o.scaleY, +181 transform = o.transform; +182 +183 if(transform) { +184 mtx.concat(transform); +185 } +186 else{ +187 if(rotation){ +188 var r = rotation * Math.PI / 180; +189 cos = Math.cos(r); +190 sin = Math.sin(r); +191 } +192 +193 if(pivotX != 0) mtx.tx -= pivotX; +194 if(pivotY != 0) mtx.ty -= pivotY; +195 +196 var pos = o.getAlignPosition(); +197 mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); +198 } +199 +200 } +201 return mtx; +202 }, +203 +204 getAlignPosition: function(){ +205 var parent = this.parent; +206 var align = this.align; +207 var x = this.x; +208 var y = this.y; +209 +210 if(parent && this.align){ +211 if(typeof align === 'function'){ +212 return this.align(); +213 } +214 +215 var w = this.width, h = this.height, +216 pw = parent.width, ph = parent.height; +217 switch(align){ +218 case 'TL': +219 x = 0; +220 y = 0; +221 break; +222 case 'T': +223 x = pw - w >> 1; +224 y = 0; +225 break; +226 case 'TR': +227 x = pw - w; +228 y = 0; +229 break; +230 case 'L': +231 x = 0; +232 y = ph - h >> 1; +233 break; +234 case 'C': +235 x = pw - w >> 1; +236 y = ph - h >> 1; +237 break; +238 case 'R': +239 x = pw - w; +240 y = ph - h >> 1; +241 break; +242 case 'BL': +243 x = 0; +244 y = ph - h; +245 break; +246 case 'B': +247 x = pw - w >> 1; +248 y = ph - h; +249 break; +250 case 'BR': +251 x = pw - w; +252 y = ph - h; +253 break; +254 } +255 } +256 +257 return { +258 x:x, +259 y:y +260 }; +261 }, +262 +263 /** +264 * Determining whether a point is in the circumscribed rectangle of current view. +265 * @param {Number} x The x axis relative to the stage coordinates. +266 * @param {Number} y The y axis relative to the stage coordinates. +267 * @param {Boolean} usePolyCollision Is use polygon collision, default value is false. +268 * @returns {Boolean} the point is in the circumscribed rectangle of current view. +269 */ +270 hitTestPoint: function(x, y, usePolyCollision){ +271 var bound = this.getBounds(), +272 hit = x >= bound.x && x <= bound.x + bound.width && +273 y >= bound.y && y <= bound.y + bound.height; +274 +275 if(hit && usePolyCollision){ +276 hit = pointInPolygon(x, y, bound); +277 } +278 return hit; +279 }, +280 +281 /** +282 * Determining whether an object is in the circumscribed rectangle of current view. +283 * @param {View} object The object need to determining. +284 * @param {Boolean} usePolyCollision Is use polygon collision, default value is false. +285 */ +286 hitTestObject: function(object, usePolyCollision){ +287 var b1 = this.getBounds(), +288 b2 = object.getBounds(), +289 hit = b1.x <= b2.x + b2.width && b2.x <= b1.x + b1.width && +290 b1.y <= b2.y + b2.height && b2.y <= b1.y + b1.height; +291 +292 if(hit && usePolyCollision){ +293 hit = polygonCollision(b1, b2); +294 } +295 return !!hit; +296 }, +297 +298 /** +299 * The method to render current display object. Only for advanced develop. +300 * @param {Renderer} renderer Renderer object. +301 * @param {Number} delta The delta time of render. +302 * @protected +303 */ +304 _render: function(renderer, delta){ +305 if((!this.onUpdate || this.onUpdate(delta) !== false) && renderer.startDraw(this)){ +306 renderer.transform(this); +307 this.render(renderer, delta); +308 renderer.endDraw(this); +309 } +310 }, +311 /** +312 * Mouse event +313 */ +314 _fireMouseEvent:function(e){ +315 e.eventCurrentTarget = this; +316 this.fire(e); +317 +318 // 处理mouseover事件 mouseover不需要阻止冒泡 +319 // handle mouseover event, mouseover needn't stop propagation. +320 if(e.type == "mousemove"){ +321 if(!this.__mouseOver){ +322 this.__mouseOver = true; +323 var overEvent = util.copy({}, e); +324 overEvent.type = "mouseover"; +325 this.fire(overEvent); +326 } +327 } +328 else if(e.type == "mouseout"){ +329 this.__mouseOver = false; +330 } +331 +332 // 向上冒泡 +333 // handle event propagation +334 var parent = this.parent; +335 if(!e._stopped && !e._stopPropagationed && parent){ +336 if(e.type == "mouseout" || e.type == "touchout"){ +337 if(!parent.hitTestPoint(e.stageX, e.stageY, true)){ +338 parent._fireMouseEvent(e); +339 } +340 } +341 else{ +342 parent._fireMouseEvent(e); +343 } +344 } +345 }, +346 +347 /** +348 * This method will call while the view need update(usually caused by ticker update). This method can return a Boolean value, if return false, the view will not be drawn. +349 * Limit: If you change the index in it's parent, it will not be drawn correct in current frame but next frame is correct. +350 * @type Function +351 * @default null +352 */ +353 onUpdate: null, 354 355 /** -356 * Get a string representing current view. -357 * @returns {String} string representing current view. -358 */ -359 toString: function(){ -360 return Hilo.viewToString(this); -361 } -362 }); +356 * The render method of current view. The subclass can implement it's own render logic by rewrite this function. +357 * @param {Renderer} renderer Renderer object. +358 * @param {Number} delta The delta time of render. +359 */ +360 render: function(renderer, delta){ +361 renderer.draw(this); +362 }, 363 -364 /** -365 * @private -366 */ -367 function pointInPolygon(x, y, poly){ -368 var cross = 0, onBorder = false, minX, maxX, minY, maxY; -369 -370 for(var i = 0, len = poly.length; i < len; i++){ -371 var p1 = poly[i], p2 = poly[(i+1)%len]; +364 /** +365 * Get a string representing current view. +366 * @returns {String} string representing current view. +367 */ +368 toString: function(){ +369 return Hilo.viewToString(this); +370 } +371 }); 372 -373 if(p1.y == p2.y && y == p1.y){ -374 p1.x > p2.x ? (minX = p2.x, maxX = p1.x) : (minX = p1.x, maxX = p2.x); -375 if(x >= minX && x <= maxX){ -376 onBorder = true; -377 continue; -378 } -379 } -380 -381 p1.y > p2.y ? (minY = p2.y, maxY = p1.y) : (minY = p1.y, maxY = p2.y); -382 if(y < minY || y > maxY) continue; -383 -384 var nx = (y - p1.y)*(p2.x - p1.x) / (p2.y - p1.y) + p1.x; -385 if(nx > x) cross++; -386 else if(nx == x) onBorder = true; -387 -388 //当射线和多边形相交 -389 if(p1.x > x && p1.y == y){ -390 var p0 = poly[(len+i-1)%len]; -391 //当交点的两边在射线两旁 -392 if(p0.y < y && p2.y > y || p0.y > y && p2.y < y){ -393 cross ++; -394 } -395 } -396 } -397 -398 return onBorder || (cross % 2 == 1); -399 } -400 -401 /** -402 * @private -403 */ -404 function polygonCollision(poly1, poly2){ -405 var result = doSATCheck(poly1, poly2, {overlap:-Infinity, normal:{x:0, y:0}}); -406 if(result) return doSATCheck(poly2, poly1, result); -407 return false; +373 /** +374 * @private +375 */ +376 function pointInPolygon(x, y, poly){ +377 var cross = 0, onBorder = false, minX, maxX, minY, maxY; +378 +379 for(var i = 0, len = poly.length; i < len; i++){ +380 var p1 = poly[i], p2 = poly[(i+1)%len]; +381 +382 if(p1.y == p2.y && y == p1.y){ +383 p1.x > p2.x ? (minX = p2.x, maxX = p1.x) : (minX = p1.x, maxX = p2.x); +384 if(x >= minX && x <= maxX){ +385 onBorder = true; +386 continue; +387 } +388 } +389 +390 p1.y > p2.y ? (minY = p2.y, maxY = p1.y) : (minY = p1.y, maxY = p2.y); +391 if(y < minY || y > maxY) continue; +392 +393 var nx = (y - p1.y)*(p2.x - p1.x) / (p2.y - p1.y) + p1.x; +394 if(nx > x) cross++; +395 else if(nx == x) onBorder = true; +396 +397 //当射线和多边形相交 +398 if(p1.x > x && p1.y == y){ +399 var p0 = poly[(len+i-1)%len]; +400 //当交点的两边在射线两旁 +401 if(p0.y < y && p2.y > y || p0.y > y && p2.y < y){ +402 cross ++; +403 } +404 } +405 } +406 +407 return onBorder || (cross % 2 == 1); 408 } 409 410 /** 411 * @private 412 */ -413 function doSATCheck(poly1, poly2, result){ -414 var len1 = poly1.length, len2 = poly2.length, -415 currentPoint, nextPoint, distance, -416 min1, max1, min2, max2, dot, overlap, normal = {x:0, y:0}; -417 -418 for(var i = 0; i < len1; i++){ -419 currentPoint = poly1[i]; -420 nextPoint = poly1[(i < len1-1 ? i+1 : 0)]; -421 -422 normal.x = currentPoint.y - nextPoint.y; -423 normal.y = nextPoint.x - currentPoint.x; -424 -425 distance = Math.sqrt(normal.x * normal.x + normal.y * normal.y); -426 normal.x /= distance; -427 normal.y /= distance; -428 -429 min1 = max1 = poly1[0].x * normal.x + poly1[0].y * normal.y; -430 for(var j = 1; j < len1; j++){ -431 dot = poly1[j].x * normal.x + poly1[j].y * normal.y; -432 if(dot > max1) max1 = dot; -433 else if(dot < min1) min1 = dot; -434 } -435 -436 min2 = max2 = poly2[0].x * normal.x + poly2[0].y * normal.y; -437 for(j = 1; j < len2; j++){ -438 dot = poly2[j].x * normal.x + poly2[j].y * normal.y; -439 if(dot > max2) max2 = dot; -440 else if(dot < min2) min2 = dot; -441 } -442 -443 if(min1 < min2){ -444 overlap = min2 - max1; -445 normal.x = -normal.x; -446 normal.y = -normal.y; -447 }else{ -448 overlap = min1 - max2; -449 } -450 -451 if(overlap >= 0){ -452 return false; -453 }else if(overlap > result.overlap){ -454 result.overlap = overlap; -455 result.normal.x = normal.x; -456 result.normal.y = normal.y; -457 } -458 } +413 function polygonCollision(poly1, poly2){ +414 var result = doSATCheck(poly1, poly2, {overlap:-Infinity, normal:{x:0, y:0}}); +415 if(result) return doSATCheck(poly2, poly1, result); +416 return false; +417 } +418 +419 /** +420 * @private +421 */ +422 function doSATCheck(poly1, poly2, result){ +423 var len1 = poly1.length, len2 = poly2.length, +424 currentPoint, nextPoint, distance, +425 min1, max1, min2, max2, dot, overlap, normal = {x:0, y:0}; +426 +427 for(var i = 0; i < len1; i++){ +428 currentPoint = poly1[i]; +429 nextPoint = poly1[(i < len1-1 ? i+1 : 0)]; +430 +431 normal.x = currentPoint.y - nextPoint.y; +432 normal.y = nextPoint.x - currentPoint.x; +433 +434 distance = Math.sqrt(normal.x * normal.x + normal.y * normal.y); +435 normal.x /= distance; +436 normal.y /= distance; +437 +438 min1 = max1 = poly1[0].x * normal.x + poly1[0].y * normal.y; +439 for(var j = 1; j < len1; j++){ +440 dot = poly1[j].x * normal.x + poly1[j].y * normal.y; +441 if(dot > max1) max1 = dot; +442 else if(dot < min1) min1 = dot; +443 } +444 +445 min2 = max2 = poly2[0].x * normal.x + poly2[0].y * normal.y; +446 for(j = 1; j < len2; j++){ +447 dot = poly2[j].x * normal.x + poly2[j].y * normal.y; +448 if(dot > max2) max2 = dot; +449 else if(dot < min2) min2 = dot; +450 } +451 +452 if(min1 < min2){ +453 overlap = min2 - max1; +454 normal.x = -normal.x; +455 normal.y = -normal.y; +456 }else{ +457 overlap = min1 - max2; +458 } 459 -460 return result; -461 } -462 -463 })(); \ No newline at end of file +460 if(overlap >= 0){ +461 return false; +462 }else if(overlap > result.overlap){ +463 result.overlap = overlap; +464 result.normal.x = normal.x; +465 result.normal.y = normal.y; +466 } +467 } +468 +469 return result; +470 } +471 +472 })(); \ No newline at end of file diff --git a/docs/api-zh/code/core/Hilo.js b/docs/api-zh/code/core/Hilo.js index 51bbb668..ec7f1ed5 100644 --- a/docs/api-zh/code/core/Hilo.js +++ b/docs/api-zh/code/core/Hilo.js @@ -217,12 +217,23 @@ var Hilo = { if (this.cacheStateIfChanged(obj, ['depth'], stateCache)) { style.zIndex = obj.depth + 1; } - if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { - style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + if (obj.transform){ + var transform = obj.transform; + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = '0 0'; + } + style[prefix + 'Transform'] = 'matrix3d(' + transform.a + ', '+ transform.b + ', 0, 0, '+ transform.c + ', '+ transform.d + ', 0, 0, 0, 0, 1, 0, '+ transform.tx + ', '+ transform.ty + ', 0, 1)'; } - if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { - style[prefix + 'Transform'] = this.getTransformCSS(obj); + else{ + if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { + style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; + } + + if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { + style[prefix + 'Transform'] = this.getTransformCSS(obj); + } } + if (this.cacheStateIfChanged(obj, ['background'], stateCache)) { style.backgroundColor = obj.background; } diff --git a/docs/api-zh/code/geom/Matrix.js b/docs/api-zh/code/geom/Matrix.js index 2d8fda0e..dbdb8c6b 100644 --- a/docs/api-zh/code/geom/Matrix.js +++ b/docs/api-zh/code/geom/Matrix.js @@ -25,6 +25,50 @@ var Matrix = Class.create(/** @lends Matrix.prototype */{ this.ty = ty; }, + /** + * set + * @param {Number} a + * @param {Number} b + * @param {Number} c + * @param {Number} d + * @param {Number} tx + * @param {Number} ty + */ + set: function(a, b, c, d, tx, ty){ + this.a = a; + this.b = b; + this.c = c; + this.d = d; + this.tx = tx; + this.ty = ty; + + return this; + }, + + /** + * copy + * @param {Matrix} mat + * @return {Matrix} this + */ + copy: function(mat){ + this.a = mat.a; + this.b = mat.b; + this.c = mat.c; + this.d = mat.d; + this.tx = mat.tx; + this.ty = mat.ty; + + return this; + }, + + /** + * clone + * @return {Matrix} + */ + clone: function(){ + return new Matrix().copy(this); + }, + /** * 将某个矩阵与当前矩阵连接,从而将这两个矩阵的几何效果有效地结合在一起。 * @param {Matrix} mtx 要连接到源矩阵的矩阵。 diff --git a/docs/api-zh/code/renderer/CanvasRenderer.js b/docs/api-zh/code/renderer/CanvasRenderer.js index 6465bbf5..c1209790 100644 --- a/docs/api-zh/code/renderer/CanvasRenderer.js +++ b/docs/api-zh/code/renderer/CanvasRenderer.js @@ -14,26 +14,26 @@ * @requires hilo/renderer/Renderer * @property {CanvasRenderingContext2D} context canvas画布的上下文。只读属性。 */ -var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ +var CanvasRenderer = Class.create( /** @lends CanvasRenderer.prototype */ { Extends: Renderer, - constructor: function(properties){ + constructor: function(properties) { CanvasRenderer.superclass.constructor.call(this, properties); this.context = this.canvas.getContext("2d"); }, - renderType:'canvas', + renderType: 'canvas', context: null, /** * @private * @see Renderer#startDraw */ - startDraw: function(target){ - if(target.visible && target.alpha > 0){ - if(target === this.stage){ + startDraw: function(target) { + if (target.visible && target.alpha > 0) { + if (target === this.stage) { this.context.clearRect(0, 0, target.width, target.height); } - if(target.blendMode !== this.blendMode){ + if (target.blendMode !== this.blendMode) { this.context.globalCompositeOperation = this.blendMode = target.blendMode; } this.context.save(); @@ -46,31 +46,38 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#draw */ - draw: function(target){ - var ctx = this.context, w = target.width, h = target.height; + draw: function(target) { + var ctx = this.context, + w = target.width, + h = target.height; //draw background var bg = target.background; - if(bg){ + if (bg) { ctx.fillStyle = bg; ctx.fillRect(0, 0, w, h); } //draw image - var drawable = target.drawable, image = drawable && drawable.image; - if(image){ - var rect = drawable.rect, sw = rect[2], sh = rect[3], offsetX = rect[4], offsetY = rect[5]; + var drawable = target.drawable, + image = drawable && drawable.image; + if (image) { + var rect = drawable.rect, + sw = rect[2], + sh = rect[3], + offsetX = rect[4], + offsetY = rect[5]; //ie9+浏览器宽高为0时会报错 fixed ie9 bug. - if(!sw || !sh){ + if (!sw || !sh) { return; } - if(!w && !h){ + if (!w && !h) { //fix width/height TODO: how to get rid of this? w = target.width = sw; h = target.height = sh; } //the pivot is the center of frame if has offset, otherwise is (0, 0) - if(offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); + if (offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); ctx.drawImage(image, rect[0], rect[1], sw, sh, 0, 0, w, h); } }, @@ -79,7 +86,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#endDraw */ - endDraw: function(target){ + endDraw: function(target) { this.context.restore(); }, @@ -87,9 +94,9 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#transform */ - transform: function(target){ + transform: function(target) { var drawable = target.drawable; - if(drawable && drawable.domElement){ + if (drawable && drawable.domElement) { Hilo.setElementStyleByView(target); return; } @@ -98,66 +105,72 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ scaleX = target.scaleX, scaleY = target.scaleY; - if(target === this.stage){ + if (target === this.stage) { var style = this.canvas.style, oldScaleX = target._scaleX, oldScaleY = target._scaleY, isStyleChange = false; - if((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)){ + if ((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)) { target._scaleX = scaleX; style.width = scaleX * target.width + "px"; isStyleChange = true; } - if((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)){ + if ((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)) { target._scaleY = scaleY; style.height = scaleY * target.height + "px"; isStyleChange = true; } - if(isStyleChange){ + if (isStyleChange) { target.updateViewport(); } - }else{ + } else { var x = target.x, y = target.y, pivotX = target.pivotX, pivotY = target.pivotY, rotation = target.rotation % 360, + transform = target.transform, mask = target.mask; - if(mask){ + if (mask) { mask._render(this); ctx.clip(); } //alignment var align = target.align; - if(align){ + if (align) { var pos = target.getAlignPosition(); x = pos.x; y = pos.y; } + + if (transform) { + ctx.transform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); + } else { + if (x != 0 || y != 0) ctx.translate(x, y); + if (rotation != 0) ctx.rotate(rotation * Math.PI / 180); + if (scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); + if (pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); + } - if(x != 0 || y != 0) ctx.translate(x, y); - if(rotation != 0) ctx.rotate(rotation * Math.PI / 180); - if(scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); - if(pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); } - if(target.alpha > 0) ctx.globalAlpha *= target.alpha; + if (target.alpha > 0) ctx.globalAlpha *= target.alpha; }, /** * @private * @see Renderer#remove */ - remove: function(target){ + remove: function(target) { var drawable = target.drawable; var elem = drawable && drawable.domElement; - if(elem){ + if (elem) { var parentElem = elem.parentNode; - if(parentElem){ + if (parentElem) { parentElem.removeChild(elem); } } @@ -167,7 +180,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#clear */ - clear: function(x, y, width, height){ + clear: function(x, y, width, height) { this.context.clearRect(x, y, width, height); }, @@ -175,7 +188,7 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ * @private * @see Renderer#resize */ - resize: function(width, height){ + resize: function(width, height) { var canvas = this.canvas; var stage = this.stage; var style = canvas.style; diff --git a/docs/api-zh/code/renderer/WebGLRenderer.js b/docs/api-zh/code/renderer/WebGLRenderer.js index 202a3d94..a52ac0d7 100644 --- a/docs/api-zh/code/renderer/WebGLRenderer.js +++ b/docs/api-zh/code/renderer/WebGLRenderer.js @@ -416,21 +416,28 @@ var WebGLRenderer = Class.create(/** @lends WebGLRenderer.prototype */{ var cos = 1, sin = 0, rotation = view.rotation % 360, pivotX = view.pivotX, pivotY = view.pivotY, - scaleX = view.scaleX, scaleY = view.scaleY; + scaleX = view.scaleX, scaleY = view.scaleY, + transform = view.transform; - if(rotation){ - var r = rotation * DEG2RAD; - cos = Math.cos(r); - sin = Math.sin(r); + if (transform) { + mtx.copy(transform); } + else { + if(rotation){ + var r = rotation * DEG2RAD; + cos = Math.cos(r); + sin = Math.sin(r); + } + + var pos = view.getAlignPosition(); - var pos = view.getAlignPosition(); - mtx.a = cos*scaleX; - mtx.b = sin*scaleX; - mtx.c = -sin*scaleY; - mtx.d = cos*scaleY; - mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; - mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + mtx.a = cos*scaleX; + mtx.b = sin*scaleX; + mtx.c = -sin*scaleY; + mtx.d = cos*scaleY; + mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; + mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; + } mtx.concat(ancestor.__webglWorldMatrix); }, diff --git a/docs/api-zh/code/view/View.js b/docs/api-zh/code/view/View.js index 7a069062..2ac179e4 100644 --- a/docs/api-zh/code/view/View.js +++ b/docs/api-zh/code/view/View.js @@ -29,6 +29,7 @@ * @property {Number} pivotY 可视对象的中心点的y轴坐标。默认值为0。 * @property {Number} scaleX 可视对象在x轴上的缩放比例。默认为不缩放,即1。 * @property {Number} scaleY 可视对象在y轴上的缩放比例。默认为不缩放,即1。 + * @property {Matrix} transform 可视对象的transform属性,如果设置将忽略x, y, scaleX, scaleY, rotation. pivotX, pivotY 属性。默认null。 * @property {Boolean} pointerEnabled 可视对象是否接受交互事件。默认为接受交互事件,即true。 * @property {Object} background 可视对象的背景样式。可以是CSS颜色值、canvas的gradient或pattern填充。 * @property {Graphics} mask 可视对象的遮罩图形。 @@ -70,6 +71,7 @@ return Class.create(/** @lends View.prototype */{ boundsArea: null, parent: null, depth: -1, + transform: null, blendMode:'source-over', /** @@ -175,19 +177,26 @@ return Class.create(/** @lends View.prototype */{ var cos = 1, sin = 0, rotation = o.rotation % 360, pivotX = o.pivotX, pivotY = o.pivotY, - scaleX = o.scaleX, scaleY = o.scaleY; + scaleX = o.scaleX, scaleY = o.scaleY, + transform = o.transform; - if(rotation){ - var r = rotation * Math.PI / 180; - cos = Math.cos(r); - sin = Math.sin(r); + if(transform) { + mtx.concat(transform); } + else{ + if(rotation){ + var r = rotation * Math.PI / 180; + cos = Math.cos(r); + sin = Math.sin(r); + } - if(pivotX != 0) mtx.tx -= pivotX; - if(pivotY != 0) mtx.ty -= pivotY; + if(pivotX != 0) mtx.tx -= pivotX; + if(pivotY != 0) mtx.ty -= pivotY; - var pos = o.getAlignPosition(); - mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + var pos = o.getAlignPosition(); + mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); + } + } return mtx; }, diff --git a/docs/api-zh/index.html b/docs/api-zh/index.html index a2ebe493..64dbc407 100644 --- a/docs/api-zh/index.html +++ b/docs/api-zh/index.html @@ -188,7 +188,7 @@
    -
    全部类概览(v1.1.13)
    +
    全部类概览(v1.2.0)
    diff --git a/docs/api-zh/symbols/Bitmap.html b/docs/api-zh/symbols/Bitmap.html index 460eeccc..936b6e0f 100644 --- a/docs/api-zh/symbols/Bitmap.html +++ b/docs/api-zh/symbols/Bitmap.html @@ -627,6 +627,26 @@

    属性概览

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    clone():Matrix +
    +
    + + clone +
    +
    + Matrix +
    @@ -285,6 +303,24 @@

    方法概览

    + + +
    copy(mat:Matrix):Matrix +
    +
    + + copy +
    +
    + Matrix +
    @@ -357,6 +393,24 @@

    方法概览

    + + +
    set(a:Number, b:Number, c:Number, d:Number, tx:Number, ty:Number) +
    +
    + + set +
    +
    + Matrix +
    @@ -475,6 +529,33 @@

    构造函数


    方法详情

    + +
    +
    + + clone():Matrix +
    +
    clone
    + + + + + + + + +
    +
    return
    + +
    Matrix
    + +
    + + + + +
    +
    @@ -510,6 +591,43 @@

    构造函数

    +
    + + +
    +
    + + copy(mat:Matrix):Matrix +
    +
    copy
    + + + + +
    +
    parameters
    + +
    + mat:Matrix + — +
    + +
    + + + + + +
    +
    return
    + +
    Matrix — this
    + +
    + + + +
    @@ -643,6 +761,61 @@

    构造函数

    +
    + + +
    +
    + + set(a:Number, b:Number, c:Number, d:Number, tx:Number, ty:Number) +
    +
    set
    + + + + +
    +
    parameters
    + +
    + a:Number + — +
    + +
    + b:Number + — +
    + +
    + c:Number + — +
    + +
    + d:Number + — +
    + +
    + tx:Number + — +
    + +
    + ty:Number + — +
    + +
    + + + + + + + +
    diff --git a/docs/api-zh/symbols/ParticleSystem.html b/docs/api-zh/symbols/ParticleSystem.html index d9671c65..da836774 100644 --- a/docs/api-zh/symbols/ParticleSystem.html +++ b/docs/api-zh/symbols/ParticleSystem.html @@ -841,6 +841,26 @@

    属性概览

    + + +
    + + transform:Matrix +
    +
    + + 可视对象的transform属性,如果设置将忽略x, y, scaleX, scaleY, rotation. +
    +
    + View +
    @@ -1355,6 +1375,25 @@

    属性详情

    + + + +
    +
    + transform:Matrix + +
    +
    + 可视对象的transform属性,如果设置将忽略x, y, scaleX, scaleY, rotation. pivotX, pivotY 属性。默认null。 +
    + + + + + + + +
    diff --git a/docs/api-zh/symbols/src/docs_api-zh_code_core_Hilo.js.html b/docs/api-zh/symbols/src/docs_api-zh_code_core_Hilo.js.html index 21fd341d..f30e7d56 100644 --- a/docs/api-zh/symbols/src/docs_api-zh_code_core_Hilo.js.html +++ b/docs/api-zh/symbols/src/docs_api-zh_code_core_Hilo.js.html @@ -224,90 +224,101 @@ 217 if (this.cacheStateIfChanged(obj, ['depth'], stateCache)) { 218 style.zIndex = obj.depth + 1; 219 } -220 if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { -221 style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; -222 } -223 if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { -224 style[prefix + 'Transform'] = this.getTransformCSS(obj); -225 } -226 if (this.cacheStateIfChanged(obj, ['background'], stateCache)) { -227 style.backgroundColor = obj.background; -228 } -229 if (!style.pointerEvents) { -230 style.pointerEvents = 'none'; -231 } -232 -233 //render image as background -234 var image = drawable.image; -235 if (image) { -236 var src = image.src; -237 if (src !== stateCache.image) { -238 stateCache.image = src; -239 style.backgroundImage = 'url(' + src + ')'; -240 } -241 -242 var rect = drawable.rect; -243 if (rect) { -244 var sx = rect[0], -245 sy = rect[1]; -246 if (sx !== stateCache.sx) { -247 stateCache.sx = sx; -248 style.backgroundPositionX = -sx + px; -249 } -250 if (sy !== stateCache.sy) { -251 stateCache.sy = sy; -252 style.backgroundPositionY = -sy + px; -253 } -254 } -255 } -256 -257 //render mask -258 var mask = obj.mask; -259 if (mask) { -260 var maskImage = mask.drawable.domElement.style.backgroundImage; -261 if (maskImage !== stateCache.maskImage) { -262 stateCache.maskImage = maskImage; -263 style[prefix + 'MaskImage'] = maskImage; -264 style[prefix + 'MaskRepeat'] = 'no-repeat'; +220 if (obj.transform){ +221 var transform = obj.transform; +222 if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { +223 style[prefix + 'TransformOrigin'] = '0 0'; +224 } +225 style[prefix + 'Transform'] = 'matrix3d(' + transform.a + ', '+ transform.b + ', 0, 0, '+ transform.c + ', '+ transform.d + ', 0, 0, 0, 0, 1, 0, '+ transform.tx + ', '+ transform.ty + ', 0, 1)'; +226 } +227 else{ +228 if (flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)) { +229 style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px; +230 } +231 +232 if (this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag) { +233 style[prefix + 'Transform'] = this.getTransformCSS(obj); +234 } +235 } +236 +237 if (this.cacheStateIfChanged(obj, ['background'], stateCache)) { +238 style.backgroundColor = obj.background; +239 } +240 if (!style.pointerEvents) { +241 style.pointerEvents = 'none'; +242 } +243 +244 //render image as background +245 var image = drawable.image; +246 if (image) { +247 var src = image.src; +248 if (src !== stateCache.image) { +249 stateCache.image = src; +250 style.backgroundImage = 'url(' + src + ')'; +251 } +252 +253 var rect = drawable.rect; +254 if (rect) { +255 var sx = rect[0], +256 sy = rect[1]; +257 if (sx !== stateCache.sx) { +258 stateCache.sx = sx; +259 style.backgroundPositionX = -sx + px; +260 } +261 if (sy !== stateCache.sy) { +262 stateCache.sy = sy; +263 style.backgroundPositionY = -sy + px; +264 } 265 } -266 -267 var maskX = mask.x, -268 maskY = mask.y; -269 if (maskX !== stateCache.maskX || maskY !== stateCache.maskY) { -270 stateCache.maskX = maskX; -271 stateCache.maskY = maskY; -272 style[prefix + 'MaskPosition'] = maskX + px + ' ' + maskY + px; -273 } -274 } -275 }, -276 -277 /** -278 * @private -279 */ -280 cacheStateIfChanged: function(obj, propNames, stateCache) { -281 var i, len, name, value, changed = false; -282 for (i = 0, len = propNames.length; i < len; i++) { -283 name = propNames[i]; -284 value = obj[name]; -285 if (value != stateCache[name]) { -286 stateCache[name] = value; -287 changed = true; -288 } -289 } -290 return changed; -291 }, -292 -293 /** -294 * 生成可视对象的CSS变换样式。 -295 * @param {View} obj 指定生成CSS变换样式的可视对象。 -296 * @returns {String} 生成的CSS样式字符串。 -297 */ -298 getTransformCSS: function(obj) { -299 var use3d = this.browser.supportTransform3D, -300 str3d = use3d ? '3d' : ''; -301 -302 return 'translate' + str3d + '(' + (obj.x - obj.pivotX) + 'px, ' + (obj.y - obj.pivotY) + (use3d ? 'px, 0px)' : 'px)') + -303 'rotate' + str3d + (use3d ? '(0, 0, 1, ' : '(') + obj.rotation + 'deg)' + -304 'scale' + str3d + '(' + obj.scaleX + ', ' + obj.scaleY + (use3d ? ', 1)' : ')'); -305 } -306 }; \ No newline at end of file +266 } +267 +268 //render mask +269 var mask = obj.mask; +270 if (mask) { +271 var maskImage = mask.drawable.domElement.style.backgroundImage; +272 if (maskImage !== stateCache.maskImage) { +273 stateCache.maskImage = maskImage; +274 style[prefix + 'MaskImage'] = maskImage; +275 style[prefix + 'MaskRepeat'] = 'no-repeat'; +276 } +277 +278 var maskX = mask.x, +279 maskY = mask.y; +280 if (maskX !== stateCache.maskX || maskY !== stateCache.maskY) { +281 stateCache.maskX = maskX; +282 stateCache.maskY = maskY; +283 style[prefix + 'MaskPosition'] = maskX + px + ' ' + maskY + px; +284 } +285 } +286 }, +287 +288 /** +289 * @private +290 */ +291 cacheStateIfChanged: function(obj, propNames, stateCache) { +292 var i, len, name, value, changed = false; +293 for (i = 0, len = propNames.length; i < len; i++) { +294 name = propNames[i]; +295 value = obj[name]; +296 if (value != stateCache[name]) { +297 stateCache[name] = value; +298 changed = true; +299 } +300 } +301 return changed; +302 }, +303 +304 /** +305 * 生成可视对象的CSS变换样式。 +306 * @param {View} obj 指定生成CSS变换样式的可视对象。 +307 * @returns {String} 生成的CSS样式字符串。 +308 */ +309 getTransformCSS: function(obj) { +310 var use3d = this.browser.supportTransform3D, +311 str3d = use3d ? '3d' : ''; +312 +313 return 'translate' + str3d + '(' + (obj.x - obj.pivotX) + 'px, ' + (obj.y - obj.pivotY) + (use3d ? 'px, 0px)' : 'px)') + +314 'rotate' + str3d + (use3d ? '(0, 0, 1, ' : '(') + obj.rotation + 'deg)' + +315 'scale' + str3d + '(' + obj.scaleX + ', ' + obj.scaleY + (use3d ? ', 1)' : ')'); +316 } +317 }; \ No newline at end of file diff --git a/docs/api-zh/symbols/src/docs_api-zh_code_geom_Matrix.js.html b/docs/api-zh/symbols/src/docs_api-zh_code_geom_Matrix.js.html index e7dfff95..016f3054 100644 --- a/docs/api-zh/symbols/src/docs_api-zh_code_geom_Matrix.js.html +++ b/docs/api-zh/symbols/src/docs_api-zh_code_geom_Matrix.js.html @@ -33,140 +33,184 @@ 26 }, 27 28 /** - 29 * 将某个矩阵与当前矩阵连接,从而将这两个矩阵的几何效果有效地结合在一起。 - 30 * @param {Matrix} mtx 要连接到源矩阵的矩阵。 - 31 * @returns {Matrix} 一个Matrix对象。 - 32 */ - 33 concat: function(mtx){ - 34 var args = arguments, - 35 a = this.a, b = this.b, c = this.c, d = this.d, - 36 tx = this.tx, ty = this.ty; - 37 - 38 var ma, mb, mc, md, mx, my; - 39 if(args.length >= 6){ - 40 ma = args[0]; - 41 mb = args[1]; - 42 mc = args[2]; - 43 md = args[3]; - 44 mx = args[4]; - 45 my = args[5]; - 46 } - 47 else{ - 48 ma = mtx.a; - 49 mb = mtx.b; - 50 mc = mtx.c; - 51 md = mtx.d; - 52 mx = mtx.tx; - 53 my = mtx.ty; - 54 } - 55 - 56 this.a = a * ma + b * mc; - 57 this.b = a * mb + b * md; - 58 this.c = c * ma + d * mc; - 59 this.d = c * mb + d * md; - 60 this.tx = tx * ma + ty * mc + mx; - 61 this.ty = tx * mb + ty * md + my; - 62 return this; - 63 }, - 64 - 65 /** - 66 * 对 Matrix 对象应用旋转转换。 - 67 * @param {Number} angle 旋转的角度。 - 68 * @returns {Matrix} 一个Matrix对象。 - 69 */ - 70 rotate: function(angle){ - 71 var sin = Math.sin(angle), cos = Math.cos(angle), - 72 a = this.a, b = this.b, c = this.c, d = this.d, - 73 tx = this.tx, ty = this.ty; - 74 - 75 this.a = a * cos - b * sin; - 76 this.b = a * sin + b * cos; - 77 this.c = c * cos - d * sin; - 78 this.d = c * sin + d * cos; - 79 this.tx = tx * cos - ty * sin; - 80 this.ty = tx * sin + ty * cos; - 81 return this; - 82 }, - 83 - 84 /** - 85 * 对矩阵应用缩放转换。 - 86 * @param {Number} sx 用于沿 x 轴缩放对象的乘数。 - 87 * @param {Number} sy 用于沿 y 轴缩放对象的乘数。 - 88 * @returns {Matrix} 一个Matrix对象。 - 89 */ - 90 scale: function(sx, sy){ - 91 this.a *= sx; - 92 this.d *= sy; - 93 this.c *= sx; - 94 this.b *= sy; - 95 this.tx *= sx; - 96 this.ty *= sy; - 97 return this; - 98 }, + 29 * set + 30 * @param {Number} a + 31 * @param {Number} b + 32 * @param {Number} c + 33 * @param {Number} d + 34 * @param {Number} tx + 35 * @param {Number} ty + 36 */ + 37 set: function(a, b, c, d, tx, ty){ + 38 this.a = a; + 39 this.b = b; + 40 this.c = c; + 41 this.d = d; + 42 this.tx = tx; + 43 this.ty = ty; + 44 + 45 return this; + 46 }, + 47 + 48 /** + 49 * copy + 50 * @param {Matrix} mat + 51 * @return {Matrix} this + 52 */ + 53 copy: function(mat){ + 54 this.a = mat.a; + 55 this.b = mat.b; + 56 this.c = mat.c; + 57 this.d = mat.d; + 58 this.tx = mat.tx; + 59 this.ty = mat.ty; + 60 + 61 return this; + 62 }, + 63 + 64 /** + 65 * clone + 66 * @return {Matrix} + 67 */ + 68 clone: function(){ + 69 return new Matrix().copy(this); + 70 }, + 71 + 72 /** + 73 * 将某个矩阵与当前矩阵连接,从而将这两个矩阵的几何效果有效地结合在一起。 + 74 * @param {Matrix} mtx 要连接到源矩阵的矩阵。 + 75 * @returns {Matrix} 一个Matrix对象。 + 76 */ + 77 concat: function(mtx){ + 78 var args = arguments, + 79 a = this.a, b = this.b, c = this.c, d = this.d, + 80 tx = this.tx, ty = this.ty; + 81 + 82 var ma, mb, mc, md, mx, my; + 83 if(args.length >= 6){ + 84 ma = args[0]; + 85 mb = args[1]; + 86 mc = args[2]; + 87 md = args[3]; + 88 mx = args[4]; + 89 my = args[5]; + 90 } + 91 else{ + 92 ma = mtx.a; + 93 mb = mtx.b; + 94 mc = mtx.c; + 95 md = mtx.d; + 96 mx = mtx.tx; + 97 my = mtx.ty; + 98 } 99 -100 /** -101 * 沿 x 和 y 轴平移矩阵,由 dx 和 dy 参数指定。 -102 * @param {Number} dx 沿 x 轴向右移动的量(以像素为单位)。 -103 * @param {Number} dy 沿 y 轴向右移动的量(以像素为单位)。 -104 * @returns {Matrix} 一个Matrix对象。 -105 */ -106 translate: function(dx, dy){ -107 this.tx += dx; -108 this.ty += dy; -109 return this; -110 }, -111 -112 /** -113 * 为每个矩阵属性设置一个值,该值将导致 null 转换。通过应用恒等矩阵转换的对象将与原始对象完全相同。 -114 * @returns {Matrix} 一个Matrix对象。 -115 */ -116 identity: function(){ -117 this.a = this.d = 1; -118 this.b = this.c = this.tx = this.ty = 0; -119 return this; -120 }, -121 -122 /** -123 * 执行原始矩阵的逆转换。您可以将一个逆矩阵应用于对象来撤消在应用原始矩阵时执行的转换。 -124 * @returns {Matrix} 一个Matrix对象。 -125 */ -126 invert: function(){ -127 var a = this.a; -128 var b = this.b; -129 var c = this.c; -130 var d = this.d; -131 var tx = this.tx; -132 var i = a * d - b * c; -133 -134 this.a = d / i; -135 this.b = -b / i; -136 this.c = -c / i; -137 this.d = a / i; -138 this.tx = (c * this.ty - d * tx) / i; -139 this.ty = -(a * this.ty - b * tx) / i; -140 return this; -141 }, -142 -143 /** -144 * 返回将 Matrix 对象表示的几何转换应用于指定点所产生的结果。 -145 * @param {Object} point 想要获得其矩阵转换结果的点。 -146 * @param {Boolean} round 是否对点的坐标进行向上取整。 -147 * @param {Boolean} returnNew 是否返回一个新的点。 -148 * @returns {Object} 由应用矩阵转换所产生的点。 +100 this.a = a * ma + b * mc; +101 this.b = a * mb + b * md; +102 this.c = c * ma + d * mc; +103 this.d = c * mb + d * md; +104 this.tx = tx * ma + ty * mc + mx; +105 this.ty = tx * mb + ty * md + my; +106 return this; +107 }, +108 +109 /** +110 * 对 Matrix 对象应用旋转转换。 +111 * @param {Number} angle 旋转的角度。 +112 * @returns {Matrix} 一个Matrix对象。 +113 */ +114 rotate: function(angle){ +115 var sin = Math.sin(angle), cos = Math.cos(angle), +116 a = this.a, b = this.b, c = this.c, d = this.d, +117 tx = this.tx, ty = this.ty; +118 +119 this.a = a * cos - b * sin; +120 this.b = a * sin + b * cos; +121 this.c = c * cos - d * sin; +122 this.d = c * sin + d * cos; +123 this.tx = tx * cos - ty * sin; +124 this.ty = tx * sin + ty * cos; +125 return this; +126 }, +127 +128 /** +129 * 对矩阵应用缩放转换。 +130 * @param {Number} sx 用于沿 x 轴缩放对象的乘数。 +131 * @param {Number} sy 用于沿 y 轴缩放对象的乘数。 +132 * @returns {Matrix} 一个Matrix对象。 +133 */ +134 scale: function(sx, sy){ +135 this.a *= sx; +136 this.d *= sy; +137 this.c *= sx; +138 this.b *= sy; +139 this.tx *= sx; +140 this.ty *= sy; +141 return this; +142 }, +143 +144 /** +145 * 沿 x 和 y 轴平移矩阵,由 dx 和 dy 参数指定。 +146 * @param {Number} dx 沿 x 轴向右移动的量(以像素为单位)。 +147 * @param {Number} dy 沿 y 轴向右移动的量(以像素为单位)。 +148 * @returns {Matrix} 一个Matrix对象。 149 */ -150 transformPoint: function(point, round, returnNew){ -151 var x = point.x * this.a + point.y * this.c + this.tx, -152 y = point.x * this.b + point.y * this.d + this.ty; -153 -154 if(round){ -155 x = x + 0.5 >> 0; -156 y = y + 0.5 >> 0; -157 } -158 if(returnNew) return {x:x, y:y}; -159 point.x = x; -160 point.y = y; -161 return point; -162 } -163 -164 }); -165 \ No newline at end of file +150 translate: function(dx, dy){ +151 this.tx += dx; +152 this.ty += dy; +153 return this; +154 }, +155 +156 /** +157 * 为每个矩阵属性设置一个值,该值将导致 null 转换。通过应用恒等矩阵转换的对象将与原始对象完全相同。 +158 * @returns {Matrix} 一个Matrix对象。 +159 */ +160 identity: function(){ +161 this.a = this.d = 1; +162 this.b = this.c = this.tx = this.ty = 0; +163 return this; +164 }, +165 +166 /** +167 * 执行原始矩阵的逆转换。您可以将一个逆矩阵应用于对象来撤消在应用原始矩阵时执行的转换。 +168 * @returns {Matrix} 一个Matrix对象。 +169 */ +170 invert: function(){ +171 var a = this.a; +172 var b = this.b; +173 var c = this.c; +174 var d = this.d; +175 var tx = this.tx; +176 var i = a * d - b * c; +177 +178 this.a = d / i; +179 this.b = -b / i; +180 this.c = -c / i; +181 this.d = a / i; +182 this.tx = (c * this.ty - d * tx) / i; +183 this.ty = -(a * this.ty - b * tx) / i; +184 return this; +185 }, +186 +187 /** +188 * 返回将 Matrix 对象表示的几何转换应用于指定点所产生的结果。 +189 * @param {Object} point 想要获得其矩阵转换结果的点。 +190 * @param {Boolean} round 是否对点的坐标进行向上取整。 +191 * @param {Boolean} returnNew 是否返回一个新的点。 +192 * @returns {Object} 由应用矩阵转换所产生的点。 +193 */ +194 transformPoint: function(point, round, returnNew){ +195 var x = point.x * this.a + point.y * this.c + this.tx, +196 y = point.x * this.b + point.y * this.d + this.ty; +197 +198 if(round){ +199 x = x + 0.5 >> 0; +200 y = y + 0.5 >> 0; +201 } +202 if(returnNew) return {x:x, y:y}; +203 point.x = x; +204 point.y = y; +205 return point; +206 } +207 +208 }); +209 \ No newline at end of file diff --git a/docs/api-zh/symbols/src/docs_api-zh_code_renderer_CanvasRenderer.js.html b/docs/api-zh/symbols/src/docs_api-zh_code_renderer_CanvasRenderer.js.html index a8020584..09ed6cc0 100644 --- a/docs/api-zh/symbols/src/docs_api-zh_code_renderer_CanvasRenderer.js.html +++ b/docs/api-zh/symbols/src/docs_api-zh_code_renderer_CanvasRenderer.js.html @@ -21,26 +21,26 @@ 14 * @requires hilo/renderer/Renderer 15 * @property {CanvasRenderingContext2D} context canvas画布的上下文。只读属性。 16 */ - 17 var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{ + 17 var CanvasRenderer = Class.create( /** @lends CanvasRenderer.prototype */ { 18 Extends: Renderer, - 19 constructor: function(properties){ + 19 constructor: function(properties) { 20 CanvasRenderer.superclass.constructor.call(this, properties); 21 22 this.context = this.canvas.getContext("2d"); 23 }, - 24 renderType:'canvas', + 24 renderType: 'canvas', 25 context: null, 26 27 /** 28 * @private 29 * @see Renderer#startDraw 30 */ - 31 startDraw: function(target){ - 32 if(target.visible && target.alpha > 0){ - 33 if(target === this.stage){ + 31 startDraw: function(target) { + 32 if (target.visible && target.alpha > 0) { + 33 if (target === this.stage) { 34 this.context.clearRect(0, 0, target.width, target.height); 35 } - 36 if(target.blendMode !== this.blendMode){ + 36 if (target.blendMode !== this.blendMode) { 37 this.context.globalCompositeOperation = this.blendMode = target.blendMode; 38 } 39 this.context.save(); @@ -53,145 +53,158 @@ 46 * @private 47 * @see Renderer#draw 48 */ - 49 draw: function(target){ - 50 var ctx = this.context, w = target.width, h = target.height; - 51 - 52 //draw background - 53 var bg = target.background; - 54 if(bg){ - 55 ctx.fillStyle = bg; - 56 ctx.fillRect(0, 0, w, h); - 57 } - 58 - 59 //draw image - 60 var drawable = target.drawable, image = drawable && drawable.image; - 61 if(image){ - 62 var rect = drawable.rect, sw = rect[2], sh = rect[3], offsetX = rect[4], offsetY = rect[5]; - 63 //ie9+浏览器宽高为0时会报错 fixed ie9 bug. - 64 if(!sw || !sh){ - 65 return; - 66 } - 67 if(!w && !h){ - 68 //fix width/height TODO: how to get rid of this? - 69 w = target.width = sw; - 70 h = target.height = sh; - 71 } - 72 //the pivot is the center of frame if has offset, otherwise is (0, 0) - 73 if(offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); - 74 ctx.drawImage(image, rect[0], rect[1], sw, sh, 0, 0, w, h); - 75 } - 76 }, - 77 - 78 /** - 79 * @private - 80 * @see Renderer#endDraw - 81 */ - 82 endDraw: function(target){ - 83 this.context.restore(); - 84 }, - 85 - 86 /** - 87 * @private - 88 * @see Renderer#transform - 89 */ - 90 transform: function(target){ - 91 var drawable = target.drawable; - 92 if(drawable && drawable.domElement){ - 93 Hilo.setElementStyleByView(target); - 94 return; - 95 } - 96 - 97 var ctx = this.context, - 98 scaleX = target.scaleX, - 99 scaleY = target.scaleY; -100 -101 if(target === this.stage){ -102 var style = this.canvas.style, -103 oldScaleX = target._scaleX, -104 oldScaleY = target._scaleY, -105 isStyleChange = false; -106 -107 if((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)){ -108 target._scaleX = scaleX; -109 style.width = scaleX * target.width + "px"; -110 isStyleChange = true; -111 } -112 if((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)){ -113 target._scaleY = scaleY; -114 style.height = scaleY * target.height + "px"; -115 isStyleChange = true; -116 } -117 if(isStyleChange){ -118 target.updateViewport(); -119 } -120 }else{ -121 var x = target.x, -122 y = target.y, -123 pivotX = target.pivotX, -124 pivotY = target.pivotY, -125 rotation = target.rotation % 360, -126 mask = target.mask; -127 -128 if(mask){ -129 mask._render(this); -130 ctx.clip(); -131 } -132 -133 //alignment -134 var align = target.align; -135 if(align){ -136 var pos = target.getAlignPosition(); -137 x = pos.x; -138 y = pos.y; + 49 draw: function(target) { + 50 var ctx = this.context, + 51 w = target.width, + 52 h = target.height; + 53 + 54 //draw background + 55 var bg = target.background; + 56 if (bg) { + 57 ctx.fillStyle = bg; + 58 ctx.fillRect(0, 0, w, h); + 59 } + 60 + 61 //draw image + 62 var drawable = target.drawable, + 63 image = drawable && drawable.image; + 64 if (image) { + 65 var rect = drawable.rect, + 66 sw = rect[2], + 67 sh = rect[3], + 68 offsetX = rect[4], + 69 offsetY = rect[5]; + 70 //ie9+浏览器宽高为0时会报错 fixed ie9 bug. + 71 if (!sw || !sh) { + 72 return; + 73 } + 74 if (!w && !h) { + 75 //fix width/height TODO: how to get rid of this? + 76 w = target.width = sw; + 77 h = target.height = sh; + 78 } + 79 //the pivot is the center of frame if has offset, otherwise is (0, 0) + 80 if (offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5); + 81 ctx.drawImage(image, rect[0], rect[1], sw, sh, 0, 0, w, h); + 82 } + 83 }, + 84 + 85 /** + 86 * @private + 87 * @see Renderer#endDraw + 88 */ + 89 endDraw: function(target) { + 90 this.context.restore(); + 91 }, + 92 + 93 /** + 94 * @private + 95 * @see Renderer#transform + 96 */ + 97 transform: function(target) { + 98 var drawable = target.drawable; + 99 if (drawable && drawable.domElement) { +100 Hilo.setElementStyleByView(target); +101 return; +102 } +103 +104 var ctx = this.context, +105 scaleX = target.scaleX, +106 scaleY = target.scaleY; +107 +108 if (target === this.stage) { +109 var style = this.canvas.style, +110 oldScaleX = target._scaleX, +111 oldScaleY = target._scaleY, +112 isStyleChange = false; +113 +114 if ((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)) { +115 target._scaleX = scaleX; +116 style.width = scaleX * target.width + "px"; +117 isStyleChange = true; +118 } +119 if ((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)) { +120 target._scaleY = scaleY; +121 style.height = scaleY * target.height + "px"; +122 isStyleChange = true; +123 } +124 if (isStyleChange) { +125 target.updateViewport(); +126 } +127 } else { +128 var x = target.x, +129 y = target.y, +130 pivotX = target.pivotX, +131 pivotY = target.pivotY, +132 rotation = target.rotation % 360, +133 transform = target.transform, +134 mask = target.mask; +135 +136 if (mask) { +137 mask._render(this); +138 ctx.clip(); 139 } 140 -141 if(x != 0 || y != 0) ctx.translate(x, y); -142 if(rotation != 0) ctx.rotate(rotation * Math.PI / 180); -143 if(scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); -144 if(pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); -145 } -146 -147 if(target.alpha > 0) ctx.globalAlpha *= target.alpha; -148 }, -149 -150 /** -151 * @private -152 * @see Renderer#remove -153 */ -154 remove: function(target){ -155 var drawable = target.drawable; -156 var elem = drawable && drawable.domElement; +141 //alignment +142 var align = target.align; +143 if (align) { +144 var pos = target.getAlignPosition(); +145 x = pos.x; +146 y = pos.y; +147 } +148 +149 if (transform) { +150 ctx.transform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); +151 } else { +152 if (x != 0 || y != 0) ctx.translate(x, y); +153 if (rotation != 0) ctx.rotate(rotation * Math.PI / 180); +154 if (scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY); +155 if (pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY); +156 } 157 -158 if(elem){ -159 var parentElem = elem.parentNode; -160 if(parentElem){ -161 parentElem.removeChild(elem); -162 } -163 } -164 }, -165 -166 /** -167 * @private -168 * @see Renderer#clear -169 */ -170 clear: function(x, y, width, height){ -171 this.context.clearRect(x, y, width, height); -172 }, -173 -174 /** -175 * @private -176 * @see Renderer#resize -177 */ -178 resize: function(width, height){ -179 var canvas = this.canvas; -180 var stage = this.stage; -181 var style = canvas.style; -182 -183 canvas.width = width; -184 canvas.height = height; -185 -186 style.width = stage.width * stage.scaleX + 'px'; -187 style.height = stage.height * stage.scaleY + 'px'; -188 } -189 -190 }); \ No newline at end of file +158 } +159 +160 if (target.alpha > 0) ctx.globalAlpha *= target.alpha; +161 }, +162 +163 /** +164 * @private +165 * @see Renderer#remove +166 */ +167 remove: function(target) { +168 var drawable = target.drawable; +169 var elem = drawable && drawable.domElement; +170 +171 if (elem) { +172 var parentElem = elem.parentNode; +173 if (parentElem) { +174 parentElem.removeChild(elem); +175 } +176 } +177 }, +178 +179 /** +180 * @private +181 * @see Renderer#clear +182 */ +183 clear: function(x, y, width, height) { +184 this.context.clearRect(x, y, width, height); +185 }, +186 +187 /** +188 * @private +189 * @see Renderer#resize +190 */ +191 resize: function(width, height) { +192 var canvas = this.canvas; +193 var stage = this.stage; +194 var style = canvas.style; +195 +196 canvas.width = width; +197 canvas.height = height; +198 +199 style.width = stage.width * stage.scaleX + 'px'; +200 style.height = stage.height * stage.scaleY + 'px'; +201 } +202 +203 }); \ No newline at end of file diff --git a/docs/api-zh/symbols/src/docs_api-zh_code_renderer_WebGLRenderer.js.html b/docs/api-zh/symbols/src/docs_api-zh_code_renderer_WebGLRenderer.js.html index d80f96fe..6b030c23 100644 --- a/docs/api-zh/symbols/src/docs_api-zh_code_renderer_WebGLRenderer.js.html +++ b/docs/api-zh/symbols/src/docs_api-zh_code_renderer_WebGLRenderer.js.html @@ -423,143 +423,150 @@ 416 var cos = 1, sin = 0, 417 rotation = view.rotation % 360, 418 pivotX = view.pivotX, pivotY = view.pivotY, -419 scaleX = view.scaleX, scaleY = view.scaleY; -420 -421 if(rotation){ -422 var r = rotation * DEG2RAD; -423 cos = Math.cos(r); -424 sin = Math.sin(r); -425 } -426 -427 var pos = view.getAlignPosition(); -428 mtx.a = cos*scaleX; -429 mtx.b = sin*scaleX; -430 mtx.c = -sin*scaleY; -431 mtx.d = cos*scaleY; -432 mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; -433 mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; -434 -435 mtx.concat(ancestor.__webglWorldMatrix); -436 }, -437 _getTexture:function(sprite){ -438 var image = sprite.__textureImage; -439 var texture = this._cacheTexture[image.src]; -440 if(!texture){ -441 texture = this.activeShader.uploadTexture(image); -442 } -443 return texture; -444 } -445 }); -446 -447 /** -448 * shader -449 * @param {WebGLRenderer} renderer [description] -450 * @param {Object} source -451 * @param {String} source.v 顶点shader -452 * @param {String} source.f 片段shader -453 * @param {Object} attr -454 * @param {Array} attr.attributes attribute数组 -455 * @param {Array} attr.uniforms uniform数组 -456 */ -457 var Shader = function(renderer, source, attr){ -458 this.renderer = renderer; -459 this.gl = renderer.gl; -460 this.program = this._createProgram(this.gl, source.v, source.f); -461 -462 attr = attr||{}; -463 this.attributes = attr.attributes||[]; -464 this.uniforms = attr.uniforms||[]; -465 }; -466 -467 Shader.prototype = { -468 active:function(){ -469 var that = this; -470 var renderer = that.renderer; -471 var gl = that.gl; -472 var program = that.program; +419 scaleX = view.scaleX, scaleY = view.scaleY, +420 transform = view.transform; +421 +422 if (transform) { +423 mtx.copy(transform); +424 } +425 else { +426 if(rotation){ +427 var r = rotation * DEG2RAD; +428 cos = Math.cos(r); +429 sin = Math.sin(r); +430 } +431 +432 var pos = view.getAlignPosition(); +433 +434 mtx.a = cos*scaleX; +435 mtx.b = sin*scaleX; +436 mtx.c = -sin*scaleY; +437 mtx.d = cos*scaleY; +438 mtx.tx = pos.x - mtx.a * pivotX - mtx.c * pivotY; +439 mtx.ty = pos.y - mtx.b * pivotX - mtx.d * pivotY; +440 } +441 +442 mtx.concat(ancestor.__webglWorldMatrix); +443 }, +444 _getTexture:function(sprite){ +445 var image = sprite.__textureImage; +446 var texture = this._cacheTexture[image.src]; +447 if(!texture){ +448 texture = this.activeShader.uploadTexture(image); +449 } +450 return texture; +451 } +452 }); +453 +454 /** +455 * shader +456 * @param {WebGLRenderer} renderer [description] +457 * @param {Object} source +458 * @param {String} source.v 顶点shader +459 * @param {String} source.f 片段shader +460 * @param {Object} attr +461 * @param {Array} attr.attributes attribute数组 +462 * @param {Array} attr.uniforms uniform数组 +463 */ +464 var Shader = function(renderer, source, attr){ +465 this.renderer = renderer; +466 this.gl = renderer.gl; +467 this.program = this._createProgram(this.gl, source.v, source.f); +468 +469 attr = attr||{}; +470 this.attributes = attr.attributes||[]; +471 this.uniforms = attr.uniforms||[]; +472 }; 473 -474 if(program && gl){ -475 renderer.activeShader = that; -476 gl.useProgram(program); -477 that.attributes.forEach(function(attribute){ -478 renderer[attribute] = gl.getAttribLocation(program, attribute); -479 gl.enableVertexAttribArray(renderer[attribute]); -480 }); -481 -482 that.uniforms.forEach(function(uniform){ -483 renderer[uniform] = gl.getUniformLocation(program, uniform); -484 }); -485 -486 if(that.width !== renderer.width || that.height !== renderer.height){ -487 that.width = renderer.width; -488 that.height = renderer.height; -489 renderer._uploadProjectionTransform(); -490 } -491 } -492 }, -493 uploadTexture:function(image){ -494 var gl = this.gl; -495 var renderer = this.renderer; -496 var texture = gl.createTexture(); -497 var u_Sampler = renderer.u_Sampler; -498 -499 gl.activeTexture(gl.TEXTURE0); -500 gl.bindTexture(gl.TEXTURE_2D, texture); -501 -502 // gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1); -503 gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1); -504 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image); +474 Shader.prototype = { +475 active:function(){ +476 var that = this; +477 var renderer = that.renderer; +478 var gl = that.gl; +479 var program = that.program; +480 +481 if(program && gl){ +482 renderer.activeShader = that; +483 gl.useProgram(program); +484 that.attributes.forEach(function(attribute){ +485 renderer[attribute] = gl.getAttribLocation(program, attribute); +486 gl.enableVertexAttribArray(renderer[attribute]); +487 }); +488 +489 that.uniforms.forEach(function(uniform){ +490 renderer[uniform] = gl.getUniformLocation(program, uniform); +491 }); +492 +493 if(that.width !== renderer.width || that.height !== renderer.height){ +494 that.width = renderer.width; +495 that.height = renderer.height; +496 renderer._uploadProjectionTransform(); +497 } +498 } +499 }, +500 uploadTexture:function(image){ +501 var gl = this.gl; +502 var renderer = this.renderer; +503 var texture = gl.createTexture(); +504 var u_Sampler = renderer.u_Sampler; 505 -506 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); -507 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); -508 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); -509 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); -510 gl.uniform1i(u_Sampler, 0); -511 gl.bindTexture(gl.TEXTURE_2D, null); +506 gl.activeTexture(gl.TEXTURE0); +507 gl.bindTexture(gl.TEXTURE_2D, texture); +508 +509 // gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1); +510 gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1); +511 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image); 512 -513 this.renderer._cacheTexture[image.src] = texture; -514 return texture; -515 }, -516 _createProgram:function(gl, vshader, fshader){ -517 var vertexShader = this._createShader(gl, gl.VERTEX_SHADER, vshader); -518 var fragmentShader = this._createShader(gl, gl.FRAGMENT_SHADER, fshader); -519 if (!vertexShader || !fragmentShader) { -520 return null; -521 } -522 -523 var program = gl.createProgram(); -524 if (program) { -525 gl.attachShader(program, vertexShader); -526 gl.attachShader(program, fragmentShader); -527 -528 gl.linkProgram(program); +513 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); +514 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); +515 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); +516 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); +517 gl.uniform1i(u_Sampler, 0); +518 gl.bindTexture(gl.TEXTURE_2D, null); +519 +520 this.renderer._cacheTexture[image.src] = texture; +521 return texture; +522 }, +523 _createProgram:function(gl, vshader, fshader){ +524 var vertexShader = this._createShader(gl, gl.VERTEX_SHADER, vshader); +525 var fragmentShader = this._createShader(gl, gl.FRAGMENT_SHADER, fshader); +526 if (!vertexShader || !fragmentShader) { +527 return null; +528 } 529 -530 gl.deleteShader(fragmentShader); -531 gl.deleteShader(vertexShader); -532 var linked = gl.getProgramParameter(program, gl.LINK_STATUS); -533 if (!linked) { -534 var error = gl.getProgramInfoLog(program); -535 console.log('Failed to link program: ' + error); -536 gl.deleteProgram(program); -537 return null; -538 } -539 } -540 return program; -541 }, -542 _createShader:function(gl, type, source){ -543 var shader = gl.createShader(type); -544 if(shader){ -545 gl.shaderSource(shader, source); -546 gl.compileShader(shader); -547 -548 var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); -549 if (!compiled) { -550 var error = gl.getShaderInfoLog(shader); -551 console.log('Failed to compile shader: ' + error); -552 gl.deleteShader(shader); -553 return null; -554 } -555 } -556 return shader; -557 } -558 }; \ No newline at end of file +530 var program = gl.createProgram(); +531 if (program) { +532 gl.attachShader(program, vertexShader); +533 gl.attachShader(program, fragmentShader); +534 +535 gl.linkProgram(program); +536 +537 gl.deleteShader(fragmentShader); +538 gl.deleteShader(vertexShader); +539 var linked = gl.getProgramParameter(program, gl.LINK_STATUS); +540 if (!linked) { +541 var error = gl.getProgramInfoLog(program); +542 console.log('Failed to link program: ' + error); +543 gl.deleteProgram(program); +544 return null; +545 } +546 } +547 return program; +548 }, +549 _createShader:function(gl, type, source){ +550 var shader = gl.createShader(type); +551 if(shader){ +552 gl.shaderSource(shader, source); +553 gl.compileShader(shader); +554 +555 var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); +556 if (!compiled) { +557 var error = gl.getShaderInfoLog(shader); +558 console.log('Failed to compile shader: ' + error); +559 gl.deleteShader(shader); +560 return null; +561 } +562 } +563 return shader; +564 } +565 }; \ No newline at end of file diff --git a/docs/api-zh/symbols/src/docs_api-zh_code_view_View.js.html b/docs/api-zh/symbols/src/docs_api-zh_code_view_View.js.html index fe40472a..5f9e4d65 100644 --- a/docs/api-zh/symbols/src/docs_api-zh_code_view_View.js.html +++ b/docs/api-zh/symbols/src/docs_api-zh_code_view_View.js.html @@ -36,435 +36,444 @@ 29 * @property {Number} pivotY 可视对象的中心点的y轴坐标。默认值为0。 30 * @property {Number} scaleX 可视对象在x轴上的缩放比例。默认为不缩放,即1。 31 * @property {Number} scaleY 可视对象在y轴上的缩放比例。默认为不缩放,即1。 - 32 * @property {Boolean} pointerEnabled 可视对象是否接受交互事件。默认为接受交互事件,即true。 - 33 * @property {Object} background 可视对象的背景样式。可以是CSS颜色值、canvas的gradient或pattern填充。 - 34 * @property {Graphics} mask 可视对象的遮罩图形。 - 35 * @property {Number} tint 可视对象的附加颜色,默认0xFFFFFF,只支持WebGL模式。 - 36 * @property {String|Function} align 可视对象相对于父容器的对齐方式。取值可查看Hilo.align枚举对象。 - 37 * @property {Container} parent 可视对象的父容器。只读属性。 - 38 * @property {Number} depth 可视对象的深度,也即z轴的序号。只读属性。 - 39 * @property {Drawable} drawable 可视对象的可绘制对象。供高级开发使用。 - 40 * @property {Array} boundsArea 可视对象的区域顶点数组。格式为:[{x:10, y:10}, {x:20, y:20}]。 - 41 */ - 42 var View = (function(){ - 43 - 44 return Class.create(/** @lends View.prototype */{ - 45 Mixes: EventMixin, - 46 constructor: function(properties){ - 47 properties = properties || {}; - 48 this.id = this.id || properties.id || Hilo.getUid("View"); - 49 util.copy(this, properties, true); - 50 }, - 51 - 52 tint:0xffffff, - 53 id: null, - 54 x: 0, - 55 y: 0, - 56 width: 0, - 57 height: 0, - 58 alpha: 1, - 59 rotation: 0, - 60 visible: true, - 61 pivotX: 0, - 62 pivotY: 0, - 63 scaleX: 1, - 64 scaleY: 1, - 65 pointerEnabled: true, - 66 background: null, - 67 mask: null, - 68 align: null, - 69 drawable: null, - 70 boundsArea: null, - 71 parent: null, - 72 depth: -1, - 73 blendMode:'source-over', - 74 - 75 /** - 76 * 返回可视对象的舞台引用。若对象没有被添加到舞台,则返回null。 - 77 * @returns {Stage} 可视对象的舞台引用。 - 78 */ - 79 getStage: function(){ - 80 var obj = this, parent; - 81 while(parent = obj.parent) obj = parent; - 82 //NOTE: don't use `instanceof` to prevent circular module requirement. - 83 //But it's not a very reliable way to check it's a stage instance. - 84 if(obj.canvas) return obj; - 85 return null; - 86 }, - 87 - 88 /** - 89 * 返回可视对象缩放后的宽度。 - 90 * @returns {Number} 可视对象缩放后的宽度。 - 91 */ - 92 getScaledWidth: function(){ - 93 return this.width * this.scaleX; - 94 }, - 95 - 96 /** - 97 * 返回可视对象缩放后的高度。 - 98 * @returns {Number} 可视对象缩放后的高度。 - 99 */ -100 getScaledHeight: function(){ -101 return this.height * this.scaleY; -102 }, -103 -104 /** -105 * 添加此对象到父容器。 -106 * @param {Container} container 一个容器。 -107 * @param {Uint} index 要添加到索引位置。 -108 * @returns {View} 可视对象本身。 -109 */ -110 addTo: function(container, index){ -111 if(typeof index === 'number') container.addChildAt(this, index); -112 else container.addChild(this); -113 return this; -114 }, -115 -116 /** -117 * 从父容器里删除此对象。 -118 * @returns {View} 可视对象本身。 -119 */ -120 removeFromParent: function(){ -121 var parent = this.parent; -122 if(parent) parent.removeChild(this); -123 return this; -124 }, -125 -126 /** -127 * 获取可视对象在舞台全局坐标系内的外接矩形以及所有顶点坐标。 -128 * @returns {Array} 可视对象的顶点坐标数组vertexs。另vertexs还包含属性: -129 * <ul> -130 * <li><b>x</b> - 可视对象的外接矩形x轴坐标。</li> -131 * <li><b>y</b> - 可视对象的外接矩形y轴坐标。</li> -132 * <li><b>width</b> - 可视对象的外接矩形的宽度。</li> -133 * <li><b>height</b> - 可视对象的外接矩形的高度。</li> -134 * </ul> -135 */ -136 getBounds: function(){ -137 var w = this.width, h = this.height, -138 mtx = this.getConcatenatedMatrix(), -139 poly = this.boundsArea || [{x:0, y:0}, {x:w, y:0}, {x:w, y:h}, {x:0, y:h}], -140 vertexs = [], point, x, y, minX, maxX, minY, maxY; -141 -142 for(var i = 0, len = poly.length; i < len; i++){ -143 point = mtx.transformPoint(poly[i], true, true); -144 x = point.x; -145 y = point.y; -146 -147 if(i == 0){ -148 minX = maxX = x; -149 minY = maxY = y; -150 }else{ -151 if(minX > x) minX = x; -152 else if(maxX < x) maxX = x; -153 if(minY > y) minY = y; -154 else if(maxY < y) maxY = y; -155 } -156 vertexs[i] = point; -157 } -158 -159 vertexs.x = minX; -160 vertexs.y = minY; -161 vertexs.width = maxX - minX; -162 vertexs.height = maxY - minY; -163 return vertexs; -164 }, -165 -166 /** -167 * 获取可视对象相对于其某个祖先(默认为最上层容器)的连接矩阵。 -168 * @param {View} ancestor 可视对象的相对的祖先容器。 -169 * @private -170 */ -171 getConcatenatedMatrix: function(ancestor){ -172 var mtx = new Matrix(1, 0, 0, 1, 0, 0); -173 -174 for(var o = this; o != ancestor && o.parent; o = o.parent){ -175 var cos = 1, sin = 0, -176 rotation = o.rotation % 360, -177 pivotX = o.pivotX, pivotY = o.pivotY, -178 scaleX = o.scaleX, scaleY = o.scaleY; -179 -180 if(rotation){ -181 var r = rotation * Math.PI / 180; -182 cos = Math.cos(r); -183 sin = Math.sin(r); -184 } -185 -186 if(pivotX != 0) mtx.tx -= pivotX; -187 if(pivotY != 0) mtx.ty -= pivotY; -188 -189 var pos = o.getAlignPosition(); -190 mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); -191 } -192 return mtx; -193 }, -194 -195 getAlignPosition: function(){ -196 var parent = this.parent; -197 var align = this.align; -198 var x = this.x; -199 var y = this.y; -200 -201 if(parent && this.align){ -202 if(typeof align === 'function'){ -203 return this.align(); -204 } -205 -206 var w = this.width, h = this.height, -207 pw = parent.width, ph = parent.height; -208 switch(align){ -209 case 'TL': -210 x = 0; -211 y = 0; -212 break; -213 case 'T': -214 x = pw - w >> 1; -215 y = 0; -216 break; -217 case 'TR': -218 x = pw - w; -219 y = 0; -220 break; -221 case 'L': -222 x = 0; -223 y = ph - h >> 1; -224 break; -225 case 'C': -226 x = pw - w >> 1; -227 y = ph - h >> 1; -228 break; -229 case 'R': -230 x = pw - w; -231 y = ph - h >> 1; -232 break; -233 case 'BL': -234 x = 0; -235 y = ph - h; -236 break; -237 case 'B': -238 x = pw - w >> 1; -239 y = ph - h; -240 break; -241 case 'BR': -242 x = pw - w; -243 y = ph - h; -244 break; -245 } -246 } -247 -248 return { -249 x:x, -250 y:y -251 }; -252 }, -253 -254 /** -255 * 检测由x和y参数指定的点是否在其外接矩形之内。 -256 * @param {Number} x 要检测的点的x轴坐标。 -257 * @param {Number} y 要检测的点的y轴坐标。 -258 * @param {Boolean} usePolyCollision 是否使用多边形碰撞检测。默认为false。 -259 * @returns {Boolean} 点是否在可视对象之内。 -260 */ -261 hitTestPoint: function(x, y, usePolyCollision){ -262 var bound = this.getBounds(), -263 hit = x >= bound.x && x <= bound.x + bound.width && -264 y >= bound.y && y <= bound.y + bound.height; -265 -266 if(hit && usePolyCollision){ -267 hit = pointInPolygon(x, y, bound); -268 } -269 return hit; -270 }, -271 -272 /** -273 * 检测object参数指定的对象是否与其相交。 -274 * @param {View} object 要检测的可视对象。 -275 * @param {Boolean} usePolyCollision 是否使用多边形碰撞检测。默认为false。 -276 */ -277 hitTestObject: function(object, usePolyCollision){ -278 var b1 = this.getBounds(), -279 b2 = object.getBounds(), -280 hit = b1.x <= b2.x + b2.width && b2.x <= b1.x + b1.width && -281 b1.y <= b2.y + b2.height && b2.y <= b1.y + b1.height; -282 -283 if(hit && usePolyCollision){ -284 hit = polygonCollision(b1, b2); -285 } -286 return !!hit; -287 }, -288 -289 /** -290 * 可视对象的基本渲染实现,用于框架内部或高级开发使用。通常应该重写render方法。 -291 * @param {Renderer} renderer 渲染器。 -292 * @param {Number} delta 渲染时时间偏移量。 -293 * @protected -294 */ -295 _render: function(renderer, delta){ -296 if((!this.onUpdate || this.onUpdate(delta) !== false) && renderer.startDraw(this)){ -297 renderer.transform(this); -298 this.render(renderer, delta); -299 renderer.endDraw(this); -300 } -301 }, -302 /** -303 * 冒泡鼠标事件 -304 */ -305 _fireMouseEvent:function(e){ -306 e.eventCurrentTarget = this; -307 this.fire(e); -308 -309 // 处理mouseover事件 mouseover不需要阻止冒泡 -310 // handle mouseover event, mouseover needn't stop propagation. -311 if(e.type == "mousemove"){ -312 if(!this.__mouseOver){ -313 this.__mouseOver = true; -314 var overEvent = util.copy({}, e); -315 overEvent.type = "mouseover"; -316 this.fire(overEvent); -317 } -318 } -319 else if(e.type == "mouseout"){ -320 this.__mouseOver = false; -321 } -322 -323 // 向上冒泡 -324 // handle event propagation -325 var parent = this.parent; -326 if(!e._stopped && !e._stopPropagationed && parent){ -327 if(e.type == "mouseout" || e.type == "touchout"){ -328 if(!parent.hitTestPoint(e.stageX, e.stageY, true)){ -329 parent._fireMouseEvent(e); -330 } -331 } -332 else{ -333 parent._fireMouseEvent(e); -334 } -335 } -336 }, -337 -338 /** -339 * 更新可视对象,此方法会在可视对象渲染之前调用。此函数可以返回一个Boolean值。若返回false,则此对象不会渲染。默认值为null。 -340 * 限制:如果在此函数中改变了可视对象在其父容器中的层级,当前渲染帧并不会正确渲染,而是在下一渲染帧。可在其父容器的onUpdate方法中来实现。 -341 * @type Function -342 * @default null -343 */ -344 onUpdate: null, -345 -346 /** -347 * 可视对象的具体渲染逻辑。子类可通过覆盖此方法实现自己的渲染。 -348 * @param {Renderer} renderer 渲染器。 -349 * @param {Number} delta 渲染时时间偏移量。 -350 */ -351 render: function(renderer, delta){ -352 renderer.draw(this); -353 }, + 32 * @property {Matrix} transform 可视对象的transform属性,如果设置将忽略x, y, scaleX, scaleY, rotation. pivotX, pivotY 属性。默认null。 + 33 * @property {Boolean} pointerEnabled 可视对象是否接受交互事件。默认为接受交互事件,即true。 + 34 * @property {Object} background 可视对象的背景样式。可以是CSS颜色值、canvas的gradient或pattern填充。 + 35 * @property {Graphics} mask 可视对象的遮罩图形。 + 36 * @property {Number} tint 可视对象的附加颜色,默认0xFFFFFF,只支持WebGL模式。 + 37 * @property {String|Function} align 可视对象相对于父容器的对齐方式。取值可查看Hilo.align枚举对象。 + 38 * @property {Container} parent 可视对象的父容器。只读属性。 + 39 * @property {Number} depth 可视对象的深度,也即z轴的序号。只读属性。 + 40 * @property {Drawable} drawable 可视对象的可绘制对象。供高级开发使用。 + 41 * @property {Array} boundsArea 可视对象的区域顶点数组。格式为:[{x:10, y:10}, {x:20, y:20}]。 + 42 */ + 43 var View = (function(){ + 44 + 45 return Class.create(/** @lends View.prototype */{ + 46 Mixes: EventMixin, + 47 constructor: function(properties){ + 48 properties = properties || {}; + 49 this.id = this.id || properties.id || Hilo.getUid("View"); + 50 util.copy(this, properties, true); + 51 }, + 52 + 53 tint:0xffffff, + 54 id: null, + 55 x: 0, + 56 y: 0, + 57 width: 0, + 58 height: 0, + 59 alpha: 1, + 60 rotation: 0, + 61 visible: true, + 62 pivotX: 0, + 63 pivotY: 0, + 64 scaleX: 1, + 65 scaleY: 1, + 66 pointerEnabled: true, + 67 background: null, + 68 mask: null, + 69 align: null, + 70 drawable: null, + 71 boundsArea: null, + 72 parent: null, + 73 depth: -1, + 74 transform: null, + 75 blendMode:'source-over', + 76 + 77 /** + 78 * 返回可视对象的舞台引用。若对象没有被添加到舞台,则返回null。 + 79 * @returns {Stage} 可视对象的舞台引用。 + 80 */ + 81 getStage: function(){ + 82 var obj = this, parent; + 83 while(parent = obj.parent) obj = parent; + 84 //NOTE: don't use `instanceof` to prevent circular module requirement. + 85 //But it's not a very reliable way to check it's a stage instance. + 86 if(obj.canvas) return obj; + 87 return null; + 88 }, + 89 + 90 /** + 91 * 返回可视对象缩放后的宽度。 + 92 * @returns {Number} 可视对象缩放后的宽度。 + 93 */ + 94 getScaledWidth: function(){ + 95 return this.width * this.scaleX; + 96 }, + 97 + 98 /** + 99 * 返回可视对象缩放后的高度。 +100 * @returns {Number} 可视对象缩放后的高度。 +101 */ +102 getScaledHeight: function(){ +103 return this.height * this.scaleY; +104 }, +105 +106 /** +107 * 添加此对象到父容器。 +108 * @param {Container} container 一个容器。 +109 * @param {Uint} index 要添加到索引位置。 +110 * @returns {View} 可视对象本身。 +111 */ +112 addTo: function(container, index){ +113 if(typeof index === 'number') container.addChildAt(this, index); +114 else container.addChild(this); +115 return this; +116 }, +117 +118 /** +119 * 从父容器里删除此对象。 +120 * @returns {View} 可视对象本身。 +121 */ +122 removeFromParent: function(){ +123 var parent = this.parent; +124 if(parent) parent.removeChild(this); +125 return this; +126 }, +127 +128 /** +129 * 获取可视对象在舞台全局坐标系内的外接矩形以及所有顶点坐标。 +130 * @returns {Array} 可视对象的顶点坐标数组vertexs。另vertexs还包含属性: +131 * <ul> +132 * <li><b>x</b> - 可视对象的外接矩形x轴坐标。</li> +133 * <li><b>y</b> - 可视对象的外接矩形y轴坐标。</li> +134 * <li><b>width</b> - 可视对象的外接矩形的宽度。</li> +135 * <li><b>height</b> - 可视对象的外接矩形的高度。</li> +136 * </ul> +137 */ +138 getBounds: function(){ +139 var w = this.width, h = this.height, +140 mtx = this.getConcatenatedMatrix(), +141 poly = this.boundsArea || [{x:0, y:0}, {x:w, y:0}, {x:w, y:h}, {x:0, y:h}], +142 vertexs = [], point, x, y, minX, maxX, minY, maxY; +143 +144 for(var i = 0, len = poly.length; i < len; i++){ +145 point = mtx.transformPoint(poly[i], true, true); +146 x = point.x; +147 y = point.y; +148 +149 if(i == 0){ +150 minX = maxX = x; +151 minY = maxY = y; +152 }else{ +153 if(minX > x) minX = x; +154 else if(maxX < x) maxX = x; +155 if(minY > y) minY = y; +156 else if(maxY < y) maxY = y; +157 } +158 vertexs[i] = point; +159 } +160 +161 vertexs.x = minX; +162 vertexs.y = minY; +163 vertexs.width = maxX - minX; +164 vertexs.height = maxY - minY; +165 return vertexs; +166 }, +167 +168 /** +169 * 获取可视对象相对于其某个祖先(默认为最上层容器)的连接矩阵。 +170 * @param {View} ancestor 可视对象的相对的祖先容器。 +171 * @private +172 */ +173 getConcatenatedMatrix: function(ancestor){ +174 var mtx = new Matrix(1, 0, 0, 1, 0, 0); +175 +176 for(var o = this; o != ancestor && o.parent; o = o.parent){ +177 var cos = 1, sin = 0, +178 rotation = o.rotation % 360, +179 pivotX = o.pivotX, pivotY = o.pivotY, +180 scaleX = o.scaleX, scaleY = o.scaleY, +181 transform = o.transform; +182 +183 if(transform) { +184 mtx.concat(transform); +185 } +186 else{ +187 if(rotation){ +188 var r = rotation * Math.PI / 180; +189 cos = Math.cos(r); +190 sin = Math.sin(r); +191 } +192 +193 if(pivotX != 0) mtx.tx -= pivotX; +194 if(pivotY != 0) mtx.ty -= pivotY; +195 +196 var pos = o.getAlignPosition(); +197 mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, pos.x, pos.y); +198 } +199 +200 } +201 return mtx; +202 }, +203 +204 getAlignPosition: function(){ +205 var parent = this.parent; +206 var align = this.align; +207 var x = this.x; +208 var y = this.y; +209 +210 if(parent && this.align){ +211 if(typeof align === 'function'){ +212 return this.align(); +213 } +214 +215 var w = this.width, h = this.height, +216 pw = parent.width, ph = parent.height; +217 switch(align){ +218 case 'TL': +219 x = 0; +220 y = 0; +221 break; +222 case 'T': +223 x = pw - w >> 1; +224 y = 0; +225 break; +226 case 'TR': +227 x = pw - w; +228 y = 0; +229 break; +230 case 'L': +231 x = 0; +232 y = ph - h >> 1; +233 break; +234 case 'C': +235 x = pw - w >> 1; +236 y = ph - h >> 1; +237 break; +238 case 'R': +239 x = pw - w; +240 y = ph - h >> 1; +241 break; +242 case 'BL': +243 x = 0; +244 y = ph - h; +245 break; +246 case 'B': +247 x = pw - w >> 1; +248 y = ph - h; +249 break; +250 case 'BR': +251 x = pw - w; +252 y = ph - h; +253 break; +254 } +255 } +256 +257 return { +258 x:x, +259 y:y +260 }; +261 }, +262 +263 /** +264 * 检测由x和y参数指定的点是否在其外接矩形之内。 +265 * @param {Number} x 要检测的点的x轴坐标。 +266 * @param {Number} y 要检测的点的y轴坐标。 +267 * @param {Boolean} usePolyCollision 是否使用多边形碰撞检测。默认为false。 +268 * @returns {Boolean} 点是否在可视对象之内。 +269 */ +270 hitTestPoint: function(x, y, usePolyCollision){ +271 var bound = this.getBounds(), +272 hit = x >= bound.x && x <= bound.x + bound.width && +273 y >= bound.y && y <= bound.y + bound.height; +274 +275 if(hit && usePolyCollision){ +276 hit = pointInPolygon(x, y, bound); +277 } +278 return hit; +279 }, +280 +281 /** +282 * 检测object参数指定的对象是否与其相交。 +283 * @param {View} object 要检测的可视对象。 +284 * @param {Boolean} usePolyCollision 是否使用多边形碰撞检测。默认为false。 +285 */ +286 hitTestObject: function(object, usePolyCollision){ +287 var b1 = this.getBounds(), +288 b2 = object.getBounds(), +289 hit = b1.x <= b2.x + b2.width && b2.x <= b1.x + b1.width && +290 b1.y <= b2.y + b2.height && b2.y <= b1.y + b1.height; +291 +292 if(hit && usePolyCollision){ +293 hit = polygonCollision(b1, b2); +294 } +295 return !!hit; +296 }, +297 +298 /** +299 * 可视对象的基本渲染实现,用于框架内部或高级开发使用。通常应该重写render方法。 +300 * @param {Renderer} renderer 渲染器。 +301 * @param {Number} delta 渲染时时间偏移量。 +302 * @protected +303 */ +304 _render: function(renderer, delta){ +305 if((!this.onUpdate || this.onUpdate(delta) !== false) && renderer.startDraw(this)){ +306 renderer.transform(this); +307 this.render(renderer, delta); +308 renderer.endDraw(this); +309 } +310 }, +311 /** +312 * 冒泡鼠标事件 +313 */ +314 _fireMouseEvent:function(e){ +315 e.eventCurrentTarget = this; +316 this.fire(e); +317 +318 // 处理mouseover事件 mouseover不需要阻止冒泡 +319 // handle mouseover event, mouseover needn't stop propagation. +320 if(e.type == "mousemove"){ +321 if(!this.__mouseOver){ +322 this.__mouseOver = true; +323 var overEvent = util.copy({}, e); +324 overEvent.type = "mouseover"; +325 this.fire(overEvent); +326 } +327 } +328 else if(e.type == "mouseout"){ +329 this.__mouseOver = false; +330 } +331 +332 // 向上冒泡 +333 // handle event propagation +334 var parent = this.parent; +335 if(!e._stopped && !e._stopPropagationed && parent){ +336 if(e.type == "mouseout" || e.type == "touchout"){ +337 if(!parent.hitTestPoint(e.stageX, e.stageY, true)){ +338 parent._fireMouseEvent(e); +339 } +340 } +341 else{ +342 parent._fireMouseEvent(e); +343 } +344 } +345 }, +346 +347 /** +348 * 更新可视对象,此方法会在可视对象渲染之前调用。此函数可以返回一个Boolean值。若返回false,则此对象不会渲染。默认值为null。 +349 * 限制:如果在此函数中改变了可视对象在其父容器中的层级,当前渲染帧并不会正确渲染,而是在下一渲染帧。可在其父容器的onUpdate方法中来实现。 +350 * @type Function +351 * @default null +352 */ +353 onUpdate: null, 354 355 /** -356 * 返回可视对象的字符串表示。 -357 * @returns {String} 可视对象的字符串表示。 -358 */ -359 toString: function(){ -360 return Hilo.viewToString(this); -361 } -362 }); +356 * 可视对象的具体渲染逻辑。子类可通过覆盖此方法实现自己的渲染。 +357 * @param {Renderer} renderer 渲染器。 +358 * @param {Number} delta 渲染时时间偏移量。 +359 */ +360 render: function(renderer, delta){ +361 renderer.draw(this); +362 }, 363 -364 /** -365 * @private -366 */ -367 function pointInPolygon(x, y, poly){ -368 var cross = 0, onBorder = false, minX, maxX, minY, maxY; -369 -370 for(var i = 0, len = poly.length; i < len; i++){ -371 var p1 = poly[i], p2 = poly[(i+1)%len]; +364 /** +365 * 返回可视对象的字符串表示。 +366 * @returns {String} 可视对象的字符串表示。 +367 */ +368 toString: function(){ +369 return Hilo.viewToString(this); +370 } +371 }); 372 -373 if(p1.y == p2.y && y == p1.y){ -374 p1.x > p2.x ? (minX = p2.x, maxX = p1.x) : (minX = p1.x, maxX = p2.x); -375 if(x >= minX && x <= maxX){ -376 onBorder = true; -377 continue; -378 } -379 } -380 -381 p1.y > p2.y ? (minY = p2.y, maxY = p1.y) : (minY = p1.y, maxY = p2.y); -382 if(y < minY || y > maxY) continue; -383 -384 var nx = (y - p1.y)*(p2.x - p1.x) / (p2.y - p1.y) + p1.x; -385 if(nx > x) cross++; -386 else if(nx == x) onBorder = true; -387 -388 //当射线和多边形相交 -389 if(p1.x > x && p1.y == y){ -390 var p0 = poly[(len+i-1)%len]; -391 //当交点的两边在射线两旁 -392 if(p0.y < y && p2.y > y || p0.y > y && p2.y < y){ -393 cross ++; -394 } -395 } -396 } -397 -398 return onBorder || (cross % 2 == 1); -399 } -400 -401 /** -402 * @private -403 */ -404 function polygonCollision(poly1, poly2){ -405 var result = doSATCheck(poly1, poly2, {overlap:-Infinity, normal:{x:0, y:0}}); -406 if(result) return doSATCheck(poly2, poly1, result); -407 return false; +373 /** +374 * @private +375 */ +376 function pointInPolygon(x, y, poly){ +377 var cross = 0, onBorder = false, minX, maxX, minY, maxY; +378 +379 for(var i = 0, len = poly.length; i < len; i++){ +380 var p1 = poly[i], p2 = poly[(i+1)%len]; +381 +382 if(p1.y == p2.y && y == p1.y){ +383 p1.x > p2.x ? (minX = p2.x, maxX = p1.x) : (minX = p1.x, maxX = p2.x); +384 if(x >= minX && x <= maxX){ +385 onBorder = true; +386 continue; +387 } +388 } +389 +390 p1.y > p2.y ? (minY = p2.y, maxY = p1.y) : (minY = p1.y, maxY = p2.y); +391 if(y < minY || y > maxY) continue; +392 +393 var nx = (y - p1.y)*(p2.x - p1.x) / (p2.y - p1.y) + p1.x; +394 if(nx > x) cross++; +395 else if(nx == x) onBorder = true; +396 +397 //当射线和多边形相交 +398 if(p1.x > x && p1.y == y){ +399 var p0 = poly[(len+i-1)%len]; +400 //当交点的两边在射线两旁 +401 if(p0.y < y && p2.y > y || p0.y > y && p2.y < y){ +402 cross ++; +403 } +404 } +405 } +406 +407 return onBorder || (cross % 2 == 1); 408 } 409 410 /** 411 * @private 412 */ -413 function doSATCheck(poly1, poly2, result){ -414 var len1 = poly1.length, len2 = poly2.length, -415 currentPoint, nextPoint, distance, -416 min1, max1, min2, max2, dot, overlap, normal = {x:0, y:0}; -417 -418 for(var i = 0; i < len1; i++){ -419 currentPoint = poly1[i]; -420 nextPoint = poly1[(i < len1-1 ? i+1 : 0)]; -421 -422 normal.x = currentPoint.y - nextPoint.y; -423 normal.y = nextPoint.x - currentPoint.x; -424 -425 distance = Math.sqrt(normal.x * normal.x + normal.y * normal.y); -426 normal.x /= distance; -427 normal.y /= distance; -428 -429 min1 = max1 = poly1[0].x * normal.x + poly1[0].y * normal.y; -430 for(var j = 1; j < len1; j++){ -431 dot = poly1[j].x * normal.x + poly1[j].y * normal.y; -432 if(dot > max1) max1 = dot; -433 else if(dot < min1) min1 = dot; -434 } -435 -436 min2 = max2 = poly2[0].x * normal.x + poly2[0].y * normal.y; -437 for(j = 1; j < len2; j++){ -438 dot = poly2[j].x * normal.x + poly2[j].y * normal.y; -439 if(dot > max2) max2 = dot; -440 else if(dot < min2) min2 = dot; -441 } -442 -443 if(min1 < min2){ -444 overlap = min2 - max1; -445 normal.x = -normal.x; -446 normal.y = -normal.y; -447 }else{ -448 overlap = min1 - max2; -449 } -450 -451 if(overlap >= 0){ -452 return false; -453 }else if(overlap > result.overlap){ -454 result.overlap = overlap; -455 result.normal.x = normal.x; -456 result.normal.y = normal.y; -457 } -458 } +413 function polygonCollision(poly1, poly2){ +414 var result = doSATCheck(poly1, poly2, {overlap:-Infinity, normal:{x:0, y:0}}); +415 if(result) return doSATCheck(poly2, poly1, result); +416 return false; +417 } +418 +419 /** +420 * @private +421 */ +422 function doSATCheck(poly1, poly2, result){ +423 var len1 = poly1.length, len2 = poly2.length, +424 currentPoint, nextPoint, distance, +425 min1, max1, min2, max2, dot, overlap, normal = {x:0, y:0}; +426 +427 for(var i = 0; i < len1; i++){ +428 currentPoint = poly1[i]; +429 nextPoint = poly1[(i < len1-1 ? i+1 : 0)]; +430 +431 normal.x = currentPoint.y - nextPoint.y; +432 normal.y = nextPoint.x - currentPoint.x; +433 +434 distance = Math.sqrt(normal.x * normal.x + normal.y * normal.y); +435 normal.x /= distance; +436 normal.y /= distance; +437 +438 min1 = max1 = poly1[0].x * normal.x + poly1[0].y * normal.y; +439 for(var j = 1; j < len1; j++){ +440 dot = poly1[j].x * normal.x + poly1[j].y * normal.y; +441 if(dot > max1) max1 = dot; +442 else if(dot < min1) min1 = dot; +443 } +444 +445 min2 = max2 = poly2[0].x * normal.x + poly2[0].y * normal.y; +446 for(j = 1; j < len2; j++){ +447 dot = poly2[j].x * normal.x + poly2[j].y * normal.y; +448 if(dot > max2) max2 = dot; +449 else if(dot < min2) min2 = dot; +450 } +451 +452 if(min1 < min2){ +453 overlap = min2 - max1; +454 normal.x = -normal.x; +455 normal.y = -normal.y; +456 }else{ +457 overlap = min1 - max2; +458 } 459 -460 return result; -461 } -462 -463 })(); \ No newline at end of file +460 if(overlap >= 0){ +461 return false; +462 }else if(overlap > result.overlap){ +463 result.overlap = overlap; +464 result.normal.x = normal.x; +465 result.normal.y = normal.y; +466 } +467 } +468 +469 return result; +470 } +471 +472 })(); \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 8c5bda73..bb25d404 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -282,4 +282,4 @@ gulp.task('test', ['jshint'], function () { })); }); -gulp.task('default', ['format', 'flash']); +gulp.task('default', ['format', 'flash', 'extensions']); diff --git a/package.json b/package.json index e40e0cd3..67481a1c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Hilo", - "version": "1.1.13", + "version": "1.2.0", "description": "Hilo Game Framework", "author": "Hilo Dev Team", "license": "MIT",