From 29eeb71071382724b002b34594a48135964327c5 Mon Sep 17 00:00:00 2001 From: 06wj <06wj@163.com> Date: Wed, 18 May 2016 14:33:55 +0800 Subject: [PATCH] docs: update README --- README.md | 8 +- README_ZH.md | 6 +- docs/api/index.html | 276 -- docs/api/symbols/Bitmap.html | 1059 ------- docs/api/symbols/BitmapText.html | 1735 ----------- docs/api/symbols/Button.html | 1556 ---------- docs/api/symbols/CacheMixin.html | 438 --- docs/api/symbols/Camera.html | 718 ----- docs/api/symbols/Camera3d.html | 1094 ------- docs/api/symbols/CanvasRenderer.html | 631 ---- docs/api/symbols/Class.html | 444 --- docs/api/symbols/Container.html | 1933 ------------- docs/api/symbols/DOMElement.html | 1004 ------- docs/api/symbols/DOMRenderer.html | 586 ---- docs/api/symbols/Drawable.html | 564 ---- docs/api/symbols/Ease.html | 728 ----- docs/api/symbols/EventMixin.html | 489 ---- docs/api/symbols/Graphics.html | 2561 ----------------- docs/api/symbols/HTMLAudio.html | 1025 ------- docs/api/symbols/Hilo.html | 915 ------ docs/api/symbols/LoadQueue.html | 785 ----- docs/api/symbols/Matrix.html | 750 ----- docs/api/symbols/ParticleSystem.html | 979 ------- docs/api/symbols/Renderer.html | 884 ------ docs/api/symbols/Sprite.html | 1718 ----------- docs/api/symbols/Stage.html | 1763 ------------ docs/api/symbols/Text.html | 1496 ---------- docs/api/symbols/TextureAtlas.html | 556 ---- docs/api/symbols/Ticker.html | 636 ---- docs/api/symbols/Tween.html | 1681 ----------- docs/api/symbols/View.html | 1718 ----------- docs/api/symbols/WebAudio.html | 1102 ------- docs/api/symbols/WebGLRenderer.html | 754 ----- docs/api/symbols/WebSound.html | 460 --- docs/api/symbols/drag.html | 399 --- docs/api/symbols/src/src_core_Class.js.html | 177 -- docs/api/symbols/src/src_core_Hilo.js.html | 354 --- .../symbols/src/src_event_EventMixin.js.html | 143 - docs/api/symbols/src/src_game_Camera.js.html | 90 - .../api/symbols/src/src_game_Camera3d.js.html | 176 -- .../src/src_game_ParticleSystem.js.html | 293 -- docs/api/symbols/src/src_geom_Matrix.js.html | 165 -- .../src/src_loader_ImageLoader.js.html | 50 - .../symbols/src/src_loader_LoadQueue.js.html | 231 -- .../src/src_loader_ScriptLoader.js.html | 65 - .../symbols/src/src_media_HTMLAudio.js.html | 191 -- .../symbols/src/src_media_WebAudio.js.html | 276 -- .../symbols/src/src_media_WebSound.js.html | 93 - .../src/src_renderer_CanvasRenderer.js.html | 225 -- .../src/src_renderer_DOMRenderer.js.html | 180 -- .../symbols/src/src_renderer_Renderer.js.html | 84 - .../src/src_renderer_WebGLRenderer.js.html | 536 ---- docs/api/symbols/src/src_tween_Ease.js.html | 260 -- docs/api/symbols/src/src_tween_Tween.js.html | 415 --- .../symbols/src/src_util_TextureAtlas.js.html | 228 -- docs/api/symbols/src/src_util_Ticker.js.html | 145 - docs/api/symbols/src/src_util_drag.js.html | 109 - .../api/symbols/src/src_util_polyfill.js.html | 46 - docs/api/symbols/src/src_view_Bitmap.js.html | 68 - .../symbols/src/src_view_BitmapText.js.html | 176 -- docs/api/symbols/src/src_view_Button.js.html | 170 -- .../symbols/src/src_view_CacheMixin.js.html | 56 - .../symbols/src/src_view_Container.js.html | 352 --- .../symbols/src/src_view_DOMElement.js.html | 94 - .../api/symbols/src/src_view_Drawable.js.html | 75 - .../api/symbols/src/src_view_Graphics.js.html | 419 --- docs/api/symbols/src/src_view_Sprite.js.html | 257 -- docs/api/symbols/src/src_view_Stage.js.html | 255 -- docs/api/symbols/src/src_view_Text.js.html | 237 -- docs/api/symbols/src/src_view_View.js.html | 399 --- 70 files changed, 8 insertions(+), 40533 deletions(-) delete mode 100644 docs/api/index.html delete mode 100644 docs/api/symbols/Bitmap.html delete mode 100644 docs/api/symbols/BitmapText.html delete mode 100644 docs/api/symbols/Button.html delete mode 100644 docs/api/symbols/CacheMixin.html delete mode 100644 docs/api/symbols/Camera.html delete mode 100644 docs/api/symbols/Camera3d.html delete mode 100644 docs/api/symbols/CanvasRenderer.html delete mode 100644 docs/api/symbols/Class.html delete mode 100644 docs/api/symbols/Container.html delete mode 100644 docs/api/symbols/DOMElement.html delete mode 100644 docs/api/symbols/DOMRenderer.html delete mode 100644 docs/api/symbols/Drawable.html delete mode 100644 docs/api/symbols/Ease.html delete mode 100644 docs/api/symbols/EventMixin.html delete mode 100644 docs/api/symbols/Graphics.html delete mode 100644 docs/api/symbols/HTMLAudio.html delete mode 100644 docs/api/symbols/Hilo.html delete mode 100644 docs/api/symbols/LoadQueue.html delete mode 100644 docs/api/symbols/Matrix.html delete mode 100644 docs/api/symbols/ParticleSystem.html delete mode 100644 docs/api/symbols/Renderer.html delete mode 100644 docs/api/symbols/Sprite.html delete mode 100644 docs/api/symbols/Stage.html delete mode 100644 docs/api/symbols/Text.html delete mode 100644 docs/api/symbols/TextureAtlas.html delete mode 100644 docs/api/symbols/Ticker.html delete mode 100644 docs/api/symbols/Tween.html delete mode 100644 docs/api/symbols/View.html delete mode 100644 docs/api/symbols/WebAudio.html delete mode 100644 docs/api/symbols/WebGLRenderer.html delete mode 100644 docs/api/symbols/WebSound.html delete mode 100644 docs/api/symbols/drag.html delete mode 100644 docs/api/symbols/src/src_core_Class.js.html delete mode 100644 docs/api/symbols/src/src_core_Hilo.js.html delete mode 100644 docs/api/symbols/src/src_event_EventMixin.js.html delete mode 100644 docs/api/symbols/src/src_game_Camera.js.html delete mode 100644 docs/api/symbols/src/src_game_Camera3d.js.html delete mode 100644 docs/api/symbols/src/src_game_ParticleSystem.js.html delete mode 100644 docs/api/symbols/src/src_geom_Matrix.js.html delete mode 100644 docs/api/symbols/src/src_loader_ImageLoader.js.html delete mode 100644 docs/api/symbols/src/src_loader_LoadQueue.js.html delete mode 100644 docs/api/symbols/src/src_loader_ScriptLoader.js.html delete mode 100644 docs/api/symbols/src/src_media_HTMLAudio.js.html delete mode 100644 docs/api/symbols/src/src_media_WebAudio.js.html delete mode 100644 docs/api/symbols/src/src_media_WebSound.js.html delete mode 100644 docs/api/symbols/src/src_renderer_CanvasRenderer.js.html delete mode 100644 docs/api/symbols/src/src_renderer_DOMRenderer.js.html delete mode 100644 docs/api/symbols/src/src_renderer_Renderer.js.html delete mode 100644 docs/api/symbols/src/src_renderer_WebGLRenderer.js.html delete mode 100644 docs/api/symbols/src/src_tween_Ease.js.html delete mode 100644 docs/api/symbols/src/src_tween_Tween.js.html delete mode 100644 docs/api/symbols/src/src_util_TextureAtlas.js.html delete mode 100644 docs/api/symbols/src/src_util_Ticker.js.html delete mode 100644 docs/api/symbols/src/src_util_drag.js.html delete mode 100644 docs/api/symbols/src/src_util_polyfill.js.html delete mode 100644 docs/api/symbols/src/src_view_Bitmap.js.html delete mode 100644 docs/api/symbols/src/src_view_BitmapText.js.html delete mode 100644 docs/api/symbols/src/src_view_Button.js.html delete mode 100644 docs/api/symbols/src/src_view_CacheMixin.js.html delete mode 100644 docs/api/symbols/src/src_view_Container.js.html delete mode 100644 docs/api/symbols/src/src_view_DOMElement.js.html delete mode 100644 docs/api/symbols/src/src_view_Drawable.js.html delete mode 100644 docs/api/symbols/src/src_view_Graphics.js.html delete mode 100644 docs/api/symbols/src/src_view_Sprite.js.html delete mode 100644 docs/api/symbols/src/src_view_Stage.js.html delete mode 100644 docs/api/symbols/src/src_view_Text.js.html delete mode 100644 docs/api/symbols/src/src_view_View.js.html diff --git a/README.md b/README.md index f11b2221..5afc7f96 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ -Hilo - HTML5 Game Framework [![Build Status][travis-image]][travis-url] +Hilo - HTML5 Game Framework [![Build Status][travis-image]][travis-url] [![gitter.im][gitter-image]][gitter-url] =========================== - -[![Join the chat at https://gitter.im/hiloteam/Hilo](https://badges.gitter.im/hiloteam/Hilo.svg)](https://gitter.im/hiloteam/Hilo?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [中文版](./README_ZH.md) Hilo is a Cross-end HTML5 Game development solution developed by Alibaba Group. It could help developers build HTML5 games conveniently in minutes. @@ -36,7 +34,7 @@ Built by gulp: ### API Documentation -Get started by reading [docs/api/index.html](http://hiloteam.github.io/Hilo/docs/api-en/index.html) +Get started by reading [docs/api-en/index.html](http://hiloteam.github.io/Hilo/docs/api-en/index.html) ### API Samples * [Index.html](http://hiloteam.github.io/Hilo/examples/index.html) @@ -80,5 +78,7 @@ Get started by reading [docs/api/index.html](http://hiloteam.github.io/Hilo/docs [travis-image]: https://travis-ci.org/hiloteam/Hilo.svg?branch=master [travis-url]: https://travis-ci.org/hiloteam/Hilo +[gitter-image]: https://badges.gitter.im/hiloteam/Hilo.svg +[gitter-url]: https://gitter.im/hiloteam/Hilo?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge [example-image]: https://img.alicdn.com/tps/TB1vDlBLVXXXXcDXVXXXXXXXXXX-850-806.png [example-url]: http://hiloteam.github.io/examples/index.html \ No newline at end of file diff --git a/README_ZH.md b/README_ZH.md index 5114d5af..a3d22120 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -1,4 +1,4 @@ -Hilo - HTML5 互动游戏引擎 [![Build Status][travis-image]][travis-url] +Hilo - HTML5 互动游戏引擎 [![Build Status][travis-image]][travis-url] [![gitter.im][gitter-image]][gitter-url] =========================== [English Version](./README.md) @@ -34,7 +34,7 @@ Hilo 是阿里巴巴集团开发的一款HTML5跨终端游戏解决方案,ta ### API 文档 -参见 [docs/api/index.html](http://hiloteam.github.io/Hilo/docs/api-zh/index.html) +参见 [docs/api-zh/index.html](http://hiloteam.github.io/Hilo/docs/api-zh/index.html) ### API 样例 * [Index.html](http://hiloteam.github.io/Hilo/examples/index.html) @@ -78,5 +78,7 @@ Hilo 是阿里巴巴集团开发的一款HTML5跨终端游戏解决方案,ta [travis-image]: https://travis-ci.org/hiloteam/Hilo.svg?branch=master [travis-url]: https://travis-ci.org/hiloteam/Hilo +[gitter-image]: https://badges.gitter.im/hiloteam/Hilo.svg +[gitter-url]: https://gitter.im/hiloteam/Hilo?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge [example-image]: https://img.alicdn.com/tps/TB1vDlBLVXXXXcDXVXXXXXXXXXX-850-806.png [example-url]: http://hiloteam.github.io/examples/index.html \ No newline at end of file diff --git a/docs/api/index.html b/docs/api/index.html deleted file mode 100644 index 463f821f..00000000 --- a/docs/api/index.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - - -Hilo API参考文档 - - - - - - - - -
-
- - -
- - -
-
- -
-
全部类概览(v1.0.0)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

说明

Class

Class是提供类的创建的辅助工具。

Hilo

Hilo的基础核心方法集合。

EventMixin

EventMixin是一个包含事件相关功能的mixin。可以通过 Class.mix(target, EventMixin) 来为target增加事件功能。

Camera

Camera类表示摄像机。

Camera3d

Camera3d 伪3D虚拟摄像机。

ParticleSystem

粒子系统

Matrix

Matrix类表示一个转换矩阵,它确定如何将点从一个坐标空间映射到另一个坐标空间。

LoadQueue

LoadQueue是一个队列下载工具。

HTMLAudio

HTMLAudio声音播放模块。此模块使用HTMLAudioElement播放音频。 -使用限制:iOS平台需用户事件触发才能播放,很多Android浏览器仅能同时播放一个音频。

WebAudio

WebAudio声音播放模块。它具有更好的声音播放和控制能力,适合在iOS6+平台使用。 -兼容情况:iOS6+、Chrome33+、Firefox28+支持,但Android浏览器均不支持。

WebSound

声音播放管理器。

CanvasRenderer

canvas画布渲染器。所有可视对象将渲染在canvas画布上。舞台Stage会根据参数canvas选择不同的渲染器,开发者无需直接使用此类。

DOMRenderer

DOM+CSS3渲染器。将可视对象以DOM元素方式渲染出来。舞台Stage会根据参数canvas选择不同的渲染器,开发者无需直接使用此类。

Renderer

渲染器抽象基类。

WebGLRenderer

webgl画布渲染器。所有可视对象将渲染在canvas画布上。

Ease

Ease类包含为Tween类提供各种缓动功能的函数。

Tween

Tween类提供缓动功能。

TextureAtlas

TextureAtlas纹理集是将许多小的纹理图片整合到一起的一张大图。这个类可根据一个纹理集数据读取纹理小图、精灵动画等。

Ticker

Ticker是一个定时器类。它可以按指定帧率重复运行,从而按计划执行代码。

drag

drag是一个包含拖拽功能的mixin。可以通过 Class.mix(view, drag)或Hilo.copy(view, drag)来为view增加拖拽功能。

Bitmap

Bitmap类表示位图图像类。

BitmapText

BitmapText类提供使用位图文本的功能。当前仅支持单行文本。

Button

Button类表示简单按钮类。它有弹起、经过、按下和不可用等四种状态。

CacheMixin

CacheMixin是一个包含cache功能的mixin。可以通过 Class.mix(target, CacheMixin) 来为target增加cache功能。

Container

Container是所有容器类的基类。每个Container都可以添加其他可视对象为子级。

DOMElement

DOMElement是dom元素的包装。

Drawable

Drawable是可绘制图像的包装。

Graphics

Graphics类包含一组创建矢量图形的方法。

Sprite

动画精灵类。

Stage

舞台是可视对象树的根,可视对象只有添加到舞台或其子对象后才会被渲染出来。创建一个hilo应用一般都是从创建一个stage开始的。

Text

Text类提供简单的文字显示功能。复杂的文本功能可以使用DOMElement。

View

View类是所有可视对象或组件的基类。
-
-
- - - - - - - \ No newline at end of file diff --git a/docs/api/symbols/Bitmap.html b/docs/api/symbols/Bitmap.html deleted file mode 100644 index 8147df4e..00000000 --- a/docs/api/symbols/Bitmap.html +++ /dev/null @@ -1,1059 +0,0 @@ - - - - - - - -Bitmap - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - Bitmap -


- - -

- - - - - - 继承 Bitmap - View - - - - - - - 模块 hilo/view/Bitmap - - - - - - 依赖 - hilo/core/Hilo, hilo/core/Class, hilo/view/View, hilo/view/Drawable - - - - - 源码 - Bitmap.js - - -
- Bitmap类表示位图图像类。 - -

-
-使用示例: -

-var bmp = new Hilo.Bitmap({image:imgElem, rect:[0, 0, 100, 100]});
-stage.addChild(bmp);
-
- - -

- - - - - -
-

属性概览

- - 显示继承属性 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - - - - - - - - -
-

方法概览

- - 显示继承方法 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- Bitmap(properties:Object) -
-
构造函数。
-
Bitmap
- - -
setImage(image:Image|String, rect:Array):Bitmap -
-
- - 设置位图的图片。 -
-
- Bitmap -
- - - - - - - - - - -
-
- -
-

构造函数

-
-
-
- Bitmap(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。此外还包括: -
    -
  • image - 位图所在的图像image。必需。
  • -
  • rect - 位图在图像image中矩形区域。
  • -
-
- -
- -
-
- - - - -
-

方法详情

- - -
-
- - setImage(image:Image|String, rect:Array):Bitmap -
-
设置位图的图片。
- - - - -
-
parameters
- -
- image:Image|String - — 图片对象或地址。 -
- -
- rect:Array - — 指定位图在图片image的矩形区域。 -
- -
- - - - - -
-
return
- -
Bitmap — 位图本身。
- -
- - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/BitmapText.html b/docs/api/symbols/BitmapText.html deleted file mode 100644 index 35bbbab9..00000000 --- a/docs/api/symbols/BitmapText.html +++ /dev/null @@ -1,1735 +0,0 @@ - - - - - - - -BitmapText - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - BitmapText -


- - -

- - - - - - 继承 BitmapText - Container View - - - - - - - 模块 hilo/view/BitmapText - - - - - - 依赖 - hilo/core/Class, hilo/core/Hilo, hilo/view/Container, hilo/view/Bitmap - - - - - 源码 - BitmapText.js - - -
- BitmapText类提供使用位图文本的功能。当前仅支持单行文本。 - -

-
- - -

- - - - - -
-

属性概览

- - 显示继承属性 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - glyphs:Object -
-
- - 位图字体的字形集合。格式为:{letter:{image:img, rect:[0,0,100,100]}}。 -
-
- BitmapText -
- - -
- - letterSpacing:Number -
-
- - 字距,即字符间的间隔。默认值为0。 -
-
- BitmapText -
- - -
- - text:String -
-
- - 位图文本的文本内容。只读属性。设置文本请使用setFont方法。 -
-
- BitmapText -
- - -
- - textAlign:String -
-
- - 文本对齐方式,值为left、center、right, 默认left。只读属性。设置文本请使用setTextAlign方法。 -
-
- BitmapText -
- - - - - - - - - -
-

方法概览

- - 显示继承方法 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- BitmapText(properties:Object) -
-
构造函数。
-
BitmapText
- - -
hasGlyphs(str:String):Boolean -
-
- - 返回能否使用当前指定的字体显示提供的字符串。 -
-
- BitmapText -
- - -
setText(text:String):BitmapText -
-
- - 设置位图文本的文本内容。 -
-
- BitmapText -
- - -
setTextAlign(textAlign):BitmapText -
-
- - 设置位图文本的对齐方式。 -
-
- BitmapText -
- - -
createGlyphs(text:String, image:Image, col:Number, row:Number):BitmapText -
-
- static - 简易方式生成字形集合。 -
-
- BitmapText -
- - - - - - - -
-
-

属性详情

-
- - -
-
- glyphs:Object - -
-
- 位图字体的字形集合。格式为:{letter:{image:img, rect:[0,0,100,100]}}。 -
- - - - - - - - -
- - -
-
- letterSpacing:Number - -
-
- 字距,即字符间的间隔。默认值为0。 -
- - - - - - - - -
- - -
-
- text:String - -
-
- 位图文本的文本内容。只读属性。设置文本请使用setFont方法。 -
- - - - - - - - -
- - -
-
- textAlign:String - -
-
- 文本对齐方式,值为left、center、right, 默认left。只读属性。设置文本请使用setTextAlign方法。 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- BitmapText(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。 -
- -
- -
-
- - - - -
-

方法详情

- - -
-
- [Static] - createGlyphs(text:String, image:Image, col:Number, row:Number):BitmapText -
-
简易方式生成字形集合。
- - - - -
-
parameters
- -
- text:String - — 字符文本。 -
- -
- image:Image - — 字符图片。 -
- -
- col:Number - — 列数 默认和文本字数一样 -
- -
- row:Number - — 行数 默认1行 -
- -
- - - - - -
-
return
- -
BitmapText — BitmapText对象本身。链式调用支持。
- -
- - - - -
- - -
-
- - hasGlyphs(str:String):Boolean -
-
返回能否使用当前指定的字体显示提供的字符串。
- - - - -
-
parameters
- -
- str:String - — 要检测的字符串。 -
- -
- - - - - -
-
return
- -
Boolean — 是否能使用指定字体。
- -
- - - - -
- - -
-
- - setText(text:String):BitmapText -
-
设置位图文本的文本内容。
- - - - -
-
parameters
- -
- text:String - — 要设置的文本内容。 -
- -
- - - - - -
-
return
- -
BitmapText — BitmapText对象本身。链式调用支持。
- -
- - - - -
- - -
-
- - setTextAlign(textAlign):BitmapText -
-
设置位图文本的对齐方式。
- - - - -
-
parameters
- -
- textAlign - — 文本对齐方式,值为left、center、right -
- -
- - - - - -
-
return
- -
BitmapText — BitmapText对象本身。链式调用支持。
- -
- - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/Button.html b/docs/api/symbols/Button.html deleted file mode 100644 index 76e217e5..00000000 --- a/docs/api/symbols/Button.html +++ /dev/null @@ -1,1556 +0,0 @@ - - - - - - - -Button - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - Button -


- - -

- - - - - - 继承 Button - View - - - - - - - 模块 hilo/view/Button - - - - - - 依赖 - hilo/core/Hilo, hilo/core/Class, hilo/view/View, hilo/view/Drawable - - - - - 源码 - Button.js - - -
- Button类表示简单按钮类。它有弹起、经过、按下和不可用等四种状态。 - -

-
-示例: -

-var btn = new Hilo.Button({
-    image: buttonImage,
-    upState: {rect:[0, 0, 64, 64]},
-    overState: {rect:[64, 0, 64, 64]},
-    downState: {rect:[128, 0, 64, 64]},
-    disabledState: {rect:[192, 0, 64, 64]}
-});
-
- - -

- - - - - -
-

属性概览

- - 显示继承属性 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - disabledState:Object -
-
- - 按钮不可用状态的属性或其drawable的属性的集合。 -
-
- Button -
- - -
- - downState:Object -
-
- - 按钮按下状态的属性或其drawable的属性的集合。 -
-
- Button -
- - -
- - enabled:Boolean -
-
- - 指示按钮是否可用。默认为true。只读属性。 -
-
- Button -
- - -
- - overState:Object -
-
- - 按钮经过状态的属性或其drawable的属性的集合。 -
-
- Button -
- - -
- - state:String -
-
- - 按钮的状态名称。它是 Button.UP|OVER|DOWN|DISABLED 之一。 只读属性。 -
-
- Button -
- - -
- - upState:Object -
-
- - 按钮弹起状态的属性或其drawable的属性的集合。 -
-
- Button -
- - -
- - useHandCursor:Boolean -
-
- - 当设置为true时,表示指针滑过按钮上方时是否显示手形光标。默认为true。 -
-
- Button -
- - -
- - OVER:String -
-
- static - 按钮经过状态的常量值,即:'over'。 -
-
- Button -
- - -
- - DISABLED:String -
-
- static - 按钮不可用状态的常量值,即:'disabled'。 -
-
- Button -
- - -
- - DOWN:String -
-
- static - 按钮按下状态的常量值,即:'down'。 -
-
- Button -
- - -
- - UP:String -
-
- static - 按钮弹起状态的常量值,即:'up'。 -
-
- Button -
- - - - - - - - - -
-

方法概览

- - 显示继承方法 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- Button(properties:Object) -
-
构造函数。
-
Button
- - -
setEnabled(enabled:Boolean):Button -
-
- - 设置按钮是否可用。 -
-
- Button -
- - -
setState(state:String):Button -
-
- - 设置按钮的状态。此方法由Button内部调用,一般无需使用此方法。 -
-
- Button -
- - - - - - - -
-
-

属性详情

-
- - -
-
[Static] - DISABLED:String - -
-
- 按钮不可用状态的常量值,即:'disabled'。 -
- - - - - - - - -
- - -
-
- disabledState:Object - -
-
- 按钮不可用状态的属性或其drawable的属性的集合。 -
- - - - - - - - -
- - -
-
[Static] - DOWN:String - -
-
- 按钮按下状态的常量值,即:'down'。 -
- - - - - - - - -
- - -
-
- downState:Object - -
-
- 按钮按下状态的属性或其drawable的属性的集合。 -
- - - - - - - - -
- - -
-
- enabled:Boolean - -
-
- 指示按钮是否可用。默认为true。只读属性。 -
- - - - - - - - -
- - -
-
[Static] - OVER:String - -
-
- 按钮经过状态的常量值,即:'over'。 -
- - - - - - - - -
- - -
-
- overState:Object - -
-
- 按钮经过状态的属性或其drawable的属性的集合。 -
- - - - - - - - -
- - -
-
- state:String - -
-
- 按钮的状态名称。它是 Button.UP|OVER|DOWN|DISABLED 之一。 只读属性。 -
- - - - - - - - -
- - -
-
[Static] - UP:String - -
-
- 按钮弹起状态的常量值,即:'up'。 -
- - - - - - - - -
- - -
-
- upState:Object - -
-
- 按钮弹起状态的属性或其drawable的属性的集合。 -
- - - - - - - - -
- - -
-
- useHandCursor:Boolean - -
-
- 当设置为true时,表示指针滑过按钮上方时是否显示手形光标。默认为true。 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- Button(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。此外还包括: -
    -
  • image - 按钮图片所在的image对象。
  • -
-
- -
- -
-
- - - - -
-

方法详情

- - -
-
- - setEnabled(enabled:Boolean):Button -
-
设置按钮是否可用。
- - - - -
-
parameters
- -
- enabled:Boolean - — 指示按钮是否可用。 -
- -
- - - - - -
-
return
- -
Button — 按钮本身。
- -
- - - - -
- - -
-
- - setState(state:String):Button -
-
设置按钮的状态。此方法由Button内部调用,一般无需使用此方法。
- - - - -
-
parameters
- -
- state:String - — 按钮的新的状态。 -
- -
- - - - - -
-
return
- -
Button — 按钮本身。
- -
- - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/CacheMixin.html b/docs/api/symbols/CacheMixin.html deleted file mode 100644 index dfa8e4ce..00000000 --- a/docs/api/symbols/CacheMixin.html +++ /dev/null @@ -1,438 +0,0 @@ - - - - - - - -CacheMixin - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - CacheMixin -


- - -

- - - - - - - - - 模块 hilo/view/CacheMixin - - - - - - 依赖 - hilo/core/Hilo, hilo/core/Class, hilo/view/Drawable - - - - - 源码 - CacheMixin.js - - -
- CacheMixin是一个包含cache功能的mixin。可以通过 Class.mix(target, CacheMixin) 来为target增加cache功能。 - - -

- - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
- - -
cache(forceUpdate:Boolean) -
-
- static - 缓存到图片里。可用来提高渲染效率。 -
-
- CacheMixin -
- - - -
- static - 更新缓存 -
-
- CacheMixin -
- - -
setCacheDirty(dirty) -
-
- static - 设置缓存是否dirty -
-
- CacheMixin -
- - - - - - - - - - - - - -
-

方法详情

- - -
-
- [Static] - cache(forceUpdate:Boolean) -
-
缓存到图片里。可用来提高渲染效率。
- - - - -
-
parameters
- -
- forceUpdate:Boolean - — 是否强制更新缓存 -
- -
- - - - - - - - -
- - -
-
- [Static] - setCacheDirty(dirty) -
-
设置缓存是否dirty
- - - - -
-
parameters
- -
- dirty - — -
- -
- - - - - - - - -
- - -
-
- [Static] - updateCache() -
-
更新缓存
- - - - - - - - - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/Camera.html b/docs/api/symbols/Camera.html deleted file mode 100644 index 8197a23e..00000000 --- a/docs/api/symbols/Camera.html +++ /dev/null @@ -1,718 +0,0 @@ - - - - - - - -Camera - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - Camera -


- - -

- - - - - - - - - 模块 hilo/game/Camera - - - - - - 依赖 - hilo/core/Hilo, hilo/core/Class - - - - - 源码 - Camera.js - - -
- Camera类表示摄像机。 - - -

- - - - - -
-

属性概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - bounds:Array -
-
- - 摄像机移动边界的矩形区域 [x, y, width, height] -
-
- Camera -
- - -
- - deadzone:Array -
-
- - 摄像机不移动的矩形区域 [ x, y, width, height] -
-
- Camera -
- - -
- - height:Number -
-
- - 镜头高 -
-
- Camera -
- - -
- - scroll:Object -
-
- - 滚动值 {x:0, y:0} -
-
- Camera -
- - -
- - target:View -
-
- - 摄像机跟随的目标 -
-
- Camera -
- - -
- - width:Number -
-
- - 镜头宽 -
-
- Camera -
- - - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- Camera(properties:Object) -
-
构造函数。
-
Camera
- - -
follow(target:Object, deadzone:Array) -
-
- - 跟随目标 -
-
- Camera -
- - -
tick(deltaTime:Number) -
-
- - 更新 -
-
- Camera -
- - - - - - - -
-
-

属性详情

-
- - -
-
- bounds:Array - -
-
- 摄像机移动边界的矩形区域 [x, y, width, height] -
- - - - - - - - -
- - -
-
- deadzone:Array - -
-
- 摄像机不移动的矩形区域 [ x, y, width, height] -
- - - - - - - - -
- - -
-
- height:Number - -
-
- 镜头高 -
- - - - - - - - -
- - -
-
- scroll:Object - -
-
- 滚动值 {x:0, y:0} -
- - - - - - - - -
- - -
-
- target:View - -
-
- 摄像机跟随的目标 -
- - - - - - - - -
- - -
-
- width:Number - -
-
- 镜头宽 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- Camera(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。 -
- -
- -
-
- - - - -
-

方法详情

- - -
-
- - follow(target:Object, deadzone:Array) -
-
跟随目标
- - - - -
-
parameters
- -
- target:Object - — 跟随的目标,必须是有x,y属性的对象 -
- -
- deadzone:Array - — 摄像机不移动的矩形区域 [ x, y, width, height] -
- -
- - - - - - - - -
- - -
-
- - tick(deltaTime:Number) -
-
更新
- - - - -
-
parameters
- -
- deltaTime:Number - — -
- -
- - - - - - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/Camera3d.html b/docs/api/symbols/Camera3d.html deleted file mode 100644 index 6edf6ff8..00000000 --- a/docs/api/symbols/Camera3d.html +++ /dev/null @@ -1,1094 +0,0 @@ - - - - - - - -Camera3d - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - Camera3d -


- - -

- - - - - - - - - 模块 hilo/game/Camera3d - - - - - - 依赖 - hilo/core/Hilo, hilo/core/Class - - - - - 源码 - Camera3d.js - - -
- Camera3d 伪3D虚拟摄像机。 - - -

- - - - - -
-

属性概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - fv:Number -
-
- - 镜头视点距离(屏幕视点相对眼睛距离,绝对了坐标缩放比例) -
-
- Camera3d -
- - -
- - fx:Number -
-
- - 镜头视点X(屏幕视点相对屏幕左上角X距离) -
-
- Camera3d -
- - -
- - fy:Number -
-
- - 镜头视点Y(屏幕视点相对屏幕左上角Y距离) -
-
- Camera3d -
- - -
- - rotationX:Number -
-
- - X轴旋转角度 -
-
- Camera3d -
- - -
- - rotationY:Number -
-
- - Y轴旋转角度 -
-
- Camera3d -
- - -
- - rotationZ:Number -
-
- - Z轴旋转角度 -
-
- Camera3d -
- - -
- - stage:Object -
-
- - 3D对象所在容器,可以是stage或container,结合ticker时是必须参数,用来Z深度排序 -
-
- Camera3d -
- - -
- - x:Number -
-
- - 镜头三维坐标x -
-
- Camera3d -
- - -
- - y:Number -
-
- - 镜头三维坐标y -
-
- Camera3d -
- - -
- - z:Number -
-
- - 镜头三维坐标z -
-
- Camera3d -
- - - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- Camera3d() -
-
构造函数。
-
Camera3d
- - -
project(三维坐标对象:object) -
-
- - 将三维坐标转换投影为二维坐标,同时返回Z轴深度,和投影显示的缩放比例 -
-
- Camera3d -
- - -
rotateX(X旋转角度:Number) -
-
- - 旋转X轴方向角度,相当于欧拉角系统的 beta -
-
- Camera3d -
- - -
rotateY(Y旋转角度:Number) -
-
- - 旋转Y轴方向角度,相当于欧拉角系统的 gamma -
-
- Camera3d -
- - -
rotateZ(Z旋转角度:Number) -
-
- - 旋转Z轴方向角度,相当于欧拉角系统的 alpha -
-
- Camera3d -
- - -
sortZ() -
-
- - Z深度排序 -
-
- Camera3d -
- - -
tick() -
-
- - Ticker 轮询使用 -
-
- Camera3d -
- - -
translate(x坐标:Number, y坐标:Number, z坐标:Number) -
-
- - 仿射矩阵位移变换,不同于直接修改Camera3d.x/y/z. -
-
- Camera3d -
- - - - - - - -
-
-

属性详情

-
- - -
-
- fv:Number - -
-
- 镜头视点距离(屏幕视点相对眼睛距离,绝对了坐标缩放比例) -
- - - - - - - - -
- - -
-
- fx:Number - -
-
- 镜头视点X(屏幕视点相对屏幕左上角X距离) -
- - - - - - - - -
- - -
-
- fy:Number - -
-
- 镜头视点Y(屏幕视点相对屏幕左上角Y距离) -
- - - - - - - - -
- - -
-
- rotationX:Number - -
-
- X轴旋转角度 -
- - - - - - - - -
- - -
-
- rotationY:Number - -
-
- Y轴旋转角度 -
- - - - - - - - -
- - -
-
- rotationZ:Number - -
-
- Z轴旋转角度 -
- - - - - - - - -
- - -
-
- stage:Object - -
-
- 3D对象所在容器,可以是stage或container,结合ticker时是必须参数,用来Z深度排序 -
- - - - - - - - -
- - -
-
- x:Number - -
-
- 镜头三维坐标x -
- - - - - - - - -
- - -
-
- y:Number - -
-
- 镜头三维坐标y -
- - - - - - - - -
- - -
-
- z:Number - -
-
- 镜头三维坐标z -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- Camera3d() -
- - -
-
- - - - -
-

方法详情

- - -
-
- - project(三维坐标对象:object) -
-
将三维坐标转换投影为二维坐标,同时返回Z轴深度,和投影显示的缩放比例
- - - - -
-
parameters
- -
- 三维坐标对象:object - — -
- -
- Hilo.View对象,用于自动转换坐标:object - — -
- -
- - - - - - - - -
- - -
-
- - rotateX(X旋转角度:Number) -
-
旋转X轴方向角度,相当于欧拉角系统的 beta
- - - - -
-
parameters
- -
- X旋转角度:Number - — -
- -
- - - - - - - - -
- - -
-
- - rotateY(Y旋转角度:Number) -
-
旋转Y轴方向角度,相当于欧拉角系统的 gamma
- - - - -
-
parameters
- -
- Y旋转角度:Number - — -
- -
- - - - - - - - -
- - -
-
- - rotateZ(Z旋转角度:Number) -
-
旋转Z轴方向角度,相当于欧拉角系统的 alpha
- - - - -
-
parameters
- -
- Z旋转角度:Number - — -
- -
- - - - - - - - -
- - -
-
- - sortZ() -
-
Z深度排序
- - - - - - - - - - - -
- - -
-
- - tick() -
-
Ticker 轮询使用
- - - - - - - - - - - -
- - -
-
- - translate(x坐标:Number, y坐标:Number, z坐标:Number) -
-
仿射矩阵位移变换,不同于直接修改Camera3d.x/y/z. 是在Camera3d依次做坐标位移 - 旋转变换 后,再加上一个位移变换。主要功能可以做Zoomin/out 功能
- - - - -
-
parameters
- -
- x坐标:Number - — -
- -
- y坐标:Number - — -
- -
- z坐标:Number - — -
- -
- - - - - - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/CanvasRenderer.html b/docs/api/symbols/CanvasRenderer.html deleted file mode 100644 index 8e2e80d0..00000000 --- a/docs/api/symbols/CanvasRenderer.html +++ /dev/null @@ -1,631 +0,0 @@ - - - - - - - -CanvasRenderer - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - CanvasRenderer -


- - -

- - - - - - 继承 CanvasRenderer - Renderer - - - - - - - 模块 hilo/renderer/CanvasRenderer - - - - - - 依赖 - hilo/core/Class, hilo/core/Hilo, hilo/renderer/Renderer - - - - - 源码 - CanvasRenderer.js - - -
- canvas画布渲染器。所有可视对象将渲染在canvas画布上。舞台Stage会根据参数canvas选择不同的渲染器,开发者无需直接使用此类。 - - -

- - - - - -
-

属性概览

- - 显示继承属性 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - context:CanvasRenderingContext2D -
-
- - canvas画布的上下文。只读属性。 -
-
- CanvasRenderer -
- - - - - - - - - -
-

方法概览

- - 显示继承方法 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- CanvasRenderer(properties:Object) -
-
构造函数。
-
CanvasRenderer
- - - - - - - -
-
-

属性详情

-
- - -
-
- context:CanvasRenderingContext2D - -
-
- canvas画布的上下文。只读属性。 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- CanvasRenderer(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。 -
- -
- -
-
- - - - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/Class.html b/docs/api/symbols/Class.html deleted file mode 100644 index be81c649..00000000 --- a/docs/api/symbols/Class.html +++ /dev/null @@ -1,444 +0,0 @@ - - - - - - - -Class - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - Class -


- - -

- - - - - - - - - 模块 hilo/core/Class - - - - - - - 源码 - Class.js - - -
- Class是提供类的创建的辅助工具。 - -

创建类示例: -

-var Bird = Hilo.Class.create({
-    Extends: Animal,
-    Mixes: EventMixin,
-    constructor: function(name){
-        this.name = name;
-    },
-    fly: function(){
-        console.log('I am flying');
-    },
-    Statics: {
-        isBird: function(bird){
-            return bird instanceof Bird;
-        }
-    }
-});
-
-var swallow = new Bird('swallow');
-swallow.fly();
-Bird.isBird(swallow);
-
- - -

- - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
- - -
create(properties:Object):Object -
-
- static - 根据参数指定的属性和方法创建类。 -
-
- Class -
- - -
mix(target:Object, source:Object):Object -
-
- static - 混入属性或方法。 -
-
- Class -
- - - - - - - - - - - - - -
-

方法详情

- - -
-
- [Static] - create(properties:Object):Object -
-
根据参数指定的属性和方法创建类。
- - - - -
-
parameters
- -
- properties:Object - — 要创建的类的相关属性和方法。主要有: -
    -
  • Extends - 指定要继承的父类。
  • -
  • Mixes - 指定要混入的成员集合对象。
  • -
  • Statics - 指定类的静态属性或方法。
  • -
  • constructor - 指定类的构造函数。
  • -
  • 其他创建类的成员属性或方法。
  • -
-
- -
- - - - - -
-
return
- -
Object — 创建的类。
- -
- - - - -
- - -
-
- [Static] - mix(target:Object, source:Object):Object -
-
混入属性或方法。
- - - - -
-
parameters
- -
- target:Object - — 混入目标对象。 -
- -
- source:Object - — 要混入的属性和方法来源。可支持多个来源参数。 -
- -
- - - - - -
-
return
- -
Object — 混入目标对象。
- -
- - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/Container.html b/docs/api/symbols/Container.html deleted file mode 100644 index 34fc6185..00000000 --- a/docs/api/symbols/Container.html +++ /dev/null @@ -1,1933 +0,0 @@ - - - - - - - -Container - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - Container -


- - -

- - - - - - 继承 Container - View - - - - - - - 模块 hilo/view/Container - - - - - - 依赖 - hilo/core/Hilo, hilo/core/Class, hilo/view/View - - - - - 源码 - Container.js - - -
- Container是所有容器类的基类。每个Container都可以添加其他可视对象为子级。 - - -

- - - - - -
-

属性概览

- - 显示继承属性 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - children:Array -
-
- - 容器的子元素列表。只读。 -
-
- Container -
- - -
- - clipChildren:Boolean -
-
- - 指示是否裁剪超出容器范围的子元素。默认为false。 -
-
- Container -
- - -
- - pointerChildren:Boolean -
-
- - 指示容器的子元素是否能响应用户交互事件。默认为true。 -
-
- Container -
- - - - - - - - - -
-

方法概览

- - 显示继承方法 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- Container(properties:Object) -
-
构造函数。
-
Container
- - -
addChild(child:View) -
-
- - 在最上面添加子元素。 -
-
- Container -
- - -
addChildAt(child:View, index:Number) -
-
- - 在指定索引位置添加子元素。 -
-
- Container -
- - -
contains(child:View) -
-
- - 返回是否包含参数指定的子元素。 -
-
- Container -
- - -
getChildAt(index:Number) -
-
- - 返回指定索引位置的子元素。 -
-
- Container -
- - -
getChildById(id:String) -
-
- - 返回指定id的子元素。 -
-
- Container -
- - - -
- - 返回指定子元素的索引值。 -
-
- Container -
- - -
getNumChildren():Uint -
-
- - 返回容器的子元素的数量。 -
-
- Container -
- - -
getViewAtPoint(x:Number, y:Number, usePolyCollision:Boolean, global:Boolean, eventMode:Boolean) -
-
- - 返回由x和y指定的点下的对象。 -
-
- Container -
- - -
removeAllChildren():Container -
-
- - 删除所有的子元素。 -
-
- Container -
- - -
removeChild(child:View):View -
-
- - 删除指定的子元素。 -
-
- Container -
- - -
removeChildAt(index:Int):View -
-
- - 在指定索引位置删除子元素。 -
-
- Container -
- - -
removeChildById(id:String):View -
-
- - 删除指定id的子元素。 -
-
- Container -
- - -
setChildIndex(child:View, index:Number) -
-
- - 设置子元素的索引位置。 -
-
- Container -
- - -
sortChildren(keyOrFunction:Object) -
-
- - 根据指定键值或函数对子元素进行排序。 -
-
- Container -
- - -
swapChildren(child1:View, child2:View) -
-
- - 交换两个子元素的索引位置。 -
-
- Container -
- - -
swapChildrenAt(index1:Number, index2:Number) -
-
- - 交换两个指定索引位置的子元素。 -
-
- Container -
- - - - - - - -
-
-

属性详情

-
- - -
-
- children:Array - -
-
- 容器的子元素列表。只读。 -
- - - - - - - - -
- - -
-
- clipChildren:Boolean - -
-
- 指示是否裁剪超出容器范围的子元素。默认为false。 -
- - - - - - - - -
- - -
-
- pointerChildren:Boolean - -
-
- 指示容器的子元素是否能响应用户交互事件。默认为true。 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- Container(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。 -
- -
- -
-
- - - - -
-

方法详情

- - -
-
- - addChild(child:View) -
-
在最上面添加子元素。
- - - - -
-
parameters
- -
- child:View - — 要添加的子元素。 -
- -
- - - - - - - - -
- - -
-
- - addChildAt(child:View, index:Number) -
-
在指定索引位置添加子元素。
- - - - -
-
parameters
- -
- child:View - — 要添加的子元素。 -
- -
- index:Number - — 指定的索引位置,从0开始。 -
- -
- - - - - - - - -
- - -
-
- - contains(child:View) -
-
返回是否包含参数指定的子元素。
- - - - -
-
parameters
- -
- child:View - — 指定要测试的子元素。 -
- -
- - - - - - - - -
- - -
-
- - getChildAt(index:Number) -
-
返回指定索引位置的子元素。
- - - - -
-
parameters
- -
- index:Number - — 指定要返回的子元素的索引值,从0开始。 -
- -
- - - - - - - - -
- - -
-
- - getChildById(id:String) -
-
返回指定id的子元素。
- - - - -
-
parameters
- -
- id:String - — 指定要返回的子元素的id。 -
- -
- - - - - - - - -
- - -
-
- - getChildIndex(child:View) -
-
返回指定子元素的索引值。
- - - - -
-
parameters
- -
- child:View - — 指定要返回索引值的子元素。 -
- -
- - - - - - - - -
- - -
-
- - getNumChildren():Uint -
-
返回容器的子元素的数量。
- - - - - - - - -
-
return
- -
Uint — 容器的子元素的数量。
- -
- - - - -
- - -
-
- - getViewAtPoint(x:Number, y:Number, usePolyCollision:Boolean, global:Boolean, eventMode:Boolean) -
-
返回由x和y指定的点下的对象。
- - - - -
-
parameters
- -
- x:Number - — 指定点的x轴坐标。 -
- -
- y:Number - — 指定点的y轴坐标。 -
- -
- usePolyCollision:Boolean - — 指定是否使用多边形碰撞检测。默认为false。 -
- -
- global:Boolean - — 使用此标志表明将查找所有符合的对象,而不仅仅是第一个,即全局匹配。默认为false。 -
- -
- eventMode:Boolean - — 使用此标志表明将在事件模式下查找对象。默认为false。 -
- -
- - - - - - - - -
- - -
-
- - removeAllChildren():Container -
-
删除所有的子元素。
- - - - - - - - -
-
return
- -
Container — 容器本身。
- -
- - - - -
- - -
-
- - removeChild(child:View):View -
-
删除指定的子元素。
- - - - -
-
parameters
- -
- child:View - — 指定要删除的子元素。 -
- -
- - - - - -
-
return
- -
View — 被删除的对象。
- -
- - - - -
- - -
-
- - removeChildAt(index:Int):View -
-
在指定索引位置删除子元素。
- - - - -
-
parameters
- -
- index:Int - — 指定删除元素的索引位置,从0开始。 -
- -
- - - - - -
-
return
- -
View — 被删除的对象。
- -
- - - - -
- - -
-
- - removeChildById(id:String):View -
-
删除指定id的子元素。
- - - - -
-
parameters
- -
- id:String - — 指定要删除的子元素的id。 -
- -
- - - - - -
-
return
- -
View — 被删除的对象。
- -
- - - - -
- - -
-
- - setChildIndex(child:View, index:Number) -
-
设置子元素的索引位置。
- - - - -
-
parameters
- -
- child:View - — 指定要设置的子元素。 -
- -
- index:Number - — 指定要设置的索引值。 -
- -
- - - - - - - - -
- - -
-
- - sortChildren(keyOrFunction:Object) -
-
根据指定键值或函数对子元素进行排序。
- - - - -
-
parameters
- -
- keyOrFunction:Object - — 如果此参数为String时,则根据子元素的某个属性值进行排序;如果此参数为Function时,则根据此函数进行排序。 -
- -
- - - - - - - - -
- - -
-
- - swapChildren(child1:View, child2:View) -
-
交换两个子元素的索引位置。
- - - - -
-
parameters
- -
- child1:View - — 指定要交换的子元素A。 -
- -
- child2:View - — 指定要交换的子元素B。 -
- -
- - - - - - - - -
- - -
-
- - swapChildrenAt(index1:Number, index2:Number) -
-
交换两个指定索引位置的子元素。
- - - - -
-
parameters
- -
- index1:Number - — 指定要交换的索引位置A。 -
- -
- index2:Number - — 指定要交换的索引位置B。 -
- -
- - - - - - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/DOMElement.html b/docs/api/symbols/DOMElement.html deleted file mode 100644 index 6fdac3b4..00000000 --- a/docs/api/symbols/DOMElement.html +++ /dev/null @@ -1,1004 +0,0 @@ - - - - - - - -DOMElement - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - DOMElement -


- - -

- - - - - - 继承 DOMElement - View - - - - - - - 模块 hilo/view/DOMElement - - - - - - 依赖 - hilo/core/Hilo, hilo/core/Class, hilo/view/View, hilo/view/Drawable - - - - - 源码 - DOMElement.js - - -
- DOMElement是dom元素的包装。 - -

-
-使用示例: -

-var domView = new Hilo.DOMElement({
-    element: Hilo.createElement('div', {
-        style: {
-            backgroundColor: '#004eff',
-            position: 'absolute'
-        }
-    }),
-    width: 100,
-    height: 100,
-    x: 50,
-    y: 70
-}).addTo(stage);
-
- - -

- - - - - -
-

属性概览

- - 显示继承属性 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - - - - - - - - -
-

方法概览

- - 显示继承方法 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- DOMElement(properties:Object) -
-
构造函数。
-
DOMElement
- - - - - - - - - - -
-
- -
-

构造函数

-
-
-
- DOMElement(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。特殊属性有: -
    -
  • element - 要包装的dom元素。必需。
  • -
-
- -
- -
-
- - - - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/DOMRenderer.html b/docs/api/symbols/DOMRenderer.html deleted file mode 100644 index c04385ff..00000000 --- a/docs/api/symbols/DOMRenderer.html +++ /dev/null @@ -1,586 +0,0 @@ - - - - - - - -DOMRenderer - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - DOMRenderer -


- - -

- - - - - - 继承 DOMRenderer - Renderer - - - - - - - 模块 hilo/renderer/DOMRenderer - - - - - - 依赖 - hilo/core/Class, hilo/core/Hilo, hilo/renderer/Renderer, hilo/view/Drawable - - - - - 源码 - DOMRenderer.js - - -
- DOM+CSS3渲染器。将可视对象以DOM元素方式渲染出来。舞台Stage会根据参数canvas选择不同的渲染器,开发者无需直接使用此类。 - - -

- - - - - -
-

属性概览

- - 显示继承属性 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - - - - - - - - -
-

方法概览

- - 显示继承方法 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- DOMRenderer(properties:Object) -
-
构造函数。
-
DOMRenderer
- - - - - - - - - - -
-
- -
-

构造函数

-
-
-
- DOMRenderer(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。 -
- -
- -
-
- - - - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/Drawable.html b/docs/api/symbols/Drawable.html deleted file mode 100644 index 2dedb696..00000000 --- a/docs/api/symbols/Drawable.html +++ /dev/null @@ -1,564 +0,0 @@ - - - - - - - -Drawable - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - Drawable -


- - -

- - - - - - - - - 模块 hilo/view/Drawable - - - - - - 依赖 - hilo/core/Hilo, hilo/core/Class - - - - - 源码 - Drawable.js - - -
- Drawable是可绘制图像的包装。 - - -

- - - - - -
-

属性概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - image:Object -
-
- - 要绘制的图像。即可被CanvasRenderingContext2D.drawImage使用的对象类型,可以是HTMLImageElement、HTMLCanvasElement、HTMLVideoElement等对象。 -
-
- Drawable -
- - -
- - rect:array -
-
- - 要绘制的图像的矩形区域。 -
-
- Drawable -
- - - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- Drawable(properties:Object) -
-
构造函数。
-
Drawable
- - -
init(properties:Object) -
-
- - 初始化可绘制对象。 -
-
- Drawable -
- - -
isDrawable(elem:Object):Boolean -
-
- static - 判断参数elem指定的元素是否可包装成Drawable对象。 -
-
- Drawable -
- - - - - - - -
-
-

属性详情

-
- - -
-
- image:Object - -
-
- 要绘制的图像。即可被CanvasRenderingContext2D.drawImage使用的对象类型,可以是HTMLImageElement、HTMLCanvasElement、HTMLVideoElement等对象。 -
- - - - - - - - -
- - -
-
- rect:array - -
-
- 要绘制的图像的矩形区域。 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- Drawable(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。 -
- -
- -
-
- - - - -
-

方法详情

- - -
-
- - init(properties:Object) -
-
初始化可绘制对象。
- - - - -
-
parameters
- -
- properties:Object - — 要初始化的属性。 -
- -
- - - - - - - - -
- - -
-
- [Static] - isDrawable(elem:Object):Boolean -
-
判断参数elem指定的元素是否可包装成Drawable对象。
- - - - -
-
parameters
- -
- elem:Object - — 要测试的对象。 -
- -
- - - - - -
-
return
- -
Boolean — 如果是可包装成Drawable对象则返回true,否则为false。
- -
- - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/Ease.html b/docs/api/symbols/Ease.html deleted file mode 100644 index 5b7c4ec7..00000000 --- a/docs/api/symbols/Ease.html +++ /dev/null @@ -1,728 +0,0 @@ - - - - - - - -Ease - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - Ease -


- - -

- - - - - - - - - 模块 hilo/tween/Ease - - - - - - - 源码 - Ease.js - - -
- Ease类包含为Tween类提供各种缓动功能的函数。 - - -

- - - - - -
-

属性概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - Back -
-
- - 向后缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
-
- Ease -
- - -
- - Bounce -
-
- - 弹跳缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
-
- Ease -
- - -
- - Circ -
-
- - 圆形缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
-
- Ease -
- - -
- - Cubic -
-
- - 三次缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
-
- Ease -
- - -
- - Elastic -
-
- - 弹性缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
-
- Ease -
- - -
- - Expo -
-
- - 指数缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
-
- Ease -
- - -
- - Linear -
-
- - 线性匀速缓动函数。包含EaseNone函数。 -
-
- Ease -
- - -
- - Quad -
-
- - 二次缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
-
- Ease -
- - -
- - Quart -
-
- - 四次缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
-
- Ease -
- - -
- - Quint -
-
- - 五次缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
-
- Ease -
- - -
- - Sine -
-
- - 正弦缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
-
- Ease -
- - - - - - - - - - -
-
-

属性详情

-
- - -
-
[Static] - Back - -
-
- 向后缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
- - - - - - - - -
- - -
-
[Static] - Bounce - -
-
- 弹跳缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
- - - - - - - - -
- - -
-
[Static] - Circ - -
-
- 圆形缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
- - - - - - - - -
- - -
-
[Static] - Cubic - -
-
- 三次缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
- - - - - - - - -
- - -
-
[Static] - Elastic - -
-
- 弹性缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
- - - - - - - - -
- - -
-
[Static] - Expo - -
-
- 指数缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
- - - - - - - - -
- - -
-
[Static] - Linear - -
-
- 线性匀速缓动函数。包含EaseNone函数。 -
- - - - - - - - -
- - -
-
[Static] - Quad - -
-
- 二次缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
- - - - - - - - -
- - -
-
[Static] - Quart - -
-
- 四次缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
- - - - - - - - -
- - -
-
[Static] - Quint - -
-
- 五次缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
- - - - - - - - -
- - -
-
[Static] - Sine - -
-
- 正弦缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。 -
- - - - - - - - -
- - - - - - - - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/EventMixin.html b/docs/api/symbols/EventMixin.html deleted file mode 100644 index 4bb89be3..00000000 --- a/docs/api/symbols/EventMixin.html +++ /dev/null @@ -1,489 +0,0 @@ - - - - - - - -EventMixin - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - EventMixin -


- - -

- - - - - - - - - 模块 hilo/event/EventMixin - - - - - - 依赖 - hilo/core/Class - - - - - 源码 - EventMixin.js - - -
- EventMixin是一个包含事件相关功能的mixin。可以通过 Class.mix(target, EventMixin) 来为target增加事件功能。 - - -

- - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
- - -
on(type:String, listener:Function, once:Boolean):Object -
-
- static - 增加一个事件监听。 -
-
- EventMixin -
- - -
off(type:String, listener:Function):Object -
-
- static - 删除一个事件监听。如果不传入任何参数,则删除所有的事件监听;如果不传入第二个参数,则删除指定类型的所有事件监听。 -
-
- EventMixin -
- - -
fire(type:String, detail:Object):Boolean -
-
- static - 发送事件。当第一个参数类型为Object时,则把它作为一个整体事件对象。 -
-
- EventMixin -
- - - - - - - - - - - - - -
-

方法详情

- - -
-
- [Static] - fire(type:String, detail:Object):Boolean -
-
发送事件。当第一个参数类型为Object时,则把它作为一个整体事件对象。
- - - - -
-
parameters
- -
- type:String - — 要发送的事件类型。 -
- -
- detail:Object - — 要发送的事件的具体信息,即事件随带参数。 -
- -
- - - - - -
-
return
- -
Boolean — 是否成功调度事件。
- -
- - - - -
- - -
-
- [Static] - off(type:String, listener:Function):Object -
-
删除一个事件监听。如果不传入任何参数,则删除所有的事件监听;如果不传入第二个参数,则删除指定类型的所有事件监听。
- - - - -
-
parameters
- -
- type:String - — 要删除监听的事件类型。 -
- -
- listener:Function - — 要删除监听的回调函数。 -
- -
- - - - - -
-
return
- -
Object — 对象本身。链式调用支持。
- -
- - - - -
- - -
-
- [Static] - on(type:String, listener:Function, once:Boolean):Object -
-
增加一个事件监听。
- - - - -
-
parameters
- -
- type:String - — 要监听的事件类型。 -
- -
- listener:Function - — 事件监听回调函数。 -
- -
- once:Boolean - — 是否是一次性监听,即回调函数响应一次后即删除,不再响应。 -
- -
- - - - - -
-
return
- -
Object — 对象本身。链式调用支持。
- -
- - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/Graphics.html b/docs/api/symbols/Graphics.html deleted file mode 100644 index 4136d952..00000000 --- a/docs/api/symbols/Graphics.html +++ /dev/null @@ -1,2561 +0,0 @@ - - - - - - - -Graphics - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - Graphics -


- - -

- - - - - - 继承 Graphics - View - - - - - - - 模块 hilo/view/Graphics - - - - - - 依赖 - hilo/core/Hilo, hilo/core/Class, hilo/view/View, hilo/view/CacheMixin - - - - - 源码 - Graphics.js - - -
- Graphics类包含一组创建矢量图形的方法。 - -

-
- - -

- - - - - -
-

属性概览

- - 显示继承属性 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - fillAlpha:Number -
-
- - 内容填充的透明度。默认值为0。只读属性。 -
-
- Graphics -
- - -
- - fillStyle:String -
-
- - 内容填充的样式。默认值为'0',即黑色。只读属性。 -
-
- Graphics -
- - -
- - lineAlpha:Number -
-
- - 笔画的线条透明度。默认为1。只读属性。 -
-
- Graphics -
- - -
- - lineCap:String -
-
- - 笔画的线条端部样式。可选值有:butt、round、square等,默认为null。只读属性。 -
-
- Graphics -
- - -
- - lineJoin:String -
-
- - 笔画的线条连接样式。可选值有:miter、round、bevel等,默认为null。只读属性。 -
-
- Graphics -
- - -
- - lineWidth:Number -
-
- - 笔画的线条宽度。默认为1。只读属性。 -
-
- Graphics -
- - -
- - miterLimit:Number -
-
- - 斜连线长度和线条宽度的最大比率。此属性仅当lineJoin为miter时有效。默认值为10。只读属性。 -
-
- Graphics -
- - -
- - strokeStyle:String -
-
- - 笔画边框的样式。默认值为'0',即黑色。只读属性。 -
-
- Graphics -
- - - - - - - - - -
-

方法概览

- - 显示继承方法 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- Graphics(properties:Object) -
-
构造函数。
-
Graphics
- - -
beginBitmapFill(image:HTMLImageElement, repetition:String):Graphics -
-
- - 开始一个位图填充样式。 -
-
- Graphics -
- - -
beginFill(fill:String, alpha:Number):Graphics -
-
- - 指定绘制图形的填充样式和透明度。 -
-
- Graphics -
- - -
beginLinearGradientFill(x0:Number, y0:Number, x1:Number, y1:Number, colors:Array, ratois:Array):Graphics -
-
- - 指定绘制图形的线性渐变填充样式。 -
-
- Graphics -
- - -
beginPath():Graphics -
-
- - 开始一个新的路径。 -
-
- Graphics -
- - -
beginRadialGradientFill(x0:Number, y0:Number, r0:Number, x1:Number, y1:Number, r1:Number, colors:Array, ratois:Array):Graphics -
-
- - 指定绘制图形的放射性渐变填充样式。 -
-
- Graphics -
- - -
bezierCurveTo(cp1x:Number, cp1y:Number, cp2x:Number, cp2y:Number, x:Number, y:Number):Graphics -
-
- - 绘制从当前位置开始到点(x, y)结束的贝塞尔曲线。 -
-
- Graphics -
- - -
clear():Graphics -
-
- - 清除所有绘制动作并复原所有初始状态。 -
-
- Graphics -
- - -
closePath():Graphics -
-
- - 关闭当前的路径。 -
-
- Graphics -
- - -
drawCircle(x:Number, y:Number, radius:Number):Graphics -
-
- - 绘制一个圆。 -
-
- Graphics -
- - -
drawEllipse(x:Number, y:Number, width:Number, height:Number):Graphics -
-
- - 绘制一个椭圆。 -
-
- Graphics -
- - -
drawRect(x:Number, y:Number, width:Number, height:Number):Graphics -
-
- - 绘制一个矩形。 -
-
- Graphics -
- - -
drawRoundRect(x:Number, y:Number, width:Number, height:Number, cornerSize:Number):Graphics -
-
- - 绘制一个圆角矩形。 -
-
- Graphics -
- - -
drawRoundRectComplex(x:Number, y:Number, width:Number, height:Number, cornerTL:Number, cornerTR:Number, cornerBR:Number, cornerBL:Number):Graphics -
-
- - 绘制一个复杂的圆角矩形。 -
-
- Graphics -
- - -
drawSVGPath(pathData:String):Graphics -
-
- - 根据参数指定的SVG数据绘制一条路径。 -代码示例: -

var path = 'M250 150 L150 350 L350 350 Z';

-

var shape = new Hilo.Graphics({width:500, height:500});

-

shape.drawSVGPath(path).beginFill('#0ff').endFill();

-
-
- Graphics -
- - -
endFill():Graphics -
-
- - 应用并结束笔画的绘制和图形样式的填充。 -
-
- Graphics -
- - -
lineStyle(thickness:Number, lineColor:String, lineAlpha:Number, lineCap:String, lineJoin:String, miterLimit:Number):Graphics -
-
- - 指定绘制图形的线条样式。 -
-
- Graphics -
- - -
lineTo(x:Number, y:Number):Graphics -
-
- - 绘制从当前位置开始到点(x, y)结束的直线。 -
-
- Graphics -
- - -
moveTo(x:Number, y:Number):Graphics -
-
- - 将当前绘制位置移动到点(x, y)。 -
-
- Graphics -
- - -
quadraticCurveTo(cpx:Number, cpy:Number, x:Number, y:Number):Graphics -
-
- - 绘制从当前位置开始到点(x, y)结束的二次曲线。 -
-
- Graphics -
- - - - - - - -
-
-

属性详情

-
- - -
-
- fillAlpha:Number - -
-
- 内容填充的透明度。默认值为0。只读属性。 -
- - - - - - - - -
- - -
-
- fillStyle:String - -
-
- 内容填充的样式。默认值为'0',即黑色。只读属性。 -
- - - - - - - - -
- - -
-
- lineAlpha:Number - -
-
- 笔画的线条透明度。默认为1。只读属性。 -
- - - - - - - - -
- - -
-
- lineCap:String - -
-
- 笔画的线条端部样式。可选值有:butt、round、square等,默认为null。只读属性。 -
- - - - - - - - -
- - -
-
- lineJoin:String - -
-
- 笔画的线条连接样式。可选值有:miter、round、bevel等,默认为null。只读属性。 -
- - - - - - - - -
- - -
-
- lineWidth:Number - -
-
- 笔画的线条宽度。默认为1。只读属性。 -
- - - - - - - - -
- - -
-
- miterLimit:Number - -
-
- 斜连线长度和线条宽度的最大比率。此属性仅当lineJoin为miter时有效。默认值为10。只读属性。 -
- - - - - - - - -
- - -
-
- strokeStyle:String - -
-
- 笔画边框的样式。默认值为'0',即黑色。只读属性。 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- Graphics(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。 -
- -
- -
-
- - - - -
-

方法详情

- - -
-
- - beginBitmapFill(image:HTMLImageElement, repetition:String):Graphics -
-
开始一个位图填充样式。
- - - - -
-
parameters
- -
- image:HTMLImageElement - — 指定填充的Image对象。 -
- -
- repetition:String - — 指定填充的重复设置参数。它可以是以下任意一个值:repeat, repeat-x, repeat-y, no-repeat。默认为''。 -
- -
- - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - beginFill(fill:String, alpha:Number):Graphics -
-
指定绘制图形的填充样式和透明度。
- - - - -
-
parameters
- -
- fill:String - — 填充样式。可以是color、gradient或pattern。 -
- -
- alpha:Number - — 透明度。 -
- -
- - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - beginLinearGradientFill(x0:Number, y0:Number, x1:Number, y1:Number, colors:Array, ratois:Array):Graphics -
-
指定绘制图形的线性渐变填充样式。
- - - - -
-
parameters
- -
- x0:Number - — 渐变的起始点的x轴坐标。 -
- -
- y0:Number - — 渐变的起始点的y轴坐标。 -
- -
- x1:Number - — 渐变的结束点的x轴坐标。 -
- -
- y1:Number - — 渐变的结束点的y轴坐标。 -
- -
- colors:Array - — 渐变中使用的CSS颜色值数组。 -
- -
- ratois:Array - — 渐变中开始与结束之间的位置数组。需与colors数组里的颜色值一一对应,介于0.0与1.0之间的值。 -
- -
- - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - beginPath():Graphics -
-
开始一个新的路径。
- - - - - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - beginRadialGradientFill(x0:Number, y0:Number, r0:Number, x1:Number, y1:Number, r1:Number, colors:Array, ratois:Array):Graphics -
-
指定绘制图形的放射性渐变填充样式。
- - - - -
-
parameters
- -
- x0:Number - — 渐变的起始圆的x轴坐标。 -
- -
- y0:Number - — 渐变的起始圆的y轴坐标。 -
- -
- r0:Number - — 渐变的起始圆的半径。 -
- -
- x1:Number - — 渐变的结束圆的x轴坐标。 -
- -
- y1:Number - — 渐变的结束圆的y轴坐标。 -
- -
- r1:Number - — 渐变的结束圆的半径。 -
- -
- colors:Array - — 渐变中使用的CSS颜色值数组。 -
- -
- ratois:Array - — 渐变中开始与结束之间的位置数组。需与colors数组里的颜色值一一对应,介于0.0与1.0之间的值。 -
- -
- - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - bezierCurveTo(cp1x:Number, cp1y:Number, cp2x:Number, cp2y:Number, x:Number, y:Number):Graphics -
-
绘制从当前位置开始到点(x, y)结束的贝塞尔曲线。
- - - - -
-
parameters
- -
- cp1x:Number - — 控制点cp1的x轴坐标。 -
- -
- cp1y:Number - — 控制点cp1的y轴坐标。 -
- -
- cp2x:Number - — 控制点cp2的x轴坐标。 -
- -
- cp2y:Number - — 控制点cp2的y轴坐标。 -
- -
- x:Number - — x轴坐标。 -
- -
- y:Number - — y轴坐标。 -
- -
- - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - clear():Graphics -
-
清除所有绘制动作并复原所有初始状态。
- - - - - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - closePath():Graphics -
-
关闭当前的路径。
- - - - - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - drawCircle(x:Number, y:Number, radius:Number):Graphics -
-
绘制一个圆。
- - - - -
-
parameters
- -
- x:Number - — x轴坐标。 -
- -
- y:Number - — y轴坐标。 -
- -
- radius:Number - — 圆的半径。 -
- -
- - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - drawEllipse(x:Number, y:Number, width:Number, height:Number):Graphics -
-
绘制一个椭圆。
- - - - -
-
parameters
- -
- x:Number - — x轴坐标。 -
- -
- y:Number - — y轴坐标。 -
- -
- width:Number - — 椭圆的宽度。 -
- -
- height:Number - — 椭圆的高度。 -
- -
- - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - drawRect(x:Number, y:Number, width:Number, height:Number):Graphics -
-
绘制一个矩形。
- - - - -
-
parameters
- -
- x:Number - — x轴坐标。 -
- -
- y:Number - — y轴坐标。 -
- -
- width:Number - — 矩形的宽度。 -
- -
- height:Number - — 矩形的高度。 -
- -
- - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - drawRoundRect(x:Number, y:Number, width:Number, height:Number, cornerSize:Number):Graphics -
-
绘制一个圆角矩形。
- - - - -
-
parameters
- -
- x:Number - — x轴坐标。 -
- -
- y:Number - — y轴坐标。 -
- -
- width:Number - — 圆角矩形的宽度。 -
- -
- height:Number - — 圆角矩形的高度。 -
- -
- cornerSize:Number - — 圆角矩形的圆角大小。 -
- -
- - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - drawRoundRectComplex(x:Number, y:Number, width:Number, height:Number, cornerTL:Number, cornerTR:Number, cornerBR:Number, cornerBL:Number):Graphics -
-
绘制一个复杂的圆角矩形。
- - - - -
-
parameters
- -
- x:Number - — x轴坐标。 -
- -
- y:Number - — y轴坐标。 -
- -
- width:Number - — 圆角矩形的宽度。 -
- -
- height:Number - — 圆角矩形的高度。 -
- -
- cornerTL:Number - — 圆角矩形的左上圆角大小。 -
- -
- cornerTR:Number - — 圆角矩形的右上圆角大小。 -
- -
- cornerBR:Number - — 圆角矩形的右下圆角大小。 -
- -
- cornerBL:Number - — 圆角矩形的左下圆角大小。 -
- -
- - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - drawSVGPath(pathData:String):Graphics -
-
根据参数指定的SVG数据绘制一条路径。 -代码示例: -

var path = 'M250 150 L150 350 L350 350 Z';

-

var shape = new Hilo.Graphics({width:500, height:500});

-

shape.drawSVGPath(path).beginFill('#0ff').endFill();

- - - - -
-
parameters
- -
- pathData:String - — 要绘制的SVG路径数据。 -
- -
- - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - endFill():Graphics -
-
应用并结束笔画的绘制和图形样式的填充。
- - - - - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - lineStyle(thickness:Number, lineColor:String, lineAlpha:Number, lineCap:String, lineJoin:String, miterLimit:Number):Graphics -
-
指定绘制图形的线条样式。
- - - - -
-
parameters
- -
- thickness:Number - — 线条的粗细值。默认为1。 -
- -
- lineColor:String - — 线条的CSS颜色值。默认为黑色,即'0'。 -
- -
- lineAlpha:Number - — 线条的透明度值。默认为不透明,即1。 -
- -
- lineCap:String - — 线条的端部样式。可选值有:butt、round、square等,默认值为null。 -
- -
- lineJoin:String - — 线条的连接样式。可选值有:miter、round、bevel等,默认值为null。 -
- -
- miterLimit:Number - — 斜连线长度和线条宽度的最大比率。此属性仅当lineJoin为miter时有效。默认值为10。 -
- -
- - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - lineTo(x:Number, y:Number):Graphics -
-
绘制从当前位置开始到点(x, y)结束的直线。
- - - - -
-
parameters
- -
- x:Number - — x轴坐标。 -
- -
- y:Number - — y轴坐标。 -
- -
- - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - moveTo(x:Number, y:Number):Graphics -
-
将当前绘制位置移动到点(x, y)。
- - - - -
-
parameters
- -
- x:Number - — x轴坐标。 -
- -
- y:Number - — y轴坐标。 -
- -
- - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - -
-
- - quadraticCurveTo(cpx:Number, cpy:Number, x:Number, y:Number):Graphics -
-
绘制从当前位置开始到点(x, y)结束的二次曲线。
- - - - -
-
parameters
- -
- cpx:Number - — 控制点cp的x轴坐标。 -
- -
- cpy:Number - — 控制点cp的y轴坐标。 -
- -
- x:Number - — x轴坐标。 -
- -
- y:Number - — y轴坐标。 -
- -
- - - - - -
-
return
- -
Graphics — Graphics对象本身。
- -
- - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/HTMLAudio.html b/docs/api/symbols/HTMLAudio.html deleted file mode 100644 index fc0be92d..00000000 --- a/docs/api/symbols/HTMLAudio.html +++ /dev/null @@ -1,1025 +0,0 @@ - - - - - - - -HTMLAudio - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - HTMLAudio -


- - -

- - - - - - - - - 模块 hilo/media/HTMLAudio - - - - - - 依赖 - hilo/core/Hilo, hilo/core/Class, hilo/event/EventMixin - - - - - 源码 - HTMLAudio.js - - -
- HTMLAudio声音播放模块。此模块使用HTMLAudioElement播放音频。 -使用限制:iOS平台需用户事件触发才能播放,很多Android浏览器仅能同时播放一个音频。 - - -

- - - - - -
-

属性概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - autoPlay:Boolean -
-
- - 是否自动播放。默认为false。 -
-
- HTMLAudio -
- - -
- - duration:Number -
-
- - 音频的时长。只读属性。 -
-
- HTMLAudio -
- - -
- - loaded:Boolean -
-
- - 音频资源是否已加载完成。只读属性。 -
-
- HTMLAudio -
- - -
- - loop:Boolean -
-
- - 是否循环播放。默认为false。 -
-
- HTMLAudio -
- - -
- - muted:Boolean -
-
- - 是否静音。默认为false。 -
-
- HTMLAudio -
- - -
- - playing:Boolean -
-
- - 是否正在播放音频。只读属性。 -
-
- HTMLAudio -
- - -
- - src:String -
-
- - 播放的音频的资源地址。 -
-
- HTMLAudio -
- - -
- - volume:Number -
-
- - 音量的大小。取值范围:0-1。 -
-
- HTMLAudio -
- - -
- - isSupported -
-
- static - 浏览器是否支持HTMLAudio。 -
-
- HTMLAudio -
- - - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- HTMLAudio(properties:Object) -
-
构造函数。
-
HTMLAudio
- - -
load() -
-
- - 加载音频文件。 -
-
- HTMLAudio -
- - -
pause() -
-
- - 暂停音频。 -
-
- HTMLAudio -
- - -
play() -
-
- - 播放音频。如果正在播放,则会重新开始。 -注意:为了避免第一次播放不成功,建议在load音频后再播放。 -
-
- HTMLAudio -
- - -
resume() -
-
- - 恢复音频播放。 -
-
- HTMLAudio -
- - -
setMute(muted) -
-
- - 设置静音模式。注意: iOS设备无法设置静音模式。 -
-
- HTMLAudio -
- - -
setVolume(volume) -
-
- - 设置音量。注意: iOS设备无法设置音量。 -
-
- HTMLAudio -
- - -
stop() -
-
- - 停止音频播放。 -
-
- HTMLAudio -
- - - - - - - -
-
-

属性详情

-
- - -
-
- autoPlay:Boolean - -
-
- 是否自动播放。默认为false。 -
- - - - - - - - -
- - -
-
- duration:Number - -
-
- 音频的时长。只读属性。 -
- - - - - - - - -
- - -
-
[Static] - isSupported - -
-
- 浏览器是否支持HTMLAudio。 -
- - - - - - - - -
- - -
-
- loaded:Boolean - -
-
- 音频资源是否已加载完成。只读属性。 -
- - - - - - - - -
- - -
-
- loop:Boolean - -
-
- 是否循环播放。默认为false。 -
- - - - - - - - -
- - -
-
- muted:Boolean - -
-
- 是否静音。默认为false。 -
- - - - - - - - -
- - -
-
- playing:Boolean - -
-
- 是否正在播放音频。只读属性。 -
- - - - - - - - -
- - -
-
- src:String - -
-
- 播放的音频的资源地址。 -
- - - - - - - - -
- - -
-
- volume:Number - -
-
- 音量的大小。取值范围:0-1。 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- HTMLAudio(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。 -
- -
- -
-
- - - - -
-

方法详情

- - -
-
- - load() -
-
加载音频文件。
- - - - - - - - - - - -
- - -
-
- - pause() -
-
暂停音频。
- - - - - - - - - - - -
- - -
-
- - play() -
-
播放音频。如果正在播放,则会重新开始。 -注意:为了避免第一次播放不成功,建议在load音频后再播放。
- - - - - - - - - - - -
- - -
-
- - resume() -
-
恢复音频播放。
- - - - - - - - - - - -
- - -
-
- - setMute(muted) -
-
设置静音模式。注意: iOS设备无法设置静音模式。
- - - - -
-
parameters
- -
- muted - — -
- -
- - - - - - - - -
- - -
-
- - setVolume(volume) -
-
设置音量。注意: iOS设备无法设置音量。
- - - - -
-
parameters
- -
- volume - — -
- -
- - - - - - - - -
- - -
-
- - stop() -
-
停止音频播放。
- - - - - - - - - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/Hilo.html b/docs/api/symbols/Hilo.html deleted file mode 100644 index 462397af..00000000 --- a/docs/api/symbols/Hilo.html +++ /dev/null @@ -1,915 +0,0 @@ - - - - - - - -Hilo - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - Hilo -


- - -

- - - - - - - - - 模块 hilo/core/Hilo - - - - - - - 源码 - Hilo.js - - -
- Hilo的基础核心方法集合。 - - -

- - - - - -
-

属性概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - browser -
-
- static - 浏览器特性集合。包括: -
    -
  • jsVendor - 浏览器厂商CSS前缀的js值。比如:webkit。
  • -
  • cssVendor - 浏览器厂商CSS前缀的css值。比如:-webkit-。
  • -
  • supportTransform - 是否支持CSS Transform变换。
  • -
  • supportTransform3D - 是否支持CSS Transform 3D变换。
  • -
  • supportStorage - 是否支持本地存储localStorage。
  • -
  • supportTouch - 是否支持触碰事件。
  • -
  • supportCanvas - 是否支持canvas元素。
  • -
-
-
- Hilo -
- - -
- - event -
-
- static - 事件类型枚举对象。包括: -
    -
  • POINTER_START - 鼠标或触碰开始事件。对应touchstart或mousedown。
  • -
  • POINTER_MOVE - 鼠标或触碰移动事件。对应touchmove或mousemove。
  • -
  • POINTER_END - 鼠标或触碰结束事件。对应touchend或mouseup。
  • -
-
-
- Hilo -
- - -
- - align -
-
- static - 可视对象对齐方式枚举对象。包括: -
    -
  • TOP_LEFT - 左上角对齐。
  • -
  • TOP - 顶部居中对齐。
  • -
  • TOP_RIGHT - 右上角对齐。
  • -
  • LEFT - 左边居中对齐。
  • -
  • CENTER - 居中对齐。
  • -
  • RIGHT - 右边居中对齐。
  • -
  • BOTTOM_LEFT - 左下角对齐。
  • -
  • BOTTOM - 底部居中对齐。
  • -
  • BOTTOM_RIGHT - 右下角对齐。
  • -
-
-
- Hilo -
- - - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
- - -
getElementRect(elem:HTMLElement):Object -
-
- static - 获取DOM元素在页面中的内容显示区域。 -
-
- Hilo -
- - -
createElement(type:String, properties:Object):HTMLElement -
-
- static - 创建一个DOM元素。可指定属性和样式。 -
-
- Hilo -
- - -
viewToString(view:View):String -
-
- static - 为指定的可视对象生成一个包含路径的字符串表示形式。如Stage1.Container2.Bitmap3。 -
-
- Hilo -
- - -
getUid(prefix:String):String -
-
- static - 获取一个全局唯一的id。如Stage1,Bitmap2等。 -
-
- Hilo -
- - -
getElement(id:String):HTMLElement -
-
- static - 根据参数id获取一个DOM元素。此方法等价于document.getElementById(id)。 -
-
- Hilo -
- - -
copy(target:Object, source:Object, strict:Boolean):Object -
-
- static - 简单的浅复制对象。 -
-
- Hilo -
- - -
getTransformCSS(obj:View):String -
-
- static - 生成可视对象的CSS变换样式。 -
-
- Hilo -
- - - - - - - -
-
-

属性详情

-
- - -
-
[Static] - align - -
-
- 可视对象对齐方式枚举对象。包括: -
    -
  • TOP_LEFT - 左上角对齐。
  • -
  • TOP - 顶部居中对齐。
  • -
  • TOP_RIGHT - 右上角对齐。
  • -
  • LEFT - 左边居中对齐。
  • -
  • CENTER - 居中对齐。
  • -
  • RIGHT - 右边居中对齐。
  • -
  • BOTTOM_LEFT - 左下角对齐。
  • -
  • BOTTOM - 底部居中对齐。
  • -
  • BOTTOM_RIGHT - 右下角对齐。
  • -
-
- - - - - - - - -
- - -
-
[Static] - browser - -
-
- 浏览器特性集合。包括: -
    -
  • jsVendor - 浏览器厂商CSS前缀的js值。比如:webkit。
  • -
  • cssVendor - 浏览器厂商CSS前缀的css值。比如:-webkit-。
  • -
  • supportTransform - 是否支持CSS Transform变换。
  • -
  • supportTransform3D - 是否支持CSS Transform 3D变换。
  • -
  • supportStorage - 是否支持本地存储localStorage。
  • -
  • supportTouch - 是否支持触碰事件。
  • -
  • supportCanvas - 是否支持canvas元素。
  • -
-
- - - - - - - - -
- - -
-
[Static] - event - -
-
- 事件类型枚举对象。包括: -
    -
  • POINTER_START - 鼠标或触碰开始事件。对应touchstart或mousedown。
  • -
  • POINTER_MOVE - 鼠标或触碰移动事件。对应touchmove或mousemove。
  • -
  • POINTER_END - 鼠标或触碰结束事件。对应touchend或mouseup。
  • -
-
- - - - - - - - -
- - - - - - - - -
-

方法详情

- - -
-
- [Static] - copy(target:Object, source:Object, strict:Boolean):Object -
-
简单的浅复制对象。
- - - - -
-
parameters
- -
- target:Object - — 要复制的目标对象。 -
- -
- source:Object - — 要复制的源对象。 -
- -
- strict:Boolean - — 指示是否复制未定义的属性,默认为false,即不复制未定义的属性。 -
- -
- - - - - -
-
return
- -
Object — 复制后的对象。
- -
- - - - -
- - -
-
- [Static] - createElement(type:String, properties:Object):HTMLElement -
-
创建一个DOM元素。可指定属性和样式。
- - - - -
-
parameters
- -
- type:String - — 要创建的DOM元素的类型。比如:'div'。 -
- -
- properties:Object - — 指定DOM元素的属性和样式。 -
- -
- - - - - -
-
return
- -
HTMLElement — 一个DOM元素。
- -
- - - - -
- - -
-
- [Static] - getElement(id:String):HTMLElement -
-
根据参数id获取一个DOM元素。此方法等价于document.getElementById(id)。
- - - - -
-
parameters
- -
- id:String - — 要获取的DOM元素的id。 -
- -
- - - - - -
-
return
- -
HTMLElement — 一个DOM元素。
- -
- - - - -
- - -
-
- [Static] - getElementRect(elem:HTMLElement):Object -
-
获取DOM元素在页面中的内容显示区域。
- - - - -
-
parameters
- -
- elem:HTMLElement - — DOM元素。 -
- -
- - - - - -
-
return
- -
Object — DOM元素的可视区域。格式为:{left:0, top:0, width:100, height:100}。
- -
- - - - -
- - -
-
- [Static] - getTransformCSS(obj:View):String -
-
生成可视对象的CSS变换样式。
- - - - -
-
parameters
- -
- obj:View - — 指定生成CSS变换样式的可视对象。 -
- -
- - - - - -
-
return
- -
String — 生成的CSS样式字符串。
- -
- - - - -
- - -
-
- [Static] - getUid(prefix:String):String -
-
获取一个全局唯一的id。如Stage1,Bitmap2等。
- - - - -
-
parameters
- -
- prefix:String - — 生成id的前缀。 -
- -
- - - - - -
-
return
- -
String — 全局唯一id。
- -
- - - - -
- - -
-
- [Static] - viewToString(view:View):String -
-
为指定的可视对象生成一个包含路径的字符串表示形式。如Stage1.Container2.Bitmap3。
- - - - -
-
parameters
- -
- view:View - — 指定的可视对象。 -
- -
- - - - - -
-
return
- -
String — 可视对象的字符串表示形式。
- -
- - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/LoadQueue.html b/docs/api/symbols/LoadQueue.html deleted file mode 100644 index a4d2a72c..00000000 --- a/docs/api/symbols/LoadQueue.html +++ /dev/null @@ -1,785 +0,0 @@ - - - - - - - -LoadQueue - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - LoadQueue -


- - -

- - - - - - - - - 模块 hilo/loader/LoadQueue - - - - - - 依赖 - hilo/core/Class, hilo/event/EventMixin, hilo/loader/ImageLoader, hilo/loader/ScriptLoader - - - - - 源码 - LoadQueue.js - - -
- LoadQueue是一个队列下载工具。 - - -

- - - - - -
-

属性概览

- -
- - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - maxConnections:Int -
-
- - 同时下载的最大连接数。默认为2。 -
-
- LoadQueue -
- - - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- LoadQueue(source:Object) -
-
构造函数。
-
LoadQueue
- - -
add(source:Object|Array):LoadQueue -
-
- - 增加要下载的资源。可以是单个资源对象或多个资源的数组。 -
-
- LoadQueue -
- - -
get(id:String):Object -
-
- - 根据id或src地址获取资源对象。 -
-
- LoadQueue -
- - -
getContent(id:String):Object -
-
- - 根据id或src地址获取资源内容。 -
-
- LoadQueue -
- - -
getLoaded():Uint -
-
- - 获取已下载的资源数量。 -
-
- LoadQueue -
- - -
getSize(loaded:Boolean):Number -
-
- - 获取全部或已下载的资源的字节大小。 -
-
- LoadQueue -
- - -
getTotal():Uint -
-
- - 获取所有资源的数量。 -
-
- LoadQueue -
- - -
start():LoadQueue -
-
- - 开始下载队列。 -
-
- LoadQueue -
- - - - - - - -
-
-

属性详情

-
- - -
-
- maxConnections:Int - -
-
- 同时下载的最大连接数。默认为2。 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- LoadQueue(source:Object) -
- - -
-
parameters
- -
- source:Object - — 要下载的资源。可以是单个资源对象或多个资源的数组。 -
- -
- -
-
- - - - -
-

方法详情

- - -
-
- - add(source:Object|Array):LoadQueue -
-
增加要下载的资源。可以是单个资源对象或多个资源的数组。
- - - - -
-
parameters
- -
- source:Object|Array - — 资源对象或资源对象数组。每个资源对象包含以下属性: -
    -
  • id - 资源的唯一标识符。可用于从下载队列获取目标资源。
  • -
  • src - 资源的地址url。
  • -
  • type - 指定资源的类型。默认会根据资源文件的后缀来自动判断类型,不同的资源类型会使用不同的加载器来加载资源。
  • -
  • loader - 指定资源的加载器。默认会根据资源类型来自动选择加载器,若指定loader,则会使用指定的loader来加载资源。
  • -
  • noCache - 指示加载资源时是否增加时间标签以防止缓存。
  • -
  • size - 资源对象的预计大小。可用于预估下载进度。
  • -
-
- -
- - - - - -
-
return
- -
LoadQueue — 下载队列实例本身。
- -
- - - - -
- - -
-
- - get(id:String):Object -
-
根据id或src地址获取资源对象。
- - - - -
-
parameters
- -
- id:String - — 指定资源的id或src。 -
- -
- - - - - -
-
return
- -
Object — 资源对象。
- -
- - - - -
- - -
-
- - getContent(id:String):Object -
-
根据id或src地址获取资源内容。
- - - - -
-
parameters
- -
- id:String - — 指定资源的id或src。 -
- -
- - - - - -
-
return
- -
Object — 资源内容。
- -
- - - - -
- - -
-
- - getLoaded():Uint -
-
获取已下载的资源数量。
- - - - - - - - -
-
return
- -
Uint — 已下载的资源数量。
- -
- - - - -
- - -
-
- - getSize(loaded:Boolean):Number -
-
获取全部或已下载的资源的字节大小。
- - - - -
-
parameters
- -
- loaded:Boolean - — 指示是已下载的资源还是全部资源。默认为全部。 -
- -
- - - - - -
-
return
- -
Number — 指定资源的字节大小。
- -
- - - - -
- - -
-
- - getTotal():Uint -
-
获取所有资源的数量。
- - - - - - - - -
-
return
- -
Uint — 所有资源的数量。
- -
- - - - -
- - -
-
- - start():LoadQueue -
-
开始下载队列。
- - - - - - - - -
-
return
- -
LoadQueue — 下载队列实例本身。
- -
- - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/Matrix.html b/docs/api/symbols/Matrix.html deleted file mode 100644 index a1f514a5..00000000 --- a/docs/api/symbols/Matrix.html +++ /dev/null @@ -1,750 +0,0 @@ - - - - - - - -Matrix - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - Matrix -


- - -

- - - - - - - - - 模块 hilo/geom/Matrix - - - - - - 依赖 - hilo/core/Class - - - - - 源码 - Matrix.js - - -
- Matrix类表示一个转换矩阵,它确定如何将点从一个坐标空间映射到另一个坐标空间。 - - -

- - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- Matrix(a:Number, b:Number, c:Number, d:Number, tx:Number, ty:Number) -
-
构造函数。
-
Matrix
- - -
concat(mtx:Matrix):Matrix -
-
- - 将某个矩阵与当前矩阵连接,从而将这两个矩阵的几何效果有效地结合在一起。 -
-
- Matrix -
- - -
identity():Matrix -
-
- - 为每个矩阵属性设置一个值,该值将导致 null 转换。通过应用恒等矩阵转换的对象将与原始对象完全相同。 -
-
- Matrix -
- - -
invert():Matrix -
-
- - 执行原始矩阵的逆转换。您可以将一个逆矩阵应用于对象来撤消在应用原始矩阵时执行的转换。 -
-
- Matrix -
- - -
rotate(angle:Number):Matrix -
-
- - 对 Matrix 对象应用旋转转换。 -
-
- Matrix -
- - -
scale(sx:Number, sy:Number):Matrix -
-
- - 对矩阵应用缩放转换。 -
-
- Matrix -
- - -
transformPoint(point:Object, round:Boolean, returnNew:Boolean):Object -
-
- - 返回将 Matrix 对象表示的几何转换应用于指定点所产生的结果。 -
-
- Matrix -
- - -
translate(dx:Number, dy:Number):Matrix -
-
- - 沿 x 和 y 轴平移矩阵,由 dx 和 dy 参数指定。 -
-
- Matrix -
- - - - - - - - - - -
-
- -
-

构造函数

-
-
-
- Matrix(a:Number, b:Number, c:Number, d:Number, tx:Number, ty:Number) -
- - -
-
parameters
- -
- a:Number - — 缩放或旋转图像时影响像素沿 x 轴定位的值。 -
- -
- b:Number - — 旋转或倾斜图像时影响像素沿 y 轴定位的值。 -
- -
- c:Number - — 旋转或倾斜图像时影响像素沿 x 轴定位的值。 -
- -
- d:Number - — 缩放或旋转图像时影响像素沿 y 轴定位的值。 -
- -
- tx:Number - — 沿 x 轴平移每个点的距离。 -
- -
- ty:Number - — 沿 y 轴平移每个点的距离。 -
- -
- -
-
- - - - -
-

方法详情

- - -
-
- - concat(mtx:Matrix):Matrix -
-
将某个矩阵与当前矩阵连接,从而将这两个矩阵的几何效果有效地结合在一起。
- - - - -
-
parameters
- -
- mtx:Matrix - — 要连接到源矩阵的矩阵。 -
- -
- - - - - -
-
return
- -
Matrix — 一个Matrix对象。
- -
- - - - -
- - -
-
- - identity():Matrix -
-
为每个矩阵属性设置一个值,该值将导致 null 转换。通过应用恒等矩阵转换的对象将与原始对象完全相同。
- - - - - - - - -
-
return
- -
Matrix — 一个Matrix对象。
- -
- - - - -
- - -
-
- - invert():Matrix -
-
执行原始矩阵的逆转换。您可以将一个逆矩阵应用于对象来撤消在应用原始矩阵时执行的转换。
- - - - - - - - -
-
return
- -
Matrix — 一个Matrix对象。
- -
- - - - -
- - -
-
- - rotate(angle:Number):Matrix -
-
对 Matrix 对象应用旋转转换。
- - - - -
-
parameters
- -
- angle:Number - — 旋转的角度。 -
- -
- - - - - -
-
return
- -
Matrix — 一个Matrix对象。
- -
- - - - -
- - -
-
- - scale(sx:Number, sy:Number):Matrix -
-
对矩阵应用缩放转换。
- - - - -
-
parameters
- -
- sx:Number - — 用于沿 x 轴缩放对象的乘数。 -
- -
- sy:Number - — 用于沿 y 轴缩放对象的乘数。 -
- -
- - - - - -
-
return
- -
Matrix — 一个Matrix对象。
- -
- - - - -
- - -
-
- - transformPoint(point:Object, round:Boolean, returnNew:Boolean):Object -
-
返回将 Matrix 对象表示的几何转换应用于指定点所产生的结果。
- - - - -
-
parameters
- -
- point:Object - — 想要获得其矩阵转换结果的点。 -
- -
- round:Boolean - — 是否对点的坐标进行向上取整。 -
- -
- returnNew:Boolean - — 是否返回一个新的点。 -
- -
- - - - - -
-
return
- -
Object — 由应用矩阵转换所产生的点。
- -
- - - - -
- - -
-
- - translate(dx:Number, dy:Number):Matrix -
-
沿 x 和 y 轴平移矩阵,由 dx 和 dy 参数指定。
- - - - -
-
parameters
- -
- dx:Number - — 沿 x 轴向右移动的量(以像素为单位)。 -
- -
- dy:Number - — 沿 y 轴向右移动的量(以像素为单位)。 -
- -
- - - - - -
-
return
- -
Matrix — 一个Matrix对象。
- -
- - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/ParticleSystem.html b/docs/api/symbols/ParticleSystem.html deleted file mode 100644 index 9b685426..00000000 --- a/docs/api/symbols/ParticleSystem.html +++ /dev/null @@ -1,979 +0,0 @@ - - - - - - - -ParticleSystem - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - ParticleSystem -


- - -

- - - - - - - - - 模块 hilo/game/ParticleSystem - - - - - - 依赖 - hilo/core/Hilo, hilo/core/Class, hilo/view/View, hilo/view/Container, hilo/view/Bitmap, hilo/view/Drawable - - - - - 源码 - ParticleSystem.js - - -
- 粒子系统 - -

-
- - -

- - - - - -
-

属性概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - emitNum:Number -
-
- - 每次发射数量变化量 -
-
- ParticleSystem -
- - -
- - emitNumVar:Number -
-
- - 每次发射数量 -
-
- ParticleSystem -
- - -
- - emitterX:Number -
-
- - 发射器位置x -
-
- ParticleSystem -
- - -
- - emitterY:Number -
-
- - 发射器位置y -
-
- ParticleSystem -
- - -
- - emitTime:Number -
-
- - 发射间隔 -
-
- ParticleSystem -
- - -
- - emitTimeVar:Number -
-
- - 发射间隔变化量 -
-
- ParticleSystem -
- - -
- - gx:Number -
-
- - 重力加速度x -
-
- ParticleSystem -
- - -
- - gy:Number -
-
- - 重力加速度y -
-
- ParticleSystem -
- - -
- - totalTime:Number -
-
- - 总时间 -
-
- ParticleSystem -
- - - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- ParticleSystem(properties:Object) -
-
构造函数。
-
ParticleSystem
- - -
onUpdate(dt:Number) -
-
- - 更新 -
-
- ParticleSystem -
- - -
reset(cfg:Object) -
-
- - 重置属性 -
-
- ParticleSystem -
- - -
start() -
-
- - 开始 -
-
- ParticleSystem -
- - -
stop(clear:Boolean) -
-
- - 停止 -
-
- ParticleSystem -
- - - - - - - -
-
-

属性详情

-
- - -
-
- emitNum:Number - -
-
- 每次发射数量变化量 -
- - - - - - - - -
- - -
-
- emitNumVar:Number - -
-
- 每次发射数量 -
- - - - - - - - -
- - -
-
- emitterX:Number - -
-
- 发射器位置x -
- - - - - - - - -
- - -
-
- emitterY:Number - -
-
- 发射器位置y -
- - - - - - - - -
- - -
-
- emitTime:Number - -
-
- 发射间隔 -
- - - - - - - - -
- - -
-
- emitTimeVar:Number - -
-
- 发射间隔变化量 -
- - - - - - - - -
- - -
-
- gx:Number - -
-
- 重力加速度x -
- - - - - - - - -
- - -
-
- gy:Number - -
-
- 重力加速度y -
- - - - - - - - -
- - -
-
- totalTime:Number - -
-
- 总时间 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- ParticleSystem(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。 -
- -
- properties.particle:Object - — 粒子属性配置 -
- -
- properties.particle.x:Number - — x位置 -
- -
- properties.particle.y:Number - — y位置 -
- -
- properties.particle.vx:Number - — x速度 -
- -
- properties.particle.vy:Number - — y速度 -
- -
- properties.particle.ax:Number - — x加速度 -
- -
- properties.particle.ay:Number - — y加速度 -
- -
- properties.particle.life:Number - — 粒子存活时间 单位s -
- -
- properties.particle.alpha:Number - — 透明度 -
- -
- properties.particle.alphaV:Number - — 透明度变化 -
- -
- properties.particle.scale:Number - — 缩放 -
- -
- properties.particle.scaleV:Number - — 缩放变化速度 -
- -
- -
-
- - - - -
-

方法详情

- - -
-
- - onUpdate(dt:Number) -
-
更新
- - - - -
-
parameters
- -
- dt:Number - — 间隔时间 单位ms -
- -
- - - - - - - - -
- - -
-
- - reset(cfg:Object) -
-
重置属性
- - - - -
-
parameters
- -
- cfg:Object - — -
- -
- - - - - - - - -
- - -
-
- - start() -
-
开始
- - - - - - - - - - - -
- - -
-
- - stop(clear:Boolean) -
-
停止
- - - - -
-
parameters
- -
- clear:Boolean - — 是否清除所有粒子 -
- -
- - - - - - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/Renderer.html b/docs/api/symbols/Renderer.html deleted file mode 100644 index 86f9d11a..00000000 --- a/docs/api/symbols/Renderer.html +++ /dev/null @@ -1,884 +0,0 @@ - - - - - - - -Renderer - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - Renderer -


- - -

- - - - - - - - - 模块 hilo/renderer/Renderer - - - - - - 依赖 - hilo/core/Hilo, hilo/core/Class - - - - - 源码 - Renderer.js - - -
- 渲染器抽象基类。 - - -

- - - - - -
-

属性概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - canvas:Object -
-
- - 渲染器对应的画布。它可能是一个普通的DOM元素,比如div,也可以是一个canvas画布元素。只读属性。 -
-
- Renderer -
- - -
- - renderType:String -
-
- - 渲染方式。只读属性。 -
-
- Renderer -
- - -
- - stage:Object -
-
- - 渲染器对应的舞台。只读属性。 -
-
- Renderer -
- - - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- Renderer(properties:Object) -
-
构造函数。
-
Renderer
- - -
clear(x:Number, y:Number, width:Number, height:Number) -
-
- - 清除画布指定区域。需要子类来实现。 -
-
- Renderer -
- - -
draw(target:View) -
-
- - 绘制可视对象。需要子类来实现。 -
-
- Renderer -
- - -
endDraw(target:View) -
-
- - 结束绘制可视对象后的后续处理方法。需要子类来实现。 -
-
- Renderer -
- - -
hide() -
-
- - 隐藏可视对象。需要子类来实现。 -
-
- Renderer -
- - -
remove(target:View) -
-
- - 从画布中删除可视对象。注意:不是从stage中删除对象。需要子类来实现。 -
-
- Renderer -
- - -
resize(width:Number, height:Number) -
-
- - 改变渲染器的画布大小。 -
-
- Renderer -
- - -
startDraw(target:View) -
-
- - 为开始绘制可视对象做准备。需要子类来实现。 -
-
- Renderer -
- - - -
- - 对可视对象进行变换。需要子类来实现。 -
-
- Renderer -
- - - - - - - -
-
-

属性详情

-
- - -
-
- canvas:Object - -
-
- 渲染器对应的画布。它可能是一个普通的DOM元素,比如div,也可以是一个canvas画布元素。只读属性。 -
- - - - - - - - -
- - -
-
- renderType:String - -
-
- 渲染方式。只读属性。 -
- - - - - - - - -
- - -
-
- stage:Object - -
-
- 渲染器对应的舞台。只读属性。 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- Renderer(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。 -
- -
- -
-
- - - - -
-

方法详情

- - -
-
- - clear(x:Number, y:Number, width:Number, height:Number) -
-
清除画布指定区域。需要子类来实现。
- - - - -
-
parameters
- -
- x:Number - — 指定区域的x轴坐标。 -
- -
- y:Number - — 指定区域的y轴坐标。 -
- -
- width:Number - — 指定区域的宽度。 -
- -
- height:Number - — 指定区域的高度。 -
- -
- - - - - - - - -
- - -
-
- - draw(target:View) -
-
绘制可视对象。需要子类来实现。
- - - - -
-
parameters
- -
- target:View - — 要绘制的可视对象。 -
- -
- - - - - - - - -
- - -
-
- - endDraw(target:View) -
-
结束绘制可视对象后的后续处理方法。需要子类来实现。
- - - - -
-
parameters
- -
- target:View - — 要绘制的可视对象。 -
- -
- - - - - - - - -
- - -
-
- - hide() -
-
隐藏可视对象。需要子类来实现。
- - - - - - - - - - - -
- - -
-
- - remove(target:View) -
-
从画布中删除可视对象。注意:不是从stage中删除对象。需要子类来实现。
- - - - -
-
parameters
- -
- target:View - — 要删除的可视对象。 -
- -
- - - - - - - - -
- - -
-
- - resize(width:Number, height:Number) -
-
改变渲染器的画布大小。
- - - - -
-
parameters
- -
- width:Number - — 指定渲染画布新的宽度。 -
- -
- height:Number - — 指定渲染画布新的高度。 -
- -
- - - - - - - - -
- - -
-
- - startDraw(target:View) -
-
为开始绘制可视对象做准备。需要子类来实现。
- - - - -
-
parameters
- -
- target:View - — 要绘制的可视对象。 -
- -
- - - - - - - - -
- - -
-
- - transform() -
-
对可视对象进行变换。需要子类来实现。
- - - - - - - - - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/Sprite.html b/docs/api/symbols/Sprite.html deleted file mode 100644 index 08beabdb..00000000 --- a/docs/api/symbols/Sprite.html +++ /dev/null @@ -1,1718 +0,0 @@ - - - - - - - -Sprite - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - Sprite -


- - -

- - - - - - 继承 Sprite - View - - - - - - - 模块 hilo/view/Sprite - - - - - - 依赖 - hilo/core/Hilo, hilo/core/Class, hilo/view/View, hilo/view/Drawable - - - - - 源码 - Sprite.js - - -
- 动画精灵类。 - -

-
- - -

- - - - - -
-

属性概览

- - 显示继承属性 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - currentFrame:number -
-
- - 当前播放帧的索引。从0开始。只读属性。 -
-
- Sprite -
- - -
- - interval:number -
-
- - 精灵动画的帧间隔。如果timeBased为true,则单位为毫秒,否则为帧数。 -
-
- Sprite -
- - -
- - loop:boolean -
-
- - 判断精灵是否可以循环播放。默认为true。 -
-
- Sprite -
- - -
- - onEnterFrame:Function -
-
- - 精灵动画的播放头进入新帧时的回调方法。默认值为null。此方法已废弃,请使用addFrameCallback方法。 -
-
- Sprite -
- - -
- - paused:boolean -
-
- - 判断精灵是否暂停。默认为false。 -
-
- Sprite -
- - -
- - timeBased:boolean -
-
- - 指定精灵动画是否是以时间为基准。默认为false,即以帧为基准。 -
-
- Sprite -
- - - - - - - - - -
-

方法概览

- - 显示继承方法 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- Sprite(properties) -
-
构造函数。
-
Sprite
- - -
addFrame(frame:Object, startIndex:Int):Sprite -
-
- - 往精灵动画序列中增加帧。 -
-
- Sprite -
- - -
getFrame(indexOrName:Object):Object -
-
- - 获取精灵动画序列中指定的帧。 -
-
- Sprite -
- - -
getFrameIndex(frameValue:Object):Object -
-
- - 获取精灵动画序列中指定帧的索引位置。 -
-
- Sprite -
- - -
getNumFrames():Uint -
-
- - 返回精灵动画的总帧数。 -
-
- Sprite -
- - -
goto(indexOrName:Object, pause:Boolean):Sprite -
-
- - 跳转精灵动画到指定的帧。 -
-
- Sprite -
- - -
play():Sprite -
-
- - 播放精灵动画。 -
-
- Sprite -
- - -
setFrame(frame:Object, index:Int):Sprite -
-
- - 设置精灵动画序列指定索引位置的帧。 -
-
- Sprite -
- - -
setFrameCallback(frame:Int|String, callback:Function):Sprite -
-
- - 设置指定帧的回调函数。即每当播放头进入指定帧时调用callback函数。若callback为空,则会删除回调函数。 -
-
- Sprite -
- - -
stop():Sprite -
-
- - 暂停播放精灵动画。 -
-
- Sprite -
- - - - - - - -
-
-

属性详情

-
- - -
-
- currentFrame:number - -
-
- 当前播放帧的索引。从0开始。只读属性。 -
- - - - - - - - -
- - -
-
- interval:number - -
-
- 精灵动画的帧间隔。如果timeBased为true,则单位为毫秒,否则为帧数。 -
- - - - - - - - -
- - -
-
- loop:boolean - -
-
- 判断精灵是否可以循环播放。默认为true。 -
- - - - - - - - -
- - -
-
- onEnterFrame:Function - -
-
- 精灵动画的播放头进入新帧时的回调方法。默认值为null。此方法已废弃,请使用addFrameCallback方法。 -
- - - - - - - - -
- - -
-
- paused:boolean - -
-
- 判断精灵是否暂停。默认为false。 -
- - - - - - - - -
- - -
-
- timeBased:boolean - -
-
- 指定精灵动画是否是以时间为基准。默认为false,即以帧为基准。 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- Sprite(properties) -
- - -
-
parameters
- -
- properties - — 创建对象的属性参数。可包含此类所有可写属性。此外还包括: -
    -
  • frames - 精灵动画的帧数据对象。
  • -
-
- -
- -
-
- - - - -
-

方法详情

- - -
-
- - addFrame(frame:Object, startIndex:Int):Sprite -
-
往精灵动画序列中增加帧。
- - - - -
-
parameters
- -
- frame:Object - — 要增加的精灵动画帧数据。 -
- -
- startIndex:Int - — 开始增加帧的索引位置。若不设置,默认为在末尾添加。 -
- -
- - - - - -
-
return
- -
Sprite — Sprite对象本身。
- -
- - - - -
- - -
-
- - getFrame(indexOrName:Object):Object -
-
获取精灵动画序列中指定的帧。
- - - - -
-
parameters
- -
- indexOrName:Object - — 要获取的帧的索引位置或别名。 -
- -
- - - - - -
-
return
- -
Object — 精灵帧对象。
- -
- - - - -
- - -
-
- - getFrameIndex(frameValue:Object):Object -
-
获取精灵动画序列中指定帧的索引位置。
- - - - -
-
parameters
- -
- frameValue:Object - — 要获取的帧的索引位置或别名。 -
- -
- - - - - -
-
return
- -
Object — 精灵帧对象。
- -
- - - - -
- - -
-
- - getNumFrames():Uint -
-
返回精灵动画的总帧数。
- - - - - - - - -
-
return
- -
Uint — 精灵动画的总帧数。
- -
- - - - -
- - -
-
- - goto(indexOrName:Object, pause:Boolean):Sprite -
-
跳转精灵动画到指定的帧。
- - - - -
-
parameters
- -
- indexOrName:Object - — 要跳转的帧的索引位置或别名。 -
- -
- pause:Boolean - — 指示跳转后是否暂停播放。 -
- -
- - - - - -
-
return
- -
Sprite — Sprite对象本身。
- -
- - - - -
- - -
-
- - play():Sprite -
-
播放精灵动画。
- - - - - - - - -
-
return
- -
Sprite — Sprite对象本身。
- -
- - - - -
- - -
-
- - setFrame(frame:Object, index:Int):Sprite -
-
设置精灵动画序列指定索引位置的帧。
- - - - -
-
parameters
- -
- frame:Object - — 要设置的精灵动画帧数据。 -
- -
- index:Int - — 要设置的索引位置。 -
- -
- - - - - -
-
return
- -
Sprite — Sprite对象本身。
- -
- - - - -
- - -
-
- - setFrameCallback(frame:Int|String, callback:Function):Sprite -
-
设置指定帧的回调函数。即每当播放头进入指定帧时调用callback函数。若callback为空,则会删除回调函数。
- - - - -
-
parameters
- -
- frame:Int|String - — 要指定的帧的索引位置或别名。 -
- -
- callback:Function - — 指定回调函数。 -
- -
- - - - - -
-
return
- -
Sprite — 精灵本身。
- -
- - - - -
- - -
-
- - stop():Sprite -
-
暂停播放精灵动画。
- - - - - - - - -
-
return
- -
Sprite — Sprite对象本身。
- -
- - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/Stage.html b/docs/api/symbols/Stage.html deleted file mode 100644 index 8f95497a..00000000 --- a/docs/api/symbols/Stage.html +++ /dev/null @@ -1,1763 +0,0 @@ - - - - - - - -Stage - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - Stage -


- - -

- - - - - - 继承 Stage - Container View - - - - - - - 模块 hilo/view/Stage - - - - - - 依赖 - hilo/core/Hilo, hilo/core/Class, hilo/view/Container, hilo/renderer/CanvasRenderer, hilo/renderer/DOMRenderer, hilo/renderer/WebGLRenderer - - - - - 源码 - Stage.js - - -
- 舞台是可视对象树的根,可视对象只有添加到舞台或其子对象后才会被渲染出来。创建一个hilo应用一般都是从创建一个stage开始的。 - -

示例: -

-var stage = new Hilo.Stage({
-    renderType:'canvas',
-    container: containerElement,
-    width: 320,
-    height: 480
-});
-
- - -

- - - - - -
-

属性概览

- - 显示继承属性 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - canvas:HTMLCanvasElement|HTMLElement -
-
- - 舞台所对应的画布。它可以是一个canvas或一个普通的div。只读属性。 -
-
- Stage -
- - -
- - paused:Boolean -
-
- - 指示舞台是否暂停刷新渲染。 -
-
- Stage -
- - -
- - renderer:Renderer -
-
- - 舞台渲染器。只读属性。 -
-
- Stage -
- - -
- - viewport:Object -
-
- - 舞台内容在页面中的渲染区域。包含的属性有:left、top、width、height。只读属性。 -
-
- Stage -
- - - - - - - - - -
-

方法概览

- - 显示继承方法 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- Stage(properties:Object) -
-
构造函数。
-
Stage
- - -
addTo(domElement:HTMLElement):Stage -
-
- - 添加舞台画布到DOM容器中。注意:此方法覆盖了View.addTo方法。 -
-
- Stage -
- - -
enableDOMEvent(type:String|Array, enabled:Boolean):Stage -
-
- - 开启/关闭舞台的DOM事件响应。要让舞台上的可视对象响应用户交互,必须先使用此方法开启舞台的相应事件的响应。 -
-
- Stage -
- - -
resize(width:Number, height:Number, forceResize:Boolean) -
-
- - 改变舞台的大小。 -
-
- Stage -
- - -
tick(delta:Number) -
-
- - 调用tick会触发舞台的更新和渲染。开发者一般无需使用此方法。 -
-
- Stage -
- - -
updateViewport():Object -
-
- - 更新舞台在页面中的可视区域,即渲染区域。当舞台canvas的样式border、margin、padding等属性更改后,需要调用此方法更新舞台渲染区域。 -
-
- Stage -
- - - - - - - -
-
-

属性详情

-
- - -
-
- canvas:HTMLCanvasElement|HTMLElement - -
-
- 舞台所对应的画布。它可以是一个canvas或一个普通的div。只读属性。 -
- - - - - - - - -
- - -
-
- paused:Boolean - -
-
- 指示舞台是否暂停刷新渲染。 -
- - - - - - - - -
- - -
-
- renderer:Renderer - -
-
- 舞台渲染器。只读属性。 -
- - - - - - - - -
- - -
-
- viewport:Object - -
-
- 舞台内容在页面中的渲染区域。包含的属性有:left、top、width、height。只读属性。 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- Stage(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。主要有: -
    -
  • container:String|HTMLElement - 指定舞台在页面中的父容器元素。它是一个dom容器或id。若不传入此参数且canvas未被加入到dom树,则需要在舞台创建后手动把舞台画布加入到dom树中,否则舞台不会被渲染。可选。
  • -
  • renderType:String - 指定渲染方式,canvas|dom|webgl,默认canvas。可选。
  • -
  • canvas:String|HTMLCanvasElement|HTMLElement - 指定舞台所对应的画布元素。它是一个canvas或普通的div,也可以传入元素的id。若为canvas,则使用canvas来渲染所有对象,否则使用dom+css来渲染。可选。
  • -
  • width:Number
  • - 指定舞台的宽度。默认为canvas的宽度。可选。 -
  • height:Number
  • - 指定舞台的高度。默认为canvas的高度。可选。 -
  • paused:Boolean
  • - 指定舞台是否停止渲染。默认为false。可选。 -
-
- -
- -
-
- - - - -
-

方法详情

- - -
-
- - addTo(domElement:HTMLElement):Stage -
-
添加舞台画布到DOM容器中。注意:此方法覆盖了View.addTo方法。
- - - - -
-
parameters
- -
- domElement:HTMLElement - — 一个dom元素。 -
- -
- - - - - -
-
return
- -
Stage — 舞台本身,可用于链式调用。
- -
- - - - -
- - -
-
- - enableDOMEvent(type:String|Array, enabled:Boolean):Stage -
-
开启/关闭舞台的DOM事件响应。要让舞台上的可视对象响应用户交互,必须先使用此方法开启舞台的相应事件的响应。
- - - - -
-
parameters
- -
- type:String|Array - — 要开启/关闭的事件名称或数组。 -
- -
- enabled:Boolean - — 指定开启还是关闭。如果不传此参数,则默认为开启。 -
- -
- - - - - -
-
return
- -
Stage — 舞台本身。链式调用支持。
- -
- - - - -
- - -
-
- - resize(width:Number, height:Number, forceResize:Boolean) -
-
改变舞台的大小。
- - - - -
-
parameters
- -
- width:Number - — 指定舞台新的宽度。 -
- -
- height:Number - — 指定舞台新的高度。 -
- -
- forceResize:Boolean - — 指定是否强制改变舞台大小,即不管舞台大小是否相同,仍然强制执行改变动作,可确保舞台、画布以及视窗之间的尺寸同步。 -
- -
- - - - - - - - -
- - -
-
- - tick(delta:Number) -
-
调用tick会触发舞台的更新和渲染。开发者一般无需使用此方法。
- - - - -
-
parameters
- -
- delta:Number - — 调度器当前调度与上次调度tick之间的时间差。 -
- -
- - - - - - - - -
- - -
-
- - updateViewport():Object -
-
更新舞台在页面中的可视区域,即渲染区域。当舞台canvas的样式border、margin、padding等属性更改后,需要调用此方法更新舞台渲染区域。
- - - - - - - - -
-
return
- -
Object — 舞台的可视区域。即viewport属性。
- -
- - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/Text.html b/docs/api/symbols/Text.html deleted file mode 100644 index a0de862e..00000000 --- a/docs/api/symbols/Text.html +++ /dev/null @@ -1,1496 +0,0 @@ - - - - - - - -Text - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - Text -


- - -

- - - - - - 继承 Text - View - - - - - - - 模块 hilo/view/Text - - - - - - 依赖 - hilo/core/Class, hilo/core/Hilo, hilo/view/View, hilo/view/CacheMixin - - - - - 源码 - Text.js - - -
- Text类提供简单的文字显示功能。复杂的文本功能可以使用DOMElement。 - -

-
- - -

- - - - - -
-

属性概览

- - 显示继承属性 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - color:String -
-
- - 指定使用的字体颜色。 -
-
- Text -
- - -
- - font:String -
-
- - 文本的字体CSS样式。只读属性。设置字体样式请用setFont方法。 -
-
- Text -
- - -
- - lineSpacing:Number -
-
- - 指定文本的行距。单位为像素。默认值为0。 -
-
- Text -
- - -
- - maxWidth:Number -
-
- - 指定文本的最大宽度。默认值为200。 -
-
- Text -
- - -
- - outline:Boolean -
-
- - 指定文本是绘制边框还是填充。 -
-
- Text -
- - -
- - text:String -
-
- - 指定要显示的文本内容。 -
-
- Text -
- - -
- - textAlign:String -
-
- - 指定文本的对齐方式。可以是以下任意一个值:'start', 'end', 'left', 'right', and 'center'。 -
-
- Text -
- - -
- - textHeight:Number -
-
- - 指示文本内容的高度,只读属性。仅在canvas模式下有效。 -
-
- Text -
- - -
- - textVAlign:String -
-
- - 指定文本的垂直对齐方式。可以是以下任意一个值:'top', 'middle', 'bottom'。 -
-
- Text -
- - -
- - textWidth:Number -
-
- - 指示文本内容的宽度,只读属性。仅在canvas模式下有效。 -
-
- Text -
- - - - - - - - - -
-

方法概览

- - 显示继承方法 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- Text(properties:Object) -
-
构造函数。
-
Text
- - -
setFont(font:String):Text -
-
- - 设置文本的字体CSS样式。 -
-
- Text -
- - -
measureFontHeight(font:String):Number -
-
- static - 测算指定字体样式的行高。 -
-
- Text -
- - - - - - - -
-
-

属性详情

-
- - -
-
- color:String - -
-
- 指定使用的字体颜色。 -
- - - - - - - - -
- - -
-
- font:String - -
-
- 文本的字体CSS样式。只读属性。设置字体样式请用setFont方法。 -
- - - - - - - - -
- - -
-
- lineSpacing:Number - -
-
- 指定文本的行距。单位为像素。默认值为0。 -
- - - - - - - - -
- - -
-
- maxWidth:Number - -
-
- 指定文本的最大宽度。默认值为200。 -
- - - - - - - - -
- - -
-
- outline:Boolean - -
-
- 指定文本是绘制边框还是填充。 -
- - - - - - - - -
- - -
-
- text:String - -
-
- 指定要显示的文本内容。 -
- - - - - - - - -
- - -
-
- textAlign:String - -
-
- 指定文本的对齐方式。可以是以下任意一个值:'start', 'end', 'left', 'right', and 'center'。 -
- - - - - - - - -
- - -
-
- textHeight:Number - -
-
- 指示文本内容的高度,只读属性。仅在canvas模式下有效。 -
- - - - - - - - -
- - -
-
- textVAlign:String - -
-
- 指定文本的垂直对齐方式。可以是以下任意一个值:'top', 'middle', 'bottom'。 -
- - - - - - - - -
- - -
-
- textWidth:Number - -
-
- 指示文本内容的宽度,只读属性。仅在canvas模式下有效。 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- Text(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。 -
- -
- -
-
- - - - -
-

方法详情

- - -
-
- [Static] - measureFontHeight(font:String):Number -
-
测算指定字体样式的行高。
- - - - -
-
parameters
- -
- font:String - — 指定要测算的字体样式。 -
- -
- - - - - -
-
return
- -
Number — 返回指定字体的行高。
- -
- - - - -
- - -
-
- - setFont(font:String):Text -
-
设置文本的字体CSS样式。
- - - - -
-
parameters
- -
- font:String - — 要设置的字体CSS样式。 -
- -
- - - - - -
-
return
- -
Text — Text对象本身。链式调用支持。
- -
- - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/TextureAtlas.html b/docs/api/symbols/TextureAtlas.html deleted file mode 100644 index dce98447..00000000 --- a/docs/api/symbols/TextureAtlas.html +++ /dev/null @@ -1,556 +0,0 @@ - - - - - - - -TextureAtlas - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - TextureAtlas -


- - -

- - - - - - - - - 模块 hilo/util/TextureAtlas - - - - - - 依赖 - hilo/core/Class - - - - - 源码 - TextureAtlas.js - - -
- TextureAtlas纹理集是将许多小的纹理图片整合到一起的一张大图。这个类可根据一个纹理集数据读取纹理小图、精灵动画等。 - - -

- - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- TextureAtlas(atlasData:Object) -
-
构造函数。
-
TextureAtlas
- - -
getFrame(index:Int):Object -
-
- - 获取指定索引位置index的帧数据。 -
-
- TextureAtlas -
- - -
getSprite(id:String):Object -
-
- - 获取指定id的精灵数据。 -
-
- TextureAtlas -
- - -
createSpriteFrames(name:String|Array, frames:String, w:Number, h:Number, loop:Bollean, duration:Number, duration) -
-
- static - 创建精灵帧数据的快捷方法。 -
-
- TextureAtlas -
- - - - - - - - - - -
-
- -
-

构造函数

-
-
-
- TextureAtlas(atlasData:Object) -
- - -
-
parameters
- -
- atlasData:Object - — 纹理集数据。它可包含如下数据: -
    -
  • image - 纹理集图片。必需。
  • -
  • width - 纹理集图片宽度。若frames数据为Object时,此属性必需。
  • -
  • height - 纹理集图片高度。若frames数据为Object时,此属性必需。
  • -
  • frames - 纹理集帧数据,可以是Array或Object。必需。 -
      -
    • 若为Array,则每项均为一个纹理图片帧数据,如:[[0, 0, 50, 50], [0, 50, 50, 50]。
    • -
    • 若为Object,则需包含frameWidth(帧宽)、frameHeight(帧高)、numFrames(帧数) 属性。
    • -
    -
  • -
  • sprites - 纹理集精灵动画定义,其每个值均定义一个精灵。为Object对象。可选。 -
      -
    • 若为Number,即此精灵只包含一帧,此帧为帧数据中索引为当前值的帧。如:sprites:{'foo':1}。
    • -
    • 若为Array,则每项均为一个帧的索引值。如:sprites:{'foo':[0, 1, 2, 3]}。
    • -
    • 若为Object,则需包含from(起始帧索引值)、to(末帧索引值) 属性。
    • -
    -
  • -
-
- -
- -
-
- - - - -
-

方法详情

- - -
-
- [Static] - createSpriteFrames(name:String|Array, frames:String, w:Number, h:Number, loop:Bollean, duration:Number, duration) -
-
创建精灵帧数据的快捷方法。
- - - -
 //方式一 单个动画
- createSpriteFrames("walk", "0-5,8,9", meImg, 55, 88, true, 1);
- //方式二 多组动画
- createSpriteFrames([
-   ["walk", "0-5,8,9", meImg, 55, 88, true, 1],
-   ["jump", "0-5", meImg, 55, 88, false, 1]
- ]);
- - - - -
-
parameters
- -
- name:String|Array - — 动画名称|一组动画数据 -
- -
- frames:String - — 帧数据 eg:"0-5"代表第0到第5帧 -
- -
- w:Number - — 每帧的宽 -
- -
- h:Number - — 每帧的高 -
- -
- loop:Bollean - — 是否循环 -
- -
- duration:Number - — 每帧间隔 默认单位帧, 如果sprite的timeBased为true则单位是毫秒,默认一帧 -
- -
- duration - — -
- -
- - - - - - - - -
- - -
-
- - getFrame(index:Int):Object -
-
获取指定索引位置index的帧数据。
- - - - -
-
parameters
- -
- index:Int - — 要获取帧的索引位置。 -
- -
- - - - - -
-
return
- -
Object — 帧数据。
- -
- - - - -
- - -
-
- - getSprite(id:String):Object -
-
获取指定id的精灵数据。
- - - - -
-
parameters
- -
- id:String - — 要获取精灵的id。 -
- -
- - - - - -
-
return
- -
Object — 精灵数据。
- -
- - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/Ticker.html b/docs/api/symbols/Ticker.html deleted file mode 100644 index 2e2e1790..00000000 --- a/docs/api/symbols/Ticker.html +++ /dev/null @@ -1,636 +0,0 @@ - - - - - - - -Ticker - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - Ticker -


- - -

- - - - - - - - - 模块 hilo/util/Ticker - - - - - - 依赖 - hilo/core/Class, hilo/core/Hilo - - - - - 源码 - Ticker.js - - -
- Ticker是一个定时器类。它可以按指定帧率重复运行,从而按计划执行代码。 - - -

- - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- Ticker(fps:Number) -
-
构造函数。
-
Ticker
- - -
addTick(tickObject:Object) -
-
- - 添加定时器对象。定时器对象必须实现 tick 方法。 -
-
- Ticker -
- - - -
- - 获得测定的运行时帧率。 -
-
- Ticker -
- - -
pause() -
-
- - 暂停定时器。 -
-
- Ticker -
- - -
removeTick(tickObject:Object) -
-
- - 删除定时器对象。 -
-
- Ticker -
- - -
resume() -
-
- - 恢复定时器。 -
-
- Ticker -
- - -
start(userRAF:Boolean) -
-
- - 启动定时器。 -
-
- Ticker -
- - -
stop() -
-
- - 停止定时器。 -
-
- Ticker -
- - - - - - - - - - -
-
- -
-

构造函数

-
-
-
- Ticker(fps:Number) -
- - -
-
parameters
- -
- fps:Number - — 指定定时器的运行帧率。 -
- -
- -
-
- - - - -
-

方法详情

- - -
-
- - addTick(tickObject:Object) -
-
添加定时器对象。定时器对象必须实现 tick 方法。
- - - - -
-
parameters
- -
- tickObject:Object - — 要添加的定时器对象。此对象必须包含 tick 方法。 -
- -
- - - - - - - - -
- - -
-
- - getMeasuredFPS() -
-
获得测定的运行时帧率。
- - - - - - - - - - - -
- - -
-
- - pause() -
-
暂停定时器。
- - - - - - - - - - - -
- - -
-
- - removeTick(tickObject:Object) -
-
删除定时器对象。
- - - - -
-
parameters
- -
- tickObject:Object - — 要删除的定时器对象。 -
- -
- - - - - - - - -
- - -
-
- - resume() -
-
恢复定时器。
- - - - - - - - - - - -
- - -
-
- - start(userRAF:Boolean) -
-
启动定时器。
- - - - -
-
parameters
- -
- userRAF:Boolean - — 是否使用requestAnimationFrame,默认为false。 -
- -
- - - - - - - - -
- - -
-
- - stop() -
-
停止定时器。
- - - - - - - - - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/Tween.html b/docs/api/symbols/Tween.html deleted file mode 100644 index ad13f9e9..00000000 --- a/docs/api/symbols/Tween.html +++ /dev/null @@ -1,1681 +0,0 @@ - - - - - - - -Tween - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - Tween -


- - -

- - - - - - - - - 模块 hilo/tween/Tween - - - - - - 依赖 - hilo/core/Class - - - - - 源码 - Tween.js - - -
- Tween类提供缓动功能。 - -

-
-使用示例: -

-ticker.addTick(Hilo.Tween);//需要把Tween加到ticker里才能使用
-
-var view = new View({x:5, y:10});
-Hilo.Tween.to(view, {
-    x:100,
-    y:20,
-    alpha:0
-}, {
-    duration:1000,
-    delay:500,
-    ease:Hilo.Ease.Quad.EaseIn,
-    onComplete:function(){
-        console.log('complete');
-    }
-});
-
- - -

- - - - - -
-

属性概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - delay:Int -
-
- - 缓动延迟时间。单位毫秒。 -
-
- Tween -
- - -
- - duration:Int -
-
- - 缓动总时长。单位毫秒。 -
-
- Tween -
- - -
- - ease:Function -
-
- - 缓动变化函数。默认为null。 -
-
- Tween -
- - -
- - loop:Boolean -
-
- - 缓动是否循环。默认为false。 -
-
- Tween -
- - -
- - onComplete:Function -
-
- - 缓动结束回调函数。它接受1个参数:tween。默认值为null。 -
-
- Tween -
- - -
- - onStart:Function -
-
- - 缓动开始回调函数。它接受1个参数:tween。默认值为null。 -
-
- Tween -
- - -
- - onUpdate:Function -
-
- - 缓动更新回调函数。它接受2个参数:ratio和tween。默认值为null。 -
-
- Tween -
- - -
- - paused:Boolean -
-
- - 缓动是否暂停。默认为false。 -
-
- Tween -
- - -
- - repeat:Int -
-
- - 缓动重复的次数。默认为0。 -
-
- Tween -
- - -
- - repeatDelay:Int -
-
- - 缓动重复的延迟时长。单位为毫秒。 -
-
- Tween -
- - -
- - reverse:Boolean -
-
- - 缓动是否反转播放。默认为false。 -
-
- Tween -
- - -
- - target:Object -
-
- - 缓动目标。只读属性。 -
-
- Tween -
- - -
- - time:Int -
-
- - 缓动已进行的时长。单位毫秒。只读属性。 -
-
- Tween -
- - - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- Tween(target:Object, fromProps:Object, toProps:Object, params:Object) -
-
构造函数。
-
Tween
- - -
link(tween:Tween):Tween -
-
- - 连接下一个Tween变换。其开始时间根据delay值不同而不同。当delay值为字符串且以'+'或'-'开始时,Tween的开始时间从当前变换结束点计算,否则以当前变换起始点计算。 -
-
- Tween -
- - -
pause():Tween -
-
- - 暂停缓动动画的播放。 -
-
- Tween -
- - -
resume():Tween -
-
- - 恢复缓动动画的播放。 -
-
- Tween -
- - -
seek(time:Number, pause:Boolean):Tween -
-
- - 跳转Tween到指定的时间。 -
-
- Tween -
- - -
setProps(fromProps:Object, toProps:Object):Tween -
-
- - 设置缓动对象的初始和目标属性。 -
-
- Tween -
- - -
start():Tween -
-
- - 启动缓动动画的播放。 -
-
- Tween -
- - -
stop():Tween -
-
- - 停止缓动动画的播放。 -
-
- Tween -
- - -
tick():Object -
-
- static - 更新所有Tween实例。 -
-
- Tween -
- - -
add(tween:Tween):Object -
-
- static - 添加Tween实例。 -
-
- Tween -
- - -
remove(tweenOrTarget:Tween|Object|Array):Object -
-
- static - 删除Tween实例。 -
-
- Tween -
- - -
removeAll():Object -
-
- static - 删除所有Tween实例。 -
-
- Tween -
- - -
fromTo(target:Object|Array, fromProps, toProps, params):Tween|Array -
-
- static - 创建一个缓动动画,让目标对象从开始属性变换到目标属性。 -
-
- Tween -
- - -
to(target:Object|Array, toProps, params):Tween|Array -
-
- static - 创建一个缓动动画,让目标对象从当前属性变换到目标属性。 -
-
- Tween -
- - -
from(target:Object|Array, fromProps, params):Tween|Array -
-
- static - 创建一个缓动动画,让目标对象从指定的起始属性变换到当前属性。 -
-
- Tween -
- - - - - - - -
-
-

属性详情

-
- - -
-
- delay:Int - -
-
- 缓动延迟时间。单位毫秒。 -
- - - - - - - - -
- - -
-
- duration:Int - -
-
- 缓动总时长。单位毫秒。 -
- - - - - - - - -
- - -
-
- ease:Function - -
-
- 缓动变化函数。默认为null。 -
- - - - - - - - -
- - -
-
- loop:Boolean - -
-
- 缓动是否循环。默认为false。 -
- - - - - - - - -
- - -
-
- onComplete:Function - -
-
- 缓动结束回调函数。它接受1个参数:tween。默认值为null。 -
- - - - - - - - -
- - -
-
- onStart:Function - -
-
- 缓动开始回调函数。它接受1个参数:tween。默认值为null。 -
- - - - - - - - -
- - -
-
- onUpdate:Function - -
-
- 缓动更新回调函数。它接受2个参数:ratio和tween。默认值为null。 -
- - - - - - - - -
- - -
-
- paused:Boolean - -
-
- 缓动是否暂停。默认为false。 -
- - - - - - - - -
- - -
-
- repeat:Int - -
-
- 缓动重复的次数。默认为0。 -
- - - - - - - - -
- - -
-
- repeatDelay:Int - -
-
- 缓动重复的延迟时长。单位为毫秒。 -
- - - - - - - - -
- - -
-
- reverse:Boolean - -
-
- 缓动是否反转播放。默认为false。 -
- - - - - - - - -
- - -
-
- target:Object - -
-
- 缓动目标。只读属性。 -
- - - - - - - - -
- - -
-
- time:Int - -
-
- 缓动已进行的时长。单位毫秒。只读属性。 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- Tween(target:Object, fromProps:Object, toProps:Object, params:Object) -
- - -
-
parameters
- -
- target:Object - — 缓动对象。 -
- -
- fromProps:Object - — 对象缓动的起始属性集合。 -
- -
- toProps:Object - — 对象缓动的目标属性集合。 -
- -
- params:Object - — 缓动参数。可包含Tween类所有可写属性。 -
- -
- -
-
- - - - -
-

方法详情

- - -
-
- [Static] - add(tween:Tween):Object -
-
添加Tween实例。
- - - - -
-
parameters
- -
- tween:Tween - — 要添加的Tween对象。 -
- -
- - - - - -
-
return
- -
Object — Tween。
- -
- - - - -
- - -
-
- [Static] - from(target:Object|Array, fromProps, params):Tween|Array -
-
创建一个缓动动画,让目标对象从指定的起始属性变换到当前属性。
- - - - -
-
parameters
- -
- target:Object|Array - — 缓动目标对象或缓动目标数组。 -
- -
- fromProps - — 缓动目标对象的目标属性。 -
- -
- params - — 缓动动画的参数。 -
- -
- - - - - -
-
return
- -
Tween|Array — 一个Tween实例对象或Tween实例数组。
- -
- - - - -
- - -
-
- [Static] - fromTo(target:Object|Array, fromProps, toProps, params):Tween|Array -
-
创建一个缓动动画,让目标对象从开始属性变换到目标属性。
- - - - -
-
parameters
- -
- target:Object|Array - — 缓动目标对象或缓动目标数组。 -
- -
- fromProps - — 缓动目标对象的开始属性。 -
- -
- toProps - — 缓动目标对象的目标属性。 -
- -
- params - — 缓动动画的参数。 -
- -
- - - - - -
-
return
- -
Tween|Array — 一个Tween实例对象或Tween实例数组。
- -
- - - - -
- - -
-
- - link(tween:Tween):Tween -
-
连接下一个Tween变换。其开始时间根据delay值不同而不同。当delay值为字符串且以'+'或'-'开始时,Tween的开始时间从当前变换结束点计算,否则以当前变换起始点计算。
- - - - -
-
parameters
- -
- tween:Tween - — 要连接的Tween变换。 -
- -
- - - - - -
-
return
- -
Tween — Tween变换本身。可用于链式调用。
- -
- - - - -
- - -
-
- - pause():Tween -
-
暂停缓动动画的播放。
- - - - - - - - -
-
return
- -
Tween — Tween变换本身。可用于链式调用。
- -
- - - - -
- - -
-
- [Static] - remove(tweenOrTarget:Tween|Object|Array):Object -
-
删除Tween实例。
- - - - -
-
parameters
- -
- tweenOrTarget:Tween|Object|Array - — 要删除的Tween对象或target对象或要删除的一组对象。 -
- -
- - - - - -
-
return
- -
Object — Tween。
- -
- - - - -
- - -
-
- [Static] - removeAll():Object -
-
删除所有Tween实例。
- - - - - - - - -
-
return
- -
Object — Tween。
- -
- - - - -
- - -
-
- - resume():Tween -
-
恢复缓动动画的播放。
- - - - - - - - -
-
return
- -
Tween — Tween变换本身。可用于链式调用。
- -
- - - - -
- - -
-
- - seek(time:Number, pause:Boolean):Tween -
-
跳转Tween到指定的时间。
- - - - -
-
parameters
- -
- time:Number - — 指定要跳转的时间。取值范围为:0 - duraion。 -
- -
- pause:Boolean - — 是否暂停。 -
- -
- - - - - -
-
return
- -
Tween — Tween变换本身。可用于链式调用。
- -
- - - - -
- - -
-
- - setProps(fromProps:Object, toProps:Object):Tween -
-
设置缓动对象的初始和目标属性。
- - - - -
-
parameters
- -
- fromProps:Object - — 缓动对象的初始属性。 -
- -
- toProps:Object - — 缓动对象的目标属性。 -
- -
- - - - - -
-
return
- -
Tween — Tween变换本身。可用于链式调用。
- -
- - - - -
- - -
-
- - start():Tween -
-
启动缓动动画的播放。
- - - - - - - - -
-
return
- -
Tween — Tween变换本身。可用于链式调用。
- -
- - - - -
- - -
-
- - stop():Tween -
-
停止缓动动画的播放。
- - - - - - - - -
-
return
- -
Tween — Tween变换本身。可用于链式调用。
- -
- - - - -
- - -
-
- [Static] - tick():Object -
-
更新所有Tween实例。
- - - - - - - - -
-
return
- -
Object — Tween。
- -
- - - - -
- - -
-
- [Static] - to(target:Object|Array, toProps, params):Tween|Array -
-
创建一个缓动动画,让目标对象从当前属性变换到目标属性。
- - - - -
-
parameters
- -
- target:Object|Array - — 缓动目标对象或缓动目标数组。 -
- -
- toProps - — 缓动目标对象的目标属性。 -
- -
- params - — 缓动动画的参数。 -
- -
- - - - - -
-
return
- -
Tween|Array — 一个Tween实例对象或Tween实例数组。
- -
- - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/View.html b/docs/api/symbols/View.html deleted file mode 100644 index 63e99871..00000000 --- a/docs/api/symbols/View.html +++ /dev/null @@ -1,1718 +0,0 @@ - - - - - - - -View - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - View -


- - -

- - - - - - - - - 模块 hilo/view/View - - - - - - 依赖 - hilo/core/Hilo, hilo/core/Class, hilo/event/EventMixin, hilo/geom/Matrix - - - - - 源码 - View.js - - -
- View类是所有可视对象或组件的基类。 - - -

- - - - - -
-

属性概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - align:String|Function -
-
- - 可视对象相对于父容器的对齐方式。取值可查看Hilo.align枚举对象。 -
-
- View -
- - -
- - alpha:Number -
-
- - 可视对象的透明度。默认值为1。 -
-
- View -
- - -
- - background:Object -
-
- - 可视对象的背景样式。可以是CSS颜色值、canvas的gradient或pattern填充。 -
-
- View -
- - -
- - boundsArea:Array -
-
- - 可视对象的区域顶点数组。格式为:[{x:10, y:10}, {x:20, y:20}]。 -
-
- View -
- - -
- - depth:Number -
-
- - 可视对象的深度,也即z轴的序号。只读属性。 -
-
- View -
- - -
- - drawable:Drawable -
-
- - 可视对象的可绘制对象。供高级开发使用。 -
-
- View -
- - -
- - height:Number -
-
- - 可视对象的高度。默认值为0。 -
-
- View -
- - -
- - id:String -
-
- - 可视对象的唯一标识符。 -
-
- View -
- - -
- - mask:Graphics -
-
- - 可视对象的遮罩图形。 -
-
- View -
- - -
- - onUpdate:Function -
-
- - 更新可视对象,此方法会在可视对象渲染之前调用。此函数可以返回一个Boolean值。若返回false,则此对象不会渲染。默认值为null。 -限制:如果在此函数中改变了可视对象在其父容器中的层级,当前渲染帧并不会正确渲染,而是在下一渲染帧。可在其父容器的onUpdate方法中来实现。 -
-
- View -
- - -
- - parent:Container -
-
- - 可视对象的父容器。只读属性。 -
-
- View -
- - -
- - pivotX:Number -
-
- - 可视对象的中心点的x轴坐标。默认值为0。 -
-
- View -
- - -
- - pivotY:Number -
-
- - 可视对象的中心点的y轴坐标。默认值为0。 -
-
- View -
- - -
- - pointerEnabled:Boolean -
-
- - 可视对象是否接受交互事件。默认为接受交互事件,即true。 -
-
- View -
- - -
- - rotation:Number -
-
- - 可视对象的旋转角度。默认值为0。 -
-
- View -
- - -
- - scaleX:Number -
-
- - 可视对象在x轴上的缩放比例。默认为不缩放,即1。 -
-
- View -
- - -
- - scaleY:Number -
-
- - 可视对象在y轴上的缩放比例。默认为不缩放,即1。 -
-
- View -
- - -
- - visible:Boolean -
-
- - 可视对象是否可见。默认为可见,即true。 -
-
- View -
- - -
- - width:Number -
-
- - 可视对象的宽度。默认值为0。 -
-
- View -
- - -
- - x:Number -
-
- - 可视对象的x轴坐标。默认值为0。 -
-
- View -
- - -
- - y:Number -
-
- - 可视对象的y轴坐标。默认值为0。 -
-
- View -
- - - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- View(properties:Object) -
-
构造函数。
-
View
- - -
addTo(container:Container, index:Uint):View -
-
- - 添加此对象到父容器。 -
-
- View -
- - -
getBounds():Array -
-
- - 获取可视对象在舞台全局坐标系内的外接矩形以及所有顶点坐标。 -
-
- View -
- - -
getScaledHeight():Number -
-
- - 返回可视对象缩放后的高度。 -
-
- View -
- - -
getScaledWidth():Number -
-
- - 返回可视对象缩放后的宽度。 -
-
- View -
- - -
getStage():Stage -
-
- - 返回可视对象的舞台引用。若对象没有被添加到舞台,则返回null。 -
-
- View -
- - -
hitTestObject(object:View, usePolyCollision:Boolean) -
-
- - 检测object参数指定的对象是否与其相交。 -
-
- View -
- - -
hitTestPoint(x:Number, y:Number, usePolyCollision:Boolean):Boolean -
-
- - 检测由x和y参数指定的点是否在其外接矩形之内。 -
-
- View -
- - - -
- - 从父容器里删除此对象。 -
-
- View -
- - -
render(renderer:Renderer, delta:Number) -
-
- - 可视对象的具体渲染逻辑。子类可通过覆盖此方法实现自己的渲染。 -
-
- View -
- - -
toString():String -
-
- - 返回可视对象的字符串表示。 -
-
- View -
- - - - - - - -
-
-

属性详情

-
- - -
-
- align:String|Function - -
-
- 可视对象相对于父容器的对齐方式。取值可查看Hilo.align枚举对象。 -
- - - - - - - - -
- - -
-
- alpha:Number - -
-
- 可视对象的透明度。默认值为1。 -
- - - - - - - - -
- - -
-
- background:Object - -
-
- 可视对象的背景样式。可以是CSS颜色值、canvas的gradient或pattern填充。 -
- - - - - - - - -
- - -
-
- boundsArea:Array - -
-
- 可视对象的区域顶点数组。格式为:[{x:10, y:10}, {x:20, y:20}]。 -
- - - - - - - - -
- - -
-
- depth:Number - -
-
- 可视对象的深度,也即z轴的序号。只读属性。 -
- - - - - - - - -
- - -
-
- drawable:Drawable - -
-
- 可视对象的可绘制对象。供高级开发使用。 -
- - - - - - - - -
- - -
-
- height:Number - -
-
- 可视对象的高度。默认值为0。 -
- - - - - - - - -
- - -
-
- id:String - -
-
- 可视对象的唯一标识符。 -
- - - - - - - - -
- - -
-
- mask:Graphics - -
-
- 可视对象的遮罩图形。 -
- - - - - - - - -
- - -
-
- onUpdate:Function - -
-
- 更新可视对象,此方法会在可视对象渲染之前调用。此函数可以返回一个Boolean值。若返回false,则此对象不会渲染。默认值为null。 -限制:如果在此函数中改变了可视对象在其父容器中的层级,当前渲染帧并不会正确渲染,而是在下一渲染帧。可在其父容器的onUpdate方法中来实现。 -
- - - - - - - -
-
- 默认值: - null -
-
- - -
- - -
-
- parent:Container - -
-
- 可视对象的父容器。只读属性。 -
- - - - - - - - -
- - -
-
- pivotX:Number - -
-
- 可视对象的中心点的x轴坐标。默认值为0。 -
- - - - - - - - -
- - -
-
- pivotY:Number - -
-
- 可视对象的中心点的y轴坐标。默认值为0。 -
- - - - - - - - -
- - -
-
- pointerEnabled:Boolean - -
-
- 可视对象是否接受交互事件。默认为接受交互事件,即true。 -
- - - - - - - - -
- - -
-
- rotation:Number - -
-
- 可视对象的旋转角度。默认值为0。 -
- - - - - - - - -
- - -
-
- scaleX:Number - -
-
- 可视对象在x轴上的缩放比例。默认为不缩放,即1。 -
- - - - - - - - -
- - -
-
- scaleY:Number - -
-
- 可视对象在y轴上的缩放比例。默认为不缩放,即1。 -
- - - - - - - - -
- - -
-
- visible:Boolean - -
-
- 可视对象是否可见。默认为可见,即true。 -
- - - - - - - - -
- - -
-
- width:Number - -
-
- 可视对象的宽度。默认值为0。 -
- - - - - - - - -
- - -
-
- x:Number - -
-
- 可视对象的x轴坐标。默认值为0。 -
- - - - - - - - -
- - -
-
- y:Number - -
-
- 可视对象的y轴坐标。默认值为0。 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- View(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。 -
- -
- -
-
- - - - -
-

方法详情

- - -
-
- - addTo(container:Container, index:Uint):View -
-
添加此对象到父容器。
- - - - -
-
parameters
- -
- container:Container - — 一个容器。 -
- -
- index:Uint - — 要添加到索引位置。 -
- -
- - - - - -
-
return
- -
View — 可视对象本身。
- -
- - - - -
- - -
-
- - getBounds():Array -
-
获取可视对象在舞台全局坐标系内的外接矩形以及所有顶点坐标。
- - - - - - - - -
-
return
- -
Array — 可视对象的顶点坐标数组vertexs。另vertexs还包含属性: -
    -
  • x - 可视对象的外接矩形x轴坐标。
  • -
  • y - 可视对象的外接矩形y轴坐标。
  • -
  • width - 可视对象的外接矩形的宽度。
  • -
  • height - 可视对象的外接矩形的高度。
  • -
- -
- - - - -
- - -
-
- - getScaledHeight():Number -
-
返回可视对象缩放后的高度。
- - - - - - - - -
-
return
- -
Number — 可视对象缩放后的高度。
- -
- - - - -
- - -
-
- - getScaledWidth():Number -
-
返回可视对象缩放后的宽度。
- - - - - - - - -
-
return
- -
Number — 可视对象缩放后的宽度。
- -
- - - - -
- - -
-
- - getStage():Stage -
-
返回可视对象的舞台引用。若对象没有被添加到舞台,则返回null。
- - - - - - - - -
-
return
- -
Stage — 可视对象的舞台引用。
- -
- - - - -
- - -
-
- - hitTestObject(object:View, usePolyCollision:Boolean) -
-
检测object参数指定的对象是否与其相交。
- - - - -
-
parameters
- -
- object:View - — 要检测的可视对象。 -
- -
- usePolyCollision:Boolean - — 是否使用多边形碰撞检测。默认为false。 -
- -
- - - - - - - - -
- - -
-
- - hitTestPoint(x:Number, y:Number, usePolyCollision:Boolean):Boolean -
-
检测由x和y参数指定的点是否在其外接矩形之内。
- - - - -
-
parameters
- -
- x:Number - — 要检测的点的x轴坐标。 -
- -
- y:Number - — 要检测的点的y轴坐标。 -
- -
- usePolyCollision:Boolean - — 是否使用多边形碰撞检测。默认为false。 -
- -
- - - - - -
-
return
- -
Boolean — 点是否在可视对象之内。
- -
- - - - -
- - -
-
- - removeFromParent():View -
-
从父容器里删除此对象。
- - - - - - - - -
-
return
- -
View — 可视对象本身。
- -
- - - - -
- - -
-
- - render(renderer:Renderer, delta:Number) -
-
可视对象的具体渲染逻辑。子类可通过覆盖此方法实现自己的渲染。
- - - - -
-
parameters
- -
- renderer:Renderer - — 渲染器。 -
- -
- delta:Number - — 渲染时时间偏移量。 -
- -
- - - - - - - - -
- - -
-
- - toString():String -
-
返回可视对象的字符串表示。
- - - - - - - - -
-
return
- -
String — 可视对象的字符串表示。
- -
- - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/WebAudio.html b/docs/api/symbols/WebAudio.html deleted file mode 100644 index 8711d6f5..00000000 --- a/docs/api/symbols/WebAudio.html +++ /dev/null @@ -1,1102 +0,0 @@ - - - - - - - -WebAudio - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - WebAudio -


- - -

- - - - - - - - - 模块 hilo/media/WebAudio - - - - - - 依赖 - hilo/core/Hilo, hilo/core/Class, hilo/event/EventMixin - - - - - 源码 - WebAudio.js - - -
- WebAudio声音播放模块。它具有更好的声音播放和控制能力,适合在iOS6+平台使用。 -兼容情况:iOS6+、Chrome33+、Firefox28+支持,但Android浏览器均不支持。 - - -

- - - - - -
-

属性概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - autoPlay:Boolean -
-
- - 是否自动播放。默认为false。 -
-
- WebAudio -
- - -
- - duration:Number -
-
- - 音频的时长。只读属性。 -
-
- WebAudio -
- - -
- - loaded:Boolean -
-
- - 音频资源是否已加载完成。只读属性。 -
-
- WebAudio -
- - -
- - loop:Boolean -
-
- - 是否循环播放。默认为false。 -
-
- WebAudio -
- - -
- - muted:Boolean -
-
- - 是否静音。默认为false。 -
-
- WebAudio -
- - -
- - playing:Boolean -
-
- - 是否正在播放音频。只读属性。 -
-
- WebAudio -
- - -
- - src:String -
-
- - 播放的音频的资源地址。 -
-
- WebAudio -
- - -
- - volume:Number -
-
- - 音量的大小。取值范围:0-1。 -
-
- WebAudio -
- - -
- - isSupported -
-
- static - 浏览器是否支持WebAudio。 -
-
- WebAudio -
- - -
- - enabled -
-
- static - 浏览器是否已激活WebAudio。 -
-
- WebAudio -
- - - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- WebAudio(properties:Object) -
-
构造函数。
-
WebAudio
- - -
load() -
-
- - 加载音频文件。注意:我们使用XMLHttpRequest进行加载,因此需要注意跨域问题。 -
-
- WebAudio -
- - -
pause() -
-
- - 暂停音频。 -
-
- WebAudio -
- - -
play() -
-
- - 播放音频。如果正在播放,则会重新开始。 -
-
- WebAudio -
- - -
resume() -
-
- - 恢复音频播放。 -
-
- WebAudio -
- - -
setMute(muted) -
-
- - 设置是否静音。 -
-
- WebAudio -
- - -
setVolume(volume) -
-
- - 设置音量。 -
-
- WebAudio -
- - -
stop() -
-
- - 停止音频播放。 -
-
- WebAudio -
- - -
enable() -
-
- static - 激活WebAudio。注意:需用户事件触发此方法才有效。激活后,无需用户事件也可播放音频。 -
-
- WebAudio -
- - - - - - - -
-
-

属性详情

-
- - -
-
- autoPlay:Boolean - -
-
- 是否自动播放。默认为false。 -
- - - - - - - - -
- - -
-
- duration:Number - -
-
- 音频的时长。只读属性。 -
- - - - - - - - -
- - -
-
[Static] - enabled - -
-
- 浏览器是否已激活WebAudio。 -
- - - - - - - - -
- - -
-
[Static] - isSupported - -
-
- 浏览器是否支持WebAudio。 -
- - - - - - - - -
- - -
-
- loaded:Boolean - -
-
- 音频资源是否已加载完成。只读属性。 -
- - - - - - - - -
- - -
-
- loop:Boolean - -
-
- 是否循环播放。默认为false。 -
- - - - - - - - -
- - -
-
- muted:Boolean - -
-
- 是否静音。默认为false。 -
- - - - - - - - -
- - -
-
- playing:Boolean - -
-
- 是否正在播放音频。只读属性。 -
- - - - - - - - -
- - -
-
- src:String - -
-
- 播放的音频的资源地址。 -
- - - - - - - - -
- - -
-
- volume:Number - -
-
- 音量的大小。取值范围:0-1。 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- WebAudio(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。 -
- -
- -
-
- - - - -
-

方法详情

- - -
-
- [Static] - enable() -
-
激活WebAudio。注意:需用户事件触发此方法才有效。激活后,无需用户事件也可播放音频。
- - - - - - - - - - - -
- - -
-
- - load() -
-
加载音频文件。注意:我们使用XMLHttpRequest进行加载,因此需要注意跨域问题。
- - - - - - - - - - - -
- - -
-
- - pause() -
-
暂停音频。
- - - - - - - - - - - -
- - -
-
- - play() -
-
播放音频。如果正在播放,则会重新开始。
- - - - - - - - - - - -
- - -
-
- - resume() -
-
恢复音频播放。
- - - - - - - - - - - -
- - -
-
- - setMute(muted) -
-
设置是否静音。
- - - - -
-
parameters
- -
- muted - — -
- -
- - - - - - - - -
- - -
-
- - setVolume(volume) -
-
设置音量。
- - - - -
-
parameters
- -
- volume - — -
- -
- - - - - - - - -
- - -
-
- - stop() -
-
停止音频播放。
- - - - - - - - - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/WebGLRenderer.html b/docs/api/symbols/WebGLRenderer.html deleted file mode 100644 index a6146376..00000000 --- a/docs/api/symbols/WebGLRenderer.html +++ /dev/null @@ -1,754 +0,0 @@ - - - - - - - -WebGLRenderer - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - WebGLRenderer -


- - -

- - - - - - 继承 WebGLRenderer - Renderer - - - - - - - 模块 hilo/renderer/WebGLRenderer - - - - - - 依赖 - hilo/core/Class, hilo/renderer/Renderer, hilo/geom/Matrix - - - - - 源码 - WebGLRenderer.js - - -
- webgl画布渲染器。所有可视对象将渲染在canvas画布上。 - - -

- - - - - -
-

属性概览

- - 显示继承属性 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性定义于
- - -
- - gl:WebGLRenderingContext -
-
- - webgl上下文。只读属性。 -
-
- WebGLRenderer -
- - -
- - isSupport -
-
- static - 是否支持WebGL。只读属性。 -
-
- WebGLRenderer -
- - - -
- static - 最大批渲染数量。 -
-
- WebGLRenderer -
- - - -
- static - 顶点属性数。只读属性。 -
-
- WebGLRenderer -
- - - - - - - - - -
-

方法概览

- - 显示继承方法 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
-
- WebGLRenderer(properties:Object) -
-
构造函数。
-
WebGLRenderer
- - - - - - - -
-
-

属性详情

-
- - -
-
[Static] - ATTRIBUTE_NUM - -
-
- 顶点属性数。只读属性。 -
- - - - - - - - -
- - -
-
- gl:WebGLRenderingContext - -
-
- webgl上下文。只读属性。 -
- - - - - - - - -
- - -
-
[Static] - isSupport - -
-
- 是否支持WebGL。只读属性。 -
- - - - - - - - -
- - -
-
[Static] - MAX_BATCH_NUM - -
-
- 最大批渲染数量。 -
- - - - - - - - -
- - - - - -
-
- -
-

构造函数

-
-
-
- WebGLRenderer(properties:Object) -
- - -
-
parameters
- -
- properties:Object - — 创建对象的属性参数。可包含此类所有可写属性。 -
- -
- -
-
- - - - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/WebSound.html b/docs/api/symbols/WebSound.html deleted file mode 100644 index a7fa9a47..00000000 --- a/docs/api/symbols/WebSound.html +++ /dev/null @@ -1,460 +0,0 @@ - - - - - - - -WebSound - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - WebSound -


- - -

- - - - - - - - - 模块 hilo/media/WebSound - - - - - - 依赖 - hilo/core/Hilo, hilo/media/HTMLAudio, hilo/media/WebAudio - - - - - 源码 - WebSound.js - - -
- 声音播放管理器。 - -

-
-使用示例: -

-var audio = WebSound.getAudio({
-    src: 'test.mp3',
-    loop: false,
-    volume: 1
-}).on('load', function(e){
-    console.log('load');
-}).on('end', function(e){
-    console.log('end');
-}).play();
-
- - -

- - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
- - - -
- static - 激活音频功能。注意:需用户事件触发此方法才有效。目前仅对WebAudio有效。 -
-
- WebSound -
- - -
getAudio(source:String|Object):WebAudio|HTMLAudio -
-
- static - 获取音频对象。优先使用WebAudio。 -
-
- WebSound -
- - -
removeAudio(source:String|Object) -
-
- static - 删除音频对象。 -
-
- WebSound -
- - - - - - - - - - - - - -
-

方法详情

- - -
-
- [Static] - enableAudio() -
-
激活音频功能。注意:需用户事件触发此方法才有效。目前仅对WebAudio有效。
- - - - - - - - - - - -
- - -
-
- [Static] - getAudio(source:String|Object):WebAudio|HTMLAudio -
-
获取音频对象。优先使用WebAudio。
- - - - -
-
parameters
- -
- source:String|Object - — 若source为String,则为音频src地址;若为Object,则需包含src属性。 -
- -
- - - - - -
-
return
- -
WebAudio|HTMLAudio — 音频播放对象实例。
- -
- - - - -
- - -
-
- [Static] - removeAudio(source:String|Object) -
-
删除音频对象。
- - - - -
-
parameters
- -
- source:String|Object - — 若source为String,则为音频src地址;若为Object,则需包含src属性。 -
- -
- - - - - - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/drag.html b/docs/api/symbols/drag.html deleted file mode 100644 index 53dcb63a..00000000 --- a/docs/api/symbols/drag.html +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - -drag - Hilo API参考文档 - - - - - - - - - -
-
- - -
- - -
-
- -
- -

- - drag -


- - -

- - - - - - - - - 模块 hilo/util/drag - - - - - - 依赖 - hilo/core/Class, hilo/core/Hilo - - - - - 源码 - drag.js - - -
- drag是一个包含拖拽功能的mixin。可以通过 Class.mix(view, drag)或Hilo.copy(view, drag)来为view增加拖拽功能。 - -

-
-使用示例: -

-var bmp = new Bitmap({image:img});
-Hilo.copy(bmp, Hilo.drag);
-bmp.startDrag([0, 0, 550, 400]);
-
- - -

- - - - - - - - -
-

方法概览

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
方法定义于
- - -
startDrag(bounds:Array) -
-
- static - 开始拖拽 -
-
- drag -
- - - -
- static - 停止拖拽 -
-
- drag -
- - - - - - - - - - - - - -
-

方法详情

- - -
-
- [Static] - startDrag(bounds:Array) -
-
开始拖拽
- - - - -
-
parameters
- -
- bounds:Array - — 拖拽范围,基于父容器坐标系,[x, y, width, height], 默认无限制 -
- -
- - - - - - - - -
- - -
-
- [Static] - stopDrag() -
-
停止拖拽
- - - - - - - - - - - -
- - - -
- -
- - - - - - - - - - diff --git a/docs/api/symbols/src/src_core_Class.js.html b/docs/api/symbols/src/src_core_Class.js.html deleted file mode 100644 index 7db6a8fa..00000000 --- a/docs/api/symbols/src/src_core_Class.js.html +++ /dev/null @@ -1,177 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */ 
-  6 
-  7 /**
-  8  * 创建类示例:
-  9  * <pre>
- 10  * var Bird = Hilo.Class.create({
- 11  *     Extends: Animal,
- 12  *     Mixes: EventMixin,
- 13  *     constructor: function(name){
- 14  *         this.name = name;
- 15  *     },
- 16  *     fly: function(){
- 17  *         console.log('I am flying');
- 18  *     },
- 19  *     Statics: {
- 20  *         isBird: function(bird){
- 21  *             return bird instanceof Bird;
- 22  *         }
- 23  *     }
- 24  * });
- 25  *
- 26  * var swallow = new Bird('swallow');
- 27  * swallow.fly();
- 28  * Bird.isBird(swallow);
- 29  * </pre>
- 30  * @namespace Class是提供类的创建的辅助工具。
- 31  * @static
- 32  * @module hilo/core/Class
- 33  */
- 34 var Class = (function(){
- 35 
- 36 /**
- 37  * 根据参数指定的属性和方法创建类。
- 38  * @param {Object} properties 要创建的类的相关属性和方法。主要有:
- 39  * <ul>
- 40  * <li><b>Extends</b> - 指定要继承的父类。</li>
- 41  * <li><b>Mixes</b> - 指定要混入的成员集合对象。</li>
- 42  * <li><b>Statics</b> - 指定类的静态属性或方法。</li>
- 43  * <li><b>constructor</b> - 指定类的构造函数。</li>
- 44  * <li>其他创建类的成员属性或方法。</li>
- 45  * </ul>
- 46  * @returns {Object} 创建的类。
- 47  */
- 48 var create = function(properties){
- 49     properties = properties || {};
- 50     var clazz = properties.hasOwnProperty('constructor') ? properties.constructor : function(){};
- 51     implement.call(clazz, properties);
- 52     return clazz;
- 53 }
- 54 
- 55 /**
- 56  * @private
- 57  */
- 58 var implement = function(properties){
- 59     var proto = {}, key, value;
- 60     for(key in properties){
- 61         value = properties[key];
- 62         if(classMutators.hasOwnProperty(key)){
- 63             classMutators[key].call(this, value);
- 64         }else{
- 65             proto[key] = value;
- 66         }
- 67     }
- 68 
- 69     mix(this.prototype, proto);
- 70 };
- 71 
- 72 var classMutators = /** @ignore */{
- 73     Extends: function(parent){
- 74         var existed = this.prototype, proto = createProto(parent.prototype);
- 75         //inherit static properites
- 76         mix(this, parent);
- 77         //keep existed properties
- 78         mix(proto, existed);
- 79         //correct constructor
- 80         proto.constructor = this;
- 81         //prototype chaining
- 82         this.prototype = proto;
- 83         //shortcut to parent's prototype
- 84         this.superclass = parent.prototype;
- 85     },
- 86 
- 87     Mixes: function(items){
- 88         items instanceof Array || (items = [items]);
- 89         var proto = this.prototype, item;
- 90 
- 91         while(item = items.shift()){
- 92             mix(proto, item.prototype || item);
- 93         }
- 94     },
- 95 
- 96     Statics: function(properties){
- 97         mix(this, properties);
- 98     }
- 99 };
-100 
-101 /**
-102  * @private
-103  */
-104 var createProto = (function(){
-105     if(Object.__proto__){
-106         return function(proto){
-107             return {__proto__: proto};
-108         }
-109     }else{
-110         var Ctor = function(){};
-111         return function(proto){
-112             Ctor.prototype = proto;
-113             return new Ctor();
-114         }
-115     }
-116 })();
-117 
-118 /**
-119  * 混入属性或方法。
-120  * @param {Object} target 混入目标对象。
-121  * @param {Object} source 要混入的属性和方法来源。可支持多个来源参数。
-122  * @returns {Object} 混入目标对象。
-123  */
-124 var mix = function(target){
-125     for(var i = 1, len = arguments.length; i < len; i++){
-126         var source  = arguments[i], defineProps;
-127         for(var key in source){
-128             var prop = source[key];
-129             if(prop && typeof prop === 'object'){
-130                 if(prop.value !== undefined || typeof prop.get === 'function' || typeof prop.set === 'function'){
-131                     defineProps = defineProps || {};
-132                     defineProps[key] = prop;
-133                     continue;
-134                 }
-135             }
-136             target[key] = prop;
-137         }
-138         if(defineProps) defineProperties(target, defineProps);
-139     }
-140 
-141     return target;
-142 };
-143 
-144 try{
-145     var defineProperty = Object.defineProperty,
-146         defineProperties = Object.defineProperties;
-147     defineProperty({}, '$', {value:0});
-148 }catch(e){
-149     if('__defineGetter__' in Object){
-150         defineProperty = function(obj, prop, desc){
-151             if('value' in desc) obj[prop] = desc.value;
-152             if('get' in desc) obj.__defineGetter__(prop, desc.get);
-153             if('set' in desc) obj.__defineSetter__(prop, desc.set);
-154             return obj;
-155         };
-156         defineProperties = function(obj, props){
-157             for(var prop in props){
-158                 if(props.hasOwnProperty(prop)){
-159                     defineProperty(obj, prop, props[prop]);
-160                 }
-161             }
-162             return obj;
-163         };
-164     }
-165 }
-166 
-167 return {create:create, mix:mix};
-168 
-169 })();
-170 
\ No newline at end of file diff --git a/docs/api/symbols/src/src_core_Hilo.js.html b/docs/api/symbols/src/src_core_Hilo.js.html deleted file mode 100644 index 28fa6d48..00000000 --- a/docs/api/symbols/src/src_core_Hilo.js.html +++ /dev/null @@ -1,354 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @namespace Hilo的基础核心方法集合。
-  9  * @static
- 10  * @module hilo/core/Hilo
- 11  */
- 12 var Hilo = (function(){
- 13 
- 14 var win = window, doc = document, docElem = doc.documentElement,
- 15     uid = 0;
- 16 
- 17 return {
- 18     /**
- 19      * 获取一个全局唯一的id。如Stage1,Bitmap2等。
- 20      * @param {String} prefix 生成id的前缀。
- 21      * @returns {String} 全局唯一id。
- 22      */
- 23     getUid: function(prefix){
- 24         var id = ++uid;
- 25         if(prefix){
- 26             var charCode = prefix.charCodeAt(prefix.length - 1);
- 27             if (charCode >= 48 && charCode <= 57) prefix += "_"; //0至9之间添加下划线
- 28             return prefix + id;
- 29         }
- 30         return id;
- 31     },
- 32 
- 33     /**
- 34      * 为指定的可视对象生成一个包含路径的字符串表示形式。如Stage1.Container2.Bitmap3。
- 35      * @param {View} view 指定的可视对象。
- 36      * @returns {String} 可视对象的字符串表示形式。
- 37      */
- 38     viewToString: function(view){
- 39         var result, obj = view;
- 40         while(obj){
- 41             result = result ? (obj.id + '.' + result) : obj.id;
- 42             obj = obj.parent;
- 43         }
- 44         return result;
- 45     },
- 46 
- 47     /**
- 48      * 简单的浅复制对象。
- 49      * @param {Object} target 要复制的目标对象。
- 50      * @param {Object} source 要复制的源对象。
- 51      * @param {Boolean} strict 指示是否复制未定义的属性,默认为false,即不复制未定义的属性。
- 52      * @returns {Object} 复制后的对象。
- 53      */
- 54     copy: function(target, source, strict){
- 55         for(var key in source){
- 56             if(!strict || target.hasOwnProperty(key) || target[key] !== undefined){
- 57                 target[key] = source[key];
- 58             }
- 59         }
- 60         return target;
- 61     },
- 62 
- 63     /**
- 64      * 浏览器特性集合。包括:
- 65      * <ul>
- 66      * <li><b>jsVendor</b> - 浏览器厂商CSS前缀的js值。比如:webkit。</li>
- 67      * <li><b>cssVendor</b> - 浏览器厂商CSS前缀的css值。比如:-webkit-。</li>
- 68      * <li><b>supportTransform</b> - 是否支持CSS Transform变换。</li>
- 69      * <li><b>supportTransform3D</b> - 是否支持CSS Transform 3D变换。</li>
- 70      * <li><b>supportStorage</b> - 是否支持本地存储localStorage。</li>
- 71      * <li><b>supportTouch</b> - 是否支持触碰事件。</li>
- 72      * <li><b>supportCanvas</b> - 是否支持canvas元素。</li>
- 73      * </ul>
- 74      */
- 75     browser: (function(){
- 76         var ua = navigator.userAgent;
- 77         var data = {
- 78             iphone: /iphone/i.test(ua),
- 79             ipad: /ipad/i.test(ua),
- 80             ipod: /ipod/i.test(ua),
- 81             ios: /iphone|ipad|ipod/i.test(ua),
- 82             android: /android/i.test(ua),
- 83             webkit: /webkit/i.test(ua),
- 84             chrome: /chrome/i.test(ua),
- 85             safari: /safari/i.test(ua),
- 86             firefox: /firefox/i.test(ua),
- 87             ie: /msie/i.test(ua),
- 88             opera: /opera/i.test(ua),
- 89             supportTouch: 'ontouchstart' in win,
- 90             supportCanvas: doc.createElement('canvas').getContext != null,
- 91             supportStorage: false,
- 92             supportOrientation: 'orientation' in win,
- 93             supportDeviceMotion: 'ondevicemotion' in win
- 94         };
- 95 
- 96         //`localStorage` is null or `localStorage.setItem` throws error in some cases (e.g. localStorage is disabled)
- 97         try{
- 98             var value = 'hilo';
- 99             localStorage.setItem(value, value);
-100             localStorage.removeItem(value);
-101             data.supportStorage = true;
-102         }catch(e){ };
-103 
-104         //vendro prefix
-105         var jsVendor = data.jsVendor = data.webkit ? 'webkit' : data.firefox ? 'Moz' : data.opera ? 'O' : data.ie ? 'ms' : '';
-106         var cssVendor = data.cssVendor = '-' + jsVendor + '-';
-107 
-108         //css transform/3d feature dectection
-109         var testElem = doc.createElement('div'), style = testElem.style;
-110         var supportTransform = style[jsVendor + 'Transform'] != undefined;
-111         var supportTransform3D = style[jsVendor + 'Perspective'] != undefined;
-112         if(supportTransform3D){
-113             testElem.id = 'test3d';
-114             style = doc.createElement('style');
-115             style.textContent = '@media ('+ cssVendor +'transform-3d){#test3d{height:3px}}';
-116             doc.head.appendChild(style);
-117 
-118             docElem.appendChild(testElem);
-119             supportTransform3D = testElem.offsetHeight == 3;
-120             doc.head.removeChild(style);
-121             docElem.removeChild(testElem);
-122         };
-123         data.supportTransform = supportTransform;
-124         data.supportTransform3D = supportTransform3D;
-125 
-126         return data;
-127     })(),
-128 
-129     /**
-130      * 事件类型枚举对象。包括:
-131      * <ul>
-132      * <li><b>POINTER_START</b> - 鼠标或触碰开始事件。对应touchstart或mousedown。</li>
-133      * <li><b>POINTER_MOVE</b> - 鼠标或触碰移动事件。对应touchmove或mousemove。</li>
-134      * <li><b>POINTER_END</b> - 鼠标或触碰结束事件。对应touchend或mouseup。</li>
-135      * </ul>
-136      */
-137     event: (function(){
-138         var supportTouch = 'ontouchstart' in win;
-139         return {
-140             POINTER_START: supportTouch ? 'touchstart' : 'mousedown',
-141             POINTER_MOVE: supportTouch ? 'touchmove' : 'mousemove',
-142             POINTER_END: supportTouch ? 'touchend' : 'mouseup'
-143         };
-144     })(),
-145 
-146     /**
-147      * 可视对象对齐方式枚举对象。包括:
-148      * <ul>
-149      * <li><b>TOP_LEFT</b> - 左上角对齐。</li>
-150      * <li><b>TOP</b> - 顶部居中对齐。</li>
-151      * <li><b>TOP_RIGHT</b> - 右上角对齐。</li>
-152      * <li><b>LEFT</b> - 左边居中对齐。</li>
-153      * <li><b>CENTER</b> - 居中对齐。</li>
-154      * <li><b>RIGHT</b> - 右边居中对齐。</li>
-155      * <li><b>BOTTOM_LEFT</b> - 左下角对齐。</li>
-156      * <li><b>BOTTOM</b> - 底部居中对齐。</li>
-157      * <li><b>BOTTOM_RIGHT</b> - 右下角对齐。</li>
-158      * </ul>
-159      */
-160     align: {
-161         TOP_LEFT: 'TL', //top & left
-162         TOP: 'T', //top & center
-163         TOP_RIGHT: 'TR', //top & right
-164         LEFT: 'L', //left & center
-165         CENTER: 'C', //center
-166         RIGHT: 'R', //right & center
-167         BOTTOM_LEFT: 'BL', //bottom & left
-168         BOTTOM: 'B', //bottom & center
-169         BOTTOM_RIGHT: 'BR' //bottom & right
-170     },
-171 
-172     /**
-173      * 获取DOM元素在页面中的内容显示区域。
-174      * @param {HTMLElement} elem DOM元素。
-175      * @returns {Object} DOM元素的可视区域。格式为:{left:0, top:0, width:100, height:100}。
-176      */
-177     getElementRect: function(elem){
-178         try{
-179             //this fails if it's a disconnected DOM node
-180             var bounds = elem.getBoundingClientRect();
-181         }catch(e){
-182             bounds = {top:elem.offsetTop, left:elem.offsetLeft, width:elem.offsetWidth, height:elem.offsetHeight};
-183         }
-184 
-185         var offsetX = ((win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0)) || 0;
-186         var offsetY = ((win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0)) || 0;
-187         var styles = win.getComputedStyle ? getComputedStyle(elem) : elem.currentStyle;
-188         var parseIntFn = parseInt;
-189 
-190         var padLeft = (parseIntFn(styles.paddingLeft) + parseIntFn(styles.borderLeftWidth)) || 0;
-191         var padTop = (parseIntFn(styles.paddingTop) + parseIntFn(styles.borderTopWidth)) || 0;
-192         var padRight = (parseIntFn(styles.paddingRight) + parseIntFn(styles.borderRightWidth)) || 0;
-193         var padBottom = (parseIntFn(styles.paddingBottom) + parseIntFn(styles.borderBottomWidth)) || 0;
-194         var top = bounds.top || 0;
-195         var left = bounds.left || 0;
-196 
-197         return {
-198             left: left + offsetX + padLeft,
-199             top: top + offsetY + padTop,
-200             width: bounds.right - padRight - left - padLeft,
-201             height: bounds.bottom - padBottom - top - padTop
-202         };
-203     },
-204 
-205     /**
-206      * 创建一个DOM元素。可指定属性和样式。
-207      * @param {String} type 要创建的DOM元素的类型。比如:'div'。
-208      * @param {Object} properties 指定DOM元素的属性和样式。
-209      * @returns {HTMLElement} 一个DOM元素。
-210      */
-211     createElement: function(type, properties){
-212         var elem = doc.createElement(type), p, val, s;
-213         for(p in properties){
-214             val = properties[p];
-215             if(p === 'style'){
-216                 for(s in val) elem.style[s] = val[s];
-217             }else{
-218                 elem[p] = val;
-219             }
-220         }
-221         return elem;
-222     },
-223 
-224     /**
-225      * 根据参数id获取一个DOM元素。此方法等价于document.getElementById(id)。
-226      * @param {String} id 要获取的DOM元素的id。
-227      * @returns {HTMLElement} 一个DOM元素。
-228      */
-229     getElement: function(id){
-230         return doc.getElementById(id);
-231     },
-232 
-233     /**
-234      * 设置可视对象DOM元素的CSS样式。
-235      * @param {View} obj 指定要设置CSS样式的可视对象。
-236      * @private
-237      */
-238     setElementStyleByView: function(obj){
-239         var drawable = obj.drawable,
-240             style = drawable.domElement.style,
-241             stateCache = obj._stateCache || (obj._stateCache = {}),
-242             prefix = Hilo.browser.jsVendor, px = 'px', flag = false;
-243 
-244         if(this.cacheStateIfChanged(obj, ['visible'], stateCache)){
-245             style.display = !obj.visible ? 'none' : '';
-246         }
-247         if(this.cacheStateIfChanged(obj, ['alpha'], stateCache)){
-248             style.opacity = obj.alpha;
-249         }
-250         if(!obj.visible || obj.alpha <= 0) return;
-251 
-252         if(this.cacheStateIfChanged(obj, ['width'], stateCache)){
-253             style.width = obj.width + px;
-254         }
-255         if(this.cacheStateIfChanged(obj, ['height'], stateCache)){
-256             style.height = obj.height + px;
-257         }
-258         if(this.cacheStateIfChanged(obj, ['depth'], stateCache)){
-259             style.zIndex = obj.depth + 1;
-260         }
-261         if(flag = this.cacheStateIfChanged(obj, ['pivotX', 'pivotY'], stateCache)){
-262             style[prefix + 'TransformOrigin'] = obj.pivotX + px + ' ' + obj.pivotY + px;
-263         }
-264         if(this.cacheStateIfChanged(obj, ['x', 'y', 'rotation', 'scaleX', 'scaleY'], stateCache) || flag){
-265             style[prefix + 'Transform'] = this.getTransformCSS(obj);
-266         }
-267         if(this.cacheStateIfChanged(obj, ['background'], stateCache)){
-268             style.backgroundColor = obj.background;
-269         }
-270         if(!style.pointerEvents){
-271             style.pointerEvents = 'none';
-272         }
-273 
-274         //render image as background
-275         var image = drawable.image;
-276         if(image){
-277             var src = image.src;
-278             if(src !== stateCache.image){
-279                 stateCache.image = src;
-280                 style.backgroundImage = 'url(' + src + ')';
-281             }
-282 
-283             var rect = drawable.rect;
-284             if(rect){
-285                 var sx = rect[0], sy = rect[1];
-286                 if(sx !== stateCache.sx){
-287                     stateCache.sx = sx;
-288                     style.backgroundPositionX = -sx + px;
-289                 }
-290                 if(sy !== stateCache.sy){
-291                     stateCache.sy = sy;
-292                     style.backgroundPositionY = -sy + px;
-293                 }
-294             }
-295         }
-296 
-297         //render mask
-298         var mask = obj.mask;
-299         if(mask){
-300             var maskImage = mask.drawable.domElement.style.backgroundImage;
-301             if(maskImage !== stateCache.maskImage){
-302                 stateCache.maskImage = maskImage;
-303                 style[prefix + 'MaskImage'] = maskImage;
-304                 style[prefix + 'MaskRepeat'] = 'no-repeat';
-305             }
-306 
-307             var maskX = mask.x, maskY = mask.y;
-308             if(maskX !== stateCache.maskX || maskY !== stateCache.maskY){
-309                 stateCache.maskX = maskX;
-310                 stateCache.maskY = maskY;
-311                 style[prefix + 'MaskPosition'] = maskX + px + ' ' + maskY + px;
-312             }
-313         }
-314     },
-315 
-316     /**
-317      * @private
-318      */
-319     cacheStateIfChanged: function(obj, propNames, stateCache){
-320         var i, len, name, value, changed = false;
-321         for(i = 0, len = propNames.length; i < len; i++){
-322             name = propNames[i];
-323             value = obj[name];
-324             if(value != stateCache[name]){
-325                 stateCache[name] = value;
-326                 changed = true;
-327             }
-328         }
-329         return changed;
-330     },
-331 
-332     /**
-333      * 生成可视对象的CSS变换样式。
-334      * @param {View} obj 指定生成CSS变换样式的可视对象。
-335      * @returns {String} 生成的CSS样式字符串。
-336      */
-337     getTransformCSS: function(obj){
-338         var use3d = this.browser.supportTransform3D,
-339             str3d = use3d ? '3d' : '';
-340 
-341         return 'translate' + str3d + '(' + (obj.x - obj.pivotX) + 'px, ' + (obj.y - obj.pivotY) + (use3d ? 'px, 0px)' : 'px)')
-342              + 'rotate' + str3d + (use3d ? '(0, 0, 1, ' : '(') + obj.rotation + 'deg)'
-343              + 'scale' + str3d + '(' + obj.scaleX + ', ' + obj.scaleY + (use3d ? ', 1)' : ')');
-344     }
-345 };
-346 
-347 })();
\ No newline at end of file diff --git a/docs/api/symbols/src/src_event_EventMixin.js.html b/docs/api/symbols/src/src_event_EventMixin.js.html deleted file mode 100644 index 0574406e..00000000 --- a/docs/api/symbols/src/src_event_EventMixin.js.html +++ /dev/null @@ -1,143 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @class EventMixin是一个包含事件相关功能的mixin。可以通过 Class.mix(target, EventMixin) 来为target增加事件功能。
-  9  * @mixin
- 10  * @static
- 11  * @module hilo/event/EventMixin
- 12  * @requires hilo/core/Class
- 13  */
- 14 var EventMixin = {
- 15     _listeners: null,
- 16 
- 17     /**
- 18      * 增加一个事件监听。
- 19      * @param {String} type 要监听的事件类型。
- 20      * @param {Function} listener 事件监听回调函数。
- 21      * @param {Boolean} once 是否是一次性监听,即回调函数响应一次后即删除,不再响应。
- 22      * @returns {Object} 对象本身。链式调用支持。
- 23      */
- 24     on: function(type, listener, once){
- 25         var listeners = (this._listeners = this._listeners || {});
- 26         var eventListeners = (listeners[type] = listeners[type] || []);
- 27         for(var i = 0, len = eventListeners.length; i < len; i++){
- 28             var el = eventListeners[i];
- 29             if(el.listener === listener) return;
- 30         }
- 31         eventListeners.push({listener:listener, once:once});
- 32         return this;
- 33     },
- 34 
- 35     /**
- 36      * 删除一个事件监听。如果不传入任何参数,则删除所有的事件监听;如果不传入第二个参数,则删除指定类型的所有事件监听。
- 37      * @param {String} type 要删除监听的事件类型。
- 38      * @param {Function} listener 要删除监听的回调函数。
- 39      * @returns {Object} 对象本身。链式调用支持。
- 40      */
- 41     off: function(type, listener){
- 42         //remove all event listeners
- 43         if(arguments.length == 0){
- 44             this._listeners = null;
- 45             return this;
- 46         }
- 47 
- 48         var eventListeners = this._listeners && this._listeners[type];
- 49         if(eventListeners){
- 50             //remove event listeners by specified type
- 51             if(arguments.length == 1){
- 52                 delete this._listeners[type];
- 53                 return this;
- 54             }
- 55 
- 56             for(var i = 0, len = eventListeners.length; i < len; i++){
- 57                 var el = eventListeners[i];
- 58                 if(el.listener === listener){
- 59                     eventListeners.splice(i, 1);
- 60                     if(eventListeners.length === 0) delete this._listeners[type];
- 61                     break;
- 62                 }
- 63             }
- 64         }
- 65         return this;
- 66     },
- 67 
- 68     /**
- 69      * 发送事件。当第一个参数类型为Object时,则把它作为一个整体事件对象。
- 70      * @param {String} type 要发送的事件类型。
- 71      * @param {Object} detail 要发送的事件的具体信息,即事件随带参数。
- 72      * @returns {Boolean} 是否成功调度事件。
- 73      */
- 74     fire: function(type, detail){
- 75         var event, eventType;
- 76         if(typeof type === 'string'){
- 77             eventType = type;
- 78         }else{
- 79             event = type;
- 80             eventType = type.type;
- 81         }
- 82 
- 83         var listeners = this._listeners;
- 84         if(!listeners) return false;
- 85 
- 86         var eventListeners = listeners[eventType];
- 87         if(eventListeners){
- 88             eventListeners = eventListeners.slice(0);
- 89             event = event || new EventObject(eventType, this, detail);
- 90             if(event._stopped) return false;
- 91 
- 92             for(var i = 0; i < eventListeners.length; i++){
- 93                 var el = eventListeners[i];
- 94                 el.listener.call(this, event);
- 95                 if(el.once) eventListeners.splice(i--, 1);
- 96             }
- 97 
- 98             if(eventListeners.length == 0) delete listeners[eventType];
- 99             return true;
-100         }
-101         return false;
-102     }
-103 };
-104 
-105 /**
-106  * 事件对象类。当前仅为内部类,以后有需求的话可能会考虑独立为公开类。
-107  */
-108 var EventObject = Class.create({
-109     constructor: function EventObject(type, target, detail){
-110         this.type = type;
-111         this.target = target;
-112         this.detail = detail;
-113         this.timeStamp = +new Date();
-114     },
-115 
-116     type: null,
-117     target: null,
-118     detail: null,
-119     timeStamp: 0,
-120 
-121     stopImmediatePropagation: function(){
-122         this._stopped = true;
-123     }
-124 });
-125 
-126 //Trick: `stopImmediatePropagation` compatibility
-127 var RawEvent = window.Event;
-128 if(RawEvent){
-129     var proto = RawEvent.prototype,
-130         stop = proto.stopImmediatePropagation;
-131     proto.stopImmediatePropagation = function(){
-132         stop && stop.call(this);
-133         this._stopped = true;
-134     }
-135 }
-136 
\ No newline at end of file diff --git a/docs/api/symbols/src/src_game_Camera.js.html b/docs/api/symbols/src/src_game_Camera.js.html deleted file mode 100644 index 4cc005e4..00000000 --- a/docs/api/symbols/src/src_game_Camera.js.html +++ /dev/null @@ -1,90 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @class Camera类表示摄像机。
-  9  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。
- 10  * @module hilo/game/Camera
- 11  * @requires hilo/core/Hilo
- 12  * @requires hilo/core/Class
- 13  * @property {Number} width 镜头宽
- 14  * @property {Number} height 镜头高
- 15  * @property {Object} scroll 滚动值 {x:0, y:0}
- 16  * @property {View} target 摄像机跟随的目标
- 17  * @property {Array} bounds 摄像机移动边界的矩形区域 [x, y, width, height]
- 18  * @property {Array} deadzone 摄像机不移动的矩形区域 [ x, y, width, height]
- 19  */
- 20 var Camera = Class.create(/** @lends Camera.prototype */{
- 21     constructor:function(properties){
- 22         this.width = 0;
- 23         this.height = 0;
- 24 
- 25         this.target = null;
- 26         this.deadzone = null;
- 27         this.bounds = null;
- 28 
- 29         this.scroll = {
- 30             x:0,
- 31             y:0
- 32         };
- 33 
- 34         Hilo.copy(this, properties);
- 35     },
- 36     /**
- 37      * 更新
- 38      * @param {Number} deltaTime
- 39     */
- 40     tick:function(deltaTime){
- 41         var target = this.target;
- 42         var scroll = this.scroll;
- 43         var bounds = this.bounds;
- 44         var deadzone = this.deadzone;
- 45 
- 46         if(target){
- 47             var viewX, viewY;
- 48             if(deadzone){
- 49                 viewX = Math.min(Math.max(target.x - scroll.x, deadzone[0]), deadzone[0] + deadzone[2]);
- 50                 viewY = Math.min(Math.max(target.y - scroll.y, deadzone[1]), deadzone[1] + deadzone[3]);
- 51             }
- 52             else{
- 53                 viewX = this.width * .5;
- 54                 viewY = this.height * .5;
- 55             }
- 56 
- 57             scroll.x = target.x - viewX;
- 58             scroll.y = target.y - viewY;
- 59 
- 60             if(bounds){
- 61                 scroll.x = Math.min(Math.max(scroll.x, bounds[0]), bounds[0] + bounds[2]);
- 62                 scroll.y = Math.min(Math.max(scroll.y, bounds[1]), bounds[1] + bounds[3]);
- 63             }
- 64         }
- 65         else{
- 66             scroll.x = 0;
- 67             scroll.y = 0;
- 68         }
- 69     },
- 70     /**
- 71      * 跟随目标
- 72      * @param {Object} target 跟随的目标,必须是有x,y属性的对象
- 73      * @param {Array} deadzone 摄像机不移动的矩形区域 [ x, y, width, height]
- 74     */
- 75     follow:function(target, deadzone){
- 76         this.target = target;
- 77         if(deadzone !== undefined){
- 78             this.deadzone = deadzone;
- 79         }
- 80         this.tick();
- 81     }
- 82 });
- 83 
\ No newline at end of file diff --git a/docs/api/symbols/src/src_game_Camera3d.js.html b/docs/api/symbols/src/src_game_Camera3d.js.html deleted file mode 100644 index 32bdb31d..00000000 --- a/docs/api/symbols/src/src_game_Camera3d.js.html +++ /dev/null @@ -1,176 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @class Camera3d 伪3D虚拟摄像机。
-  9  * @module hilo/game/Camera3d
- 10  * @requires hilo/core/Hilo
- 11  * @requires hilo/core/Class
- 12  * @property {Number} fv 镜头视点距离(屏幕视点相对眼睛距离,绝对了坐标缩放比例)
- 13  * @property {Number} fx 镜头视点X(屏幕视点相对屏幕左上角X距离)
- 14  * @property {Number} fy 镜头视点Y(屏幕视点相对屏幕左上角Y距离)
- 15  * @property {Object} stage 3D对象所在容器,可以是stage或container,结合ticker时是必须参数,用来Z深度排序
- 16  * @property {Number} x 镜头三维坐标x
- 17  * @property {Number} y 镜头三维坐标y
- 18  * @property {Number} z 镜头三维坐标z
- 19  * @property {Number} rotationX X轴旋转角度
- 20  * @property {Number} rotationY Y轴旋转角度
- 21  * @property {Number} rotationZ Z轴旋转角度
- 22  */
- 23 var Camera3d = (function(){
- 24 
- 25 	var degtorad = Math.PI / 180;
- 26 
- 27 	//向量旋转
- 28 	function rotateX(x, y, z, ca, sa) {//绕X轴旋转
- 29 		return {
- 30 			x: x,
- 31 			y: y * ca - z * sa,
- 32 			z: y * sa + z * ca
- 33 		};
- 34 	}
- 35 	function rotateY(x, y, z, ca, sa) {//绕Y轴旋转
- 36 		return {
- 37 			x: x * ca - z * sa,
- 38 			y: y,
- 39 			z: x * sa + z * ca
- 40 		};
- 41 	}
- 42 	function rotateZ(x, y, z, ca, sa) {//绕Z轴旋转
- 43 		return {
- 44 			x: x * ca - y * sa,
- 45 			y: x * sa + y * ca,
- 46 			z: z
- 47 		};
- 48 	}
- 49 
- 50 	var Camera3d = Class.create(/** @lends Camera3d.prototype */{
- 51 
- 52 		constructor: function(properties){
- 53 			properties.x = properties.x || 0;
- 54 			properties.y = properties.y || 0;
- 55 			properties.z = properties.z || 0;
- 56 			properties.rotationX = properties.rotationX || 0;
- 57 			properties.rotationY = properties.rotationY || 0;
- 58 			properties.rotationZ = properties.rotationZ || 0;
- 59 
- 60         	Hilo.copy(this, properties);
- 61 		},
- 62 
- 63 	    /**
- 64 	     * 仿射矩阵位移变换,不同于直接修改Camera3d.x/y/z. 是在Camera3d依次做坐标位移 - 旋转变换 后,再加上一个位移变换。主要功能可以做Zoomin/out 功能
- 65 	     * @param {Number} x坐标
- 66 	     * @param {Number} y坐标
- 67 	     * @param {Number} z坐标
- 68 	     */
- 69 		translate : function(x,y,z){
- 70 			this.tx = x;
- 71 			this.ty = y;
- 72 			this.tz = z;
- 73 		},
- 74 
- 75 	    /**
- 76 	     * 旋转X轴方向角度,相当于欧拉角系统的 beta
- 77 	     * @param {Number} X旋转角度
- 78 	     */
- 79 		rotateX : function(angle){
- 80 			this.rotationX = angle;
- 81 		},
- 82 
- 83 	    /**
- 84 	     * 旋转Y轴方向角度,相当于欧拉角系统的 gamma
- 85 	     * @param {Number} Y旋转角度
- 86 	     */
- 87 		rotateY : function(angle){
- 88 			this.rotationY = angle;
- 89 		},
- 90 
- 91 	    /**
- 92 	     * 旋转Z轴方向角度,相当于欧拉角系统的 alpha
- 93 	     * @param {Number} Z旋转角度
- 94 	     */
- 95 		rotateZ : function(angle){
- 96 			this.rotationZ = angle;
- 97 		},
- 98 
- 99 	    /**
-100 	     * 将三维坐标转换投影为二维坐标,同时返回Z轴深度,和投影显示的缩放比例
-101 	     * @param {object} 三维坐标对象
-102 	     * @param {object} Hilo.View对象,用于自动转换坐标
-103 	     */
-104 		project : function(vector3D, view){
-105 
-106 			var rx = this.rotationX * degtorad,
-107 				ry = this.rotationY * degtorad,
-108 				rz = this.rotationZ * degtorad,
-109 
-110 				cosX = Math.cos(rx), sinX = Math.sin(rx),
-111 				cosY = Math.cos(ry), sinY = Math.sin(ry),
-112 				cosZ = Math.cos(rz), sinZ = Math.sin(rz),
-113 
-114 				// 旋转变换前的 仿射矩阵位移,
-115 				dx = vector3D.x - this.x,
-116 				dy = vector3D.y - this.y,
-117 				dz = vector3D.z - this.z,
-118 
-119 			// 旋转矩阵变换
-120 			vector = rotateZ(dx, dy, dz, cosZ, sinZ);
-121 			vector = rotateY(vector.x, vector.y, vector.z, cosY, sinY);
-122 			vector = rotateX(vector.x, vector.y, vector.z, cosX, sinX);
-123 
-124 			// 最后的仿射矩阵变换
-125 			if(this.tx) vector.x -= this.tx;
-126 			if(this.ty) vector.y -= this.ty;
-127 			if(this.tz) vector.z -= this.tz;
-128 
-129 			var	perspective = this.fv / (this.fv + vector.z),
-130 				_x = vector.x * perspective,
-131 				_y = -vector.y * perspective;
-132 
-133 			if(view) {
-134                 view.x = _x + this.fx;
-135                 view.y = _y + this.fy;
-136                 view.z = -vector.z;
-137                 view.scaleX = perspective;
-138                 view.scaleY = perspective;
-139 			} else {
-140 				return {
-141 					x : _x + this.fx,
-142 					y : _y + this.fy,
-143 					z : -vector.z,
-144 					scale : perspective
-145 				};
-146 			}
-147 		},
-148 
-149 	    /**
-150 	     * Z深度排序
-151 	     */
-152 		sortZ : function(){
-153 			this.stage.children.sort(function(view_a, view_b){
-154                 return view_a.z > view_b.z;
-155             });
-156 		},
-157 
-158 	    /**
-159 	     * Ticker 轮询使用
-160 	     */
-161 		tick : function(){
-162 			this.sortZ();
-163 		}
-164 
-165 	});
-166 
-167 	return Camera3d;
-168 
-169 })();
\ No newline at end of file diff --git a/docs/api/symbols/src/src_game_ParticleSystem.js.html b/docs/api/symbols/src/src_game_ParticleSystem.js.html deleted file mode 100644 index e4caae0c..00000000 --- a/docs/api/symbols/src/src_game_ParticleSystem.js.html +++ /dev/null @@ -1,293 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * <iframe src='../../../examples/ParticleSystem.html?noHeader' width = '550' height = '400' scrolling='no'></iframe>
-  9  * <br/>
- 10  * @class 粒子系统
- 11  * @module hilo/game/ParticleSystem
- 12  * @requires hilo/core/Hilo
- 13  * @requires hilo/core/Class
- 14  * @requires hilo/view/View
- 15  * @requires hilo/view/Container
- 16  * @requires hilo/view/Bitmap
- 17  * @requires hilo/view/Drawable
- 18  * @property {Number} emitTime 发射间隔
- 19  * @property {Number} emitTimeVar 发射间隔变化量
- 20  * @property {Number} emitNum 每次发射数量变化量
- 21  * @property {Number} emitNumVar 每次发射数量
- 22  * @property {Number} emitterX 发射器位置x
- 23  * @property {Number} emitterY 发射器位置y
- 24  * @property {Number} totalTime 总时间
- 25  * @property {Number} gx 重力加速度x
- 26  * @property {Number} gy 重力加速度y
- 27  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。
- 28  * @param {Object} properties.particle 粒子属性配置
- 29  * @param {Number} properties.particle.x x位置
- 30  * @param {Number} properties.particle.y y位置
- 31  * @param {Number} properties.particle.vx x速度
- 32  * @param {Number} properties.particle.vy y速度
- 33  * @param {Number} properties.particle.ax x加速度
- 34  * @param {Number} properties.particle.ay y加速度
- 35  * @param {Number} properties.particle.life 粒子存活时间 单位s
- 36  * @param {Number} properties.particle.alpha 透明度
- 37  * @param {Number} properties.particle.alphaV 透明度变化
- 38  * @param {Number} properties.particle.scale 缩放
- 39  * @param {Number} properties.particle.scaleV 缩放变化速度
- 40 */
- 41 var ParticleSystem = (function(){
- 42     //粒子属性
- 43     var props = ['x', 'y', 'vx', 'vy', 'ax', 'ay', 'rotation', 'rotationV', 'scale', 'scaleV', 'alpha', 'alphaV', 'life'];
- 44     var PROPS = [];
- 45     for(var i = 0, l = props.length;i < l;i ++){
- 46         var p = props[i];
- 47         PROPS.push(p);
- 48         PROPS.push(p + "Var");
- 49     }
- 50 
- 51     //粒子默认值
- 52     var PROPS_DEFAULT = {
- 53         x: 0,
- 54         y: 0,
- 55         vx: 0,
- 56         vy: 0,
- 57         ax: 0,
- 58         ay: 0,
- 59         scale:1,
- 60         scaleV:0,
- 61         alpha:1,
- 62         alphaV:0,
- 63         rotation: 0,
- 64         rotationV: 0,
- 65         life: 1
- 66     };
- 67 
- 68     var diedParticles = [];
- 69 
- 70     var ParticleSystem = Class.create(/** @lends ParticleSystem.prototype */{
- 71         Extends:Container,
- 72         constructor:function ParticleSystem(properties){
- 73             this.id = this.id || properties.id || Hilo.getUid("ParticleSystem");
- 74 
- 75             this.emitterX = 0;
- 76             this.emitterY = 0;
- 77 
- 78             this.gx = 0;
- 79             this.gy = 0;
- 80             this.totalTime = Infinity;
- 81 
- 82             this.emitNum = 10;
- 83             this.emitNumVar = 0;
- 84 
- 85             this.emitTime = .2;
- 86             this.emitTimeVar = 0;
- 87 
- 88             this.particle = {};
- 89 
- 90             ParticleSystem.superclass.constructor.call(this, properties);
- 91 
- 92             this.reset(properties);
- 93         },
- 94         Statics:{
- 95             PROPS:PROPS,
- 96             PROPS_DEFAULT:PROPS_DEFAULT,
- 97             diedParticles:diedParticles
- 98         },
- 99         /**
-100          * 重置属性
-101          * @param {Object} cfg
-102         */
-103         reset: function(cfg) {
-104             Hilo.copy(this, cfg);
-105             this.particle.system = this;
-106             if(this.totalTime <= 0){
-107                 this.totalTime = Infinity;
-108             }
-109         },
-110         /**
-111          * 更新
-112          * @param {Number} dt 间隔时间 单位ms
-113         */
-114         onUpdate: function(dt) {
-115             dt *= .001;
-116             if (this._isRun) {
-117                 this._totalRunTime += dt;
-118                 this._currentRunTime += dt;
-119                 if (this._currentRunTime >= this._emitTime) {
-120                     this._currentRunTime = 0;
-121                     this._emitTime = getRandomValue(this.emitTime, this.emitTimeVar);
-122                     this._emit();
-123                 }
-124 
-125                 if (this._totalRunTime >= this.totalTime) {
-126                     this.stop();
-127                 }
-128             }
-129         },
-130         /**
-131          * 发射粒子
-132         */
-133         _emit: function() {
-134             var num = getRandomValue(this.emitNum, this.emitNumVar)>>0;
-135             for (var i = 0; i < num; i++) {
-136                 this.addChild(Particle.create(this.particle));
-137             }
-138         },
-139         /**
-140          * 开始
-141         */
-142         start: function() {
-143             this.stop(true);
-144             this._currentRunTime = 0;
-145             this._totalRunTime = 0;
-146             this._isRun = true;
-147             this._emitTime = getRandomValue(this.emitTime, this.emitTimeVar);
-148         },
-149         /**
-150          * 停止
-151          * @param {Boolean} clear 是否清除所有粒子
-152         */
-153         stop: function(clear) {
-154             this.isRun = false;
-155             if (clear) {
-156                 for (var i = this.children.length - 1; i >= 0; i--) {
-157                     this.children[i].destroy();
-158                 }
-159             }
-160         }
-161     });
-162 
-163     /**
-164      * @class 粒子
-165      * @inner
-166      * @param {Number} vx x速度
-167      * @param {Number} vy y速度
-168      * @param {Number} ax x加速度
-169      * @param {Number} ay y加速度
-170      * @param {Number} scaleV 缩放变化速度
-171      * @param {Number} alphaV 透明度变换速度
-172      * @param {Number} rotationV 旋转速度
-173      * @param {Number} life 存活时间
-174     */
-175     var Particle = Class.create({
-176         Extends:View,
-177         constructor:function Particle(properties){
-178             this.id = this.id || properties.id || Hilo.getUid("Particle");
-179             Particle.superclass.constructor.call(this, properties);
-180             this.init(properties);
-181         },
-182         /**
-183          * 更新
-184         */
-185         onUpdate: function(dt) {
-186             dt *= .001;
-187             if(this._died){
-188                 return;
-189             }
-190             var ax = this.ax + this.system.gx;
-191             var ay = this.ay + this.system.gy;
-192 
-193             this.vx += ax * dt;
-194             this.vy += ay * dt;
-195             this.x += this.vx * dt;
-196             this.y += this.vy * dt;
-197 
-198             this.rotation += this.rotationV;
-199 
-200             if (this._time > .1) {
-201                 this.alpha += this.alphaV;
-202             }
-203 
-204             this.scale += this.scaleV;
-205             this.scaleX = this.scaleY = this.scale;
-206 
-207             this._time += dt;
-208             if (this._time >= this.life || this.alpha < 0) {
-209                 this.destroy();
-210             }
-211         },
-212         /**
-213          * 设置图像
-214         */
-215         setImage: function(img, frame) {
-216             this.drawable = this.drawable||new Drawable();
-217             var frame = frame || [0, 0, img.width, img.height];
-218 
-219             this.width = frame[2];
-220             this.height = frame[3];
-221             this.drawable.rect = frame;
-222             this.drawable.image = img;
-223         },
-224         /**
-225          * 销毁
-226         */
-227         destroy: function() {
-228             this.died = true;
-229             this.removeFromParent();
-230             diedParticles.push(this);
-231         },
-232         /**
-233          * 初始化
-234         */
-235         init: function(cfg) {
-236             this.system = cfg.system;
-237             this._died = false;
-238             this._time = 0;
-239             this.alpha = 1;
-240             for (var i = 0, l = PROPS.length; i < l; i++) {
-241                 var p = PROPS[i];
-242                 var v = cfg[p] === undefined ? PROPS_DEFAULT[p] : cfg[p];
-243                 this[p] = getRandomValue(v, cfg[p + 'Var']);
-244             }
-245 
-246             this.x += this.system.emitterX;
-247             this.y += this.system.emitterY;
-248 
-249             if (cfg.image) {
-250                 var frame = cfg.frame;
-251                 if(frame && frame[0].length){
-252                     frame = frame[(Math.random() * frame.length) >> 0];
-253                 }
-254                 this.setImage(cfg.image, frame);
-255                 if(cfg.pivotX !== undefined){
-256                     this.pivotX = cfg.pivotX * frame[2];
-257                 }
-258                 if(cfg.pivotY !== undefined){
-259                     this.pivotY = cfg.pivotY * frame[3];
-260                 }
-261             }
-262         },
-263         Statics:{
-264             /**
-265              * 生成粒子
-266              * @param {Object} cfg
-267             */
-268             create:function(cfg) {
-269                 if (diedParticles.length > 0) {
-270                     var particle = diedParticles.pop();
-271                     particle.init(cfg);
-272                     return particle;
-273                 } else {
-274                     return new Particle(cfg);
-275                 }
-276             }
-277         }
-278 
-279     });
-280 
-281     function getRandomValue(value, variances){
-282         return variances ? value + (Math.random() - .5) * 2 * variances : value;
-283     }
-284 
-285     return ParticleSystem;
-286 })();
\ No newline at end of file diff --git a/docs/api/symbols/src/src_geom_Matrix.js.html b/docs/api/symbols/src/src_geom_Matrix.js.html deleted file mode 100644 index 6ed84d5e..00000000 --- a/docs/api/symbols/src/src_geom_Matrix.js.html +++ /dev/null @@ -1,165 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @class Matrix类表示一个转换矩阵,它确定如何将点从一个坐标空间映射到另一个坐标空间。
-  9  * @param {Number} a 缩放或旋转图像时影响像素沿 x 轴定位的值。
- 10  * @param {Number} b 旋转或倾斜图像时影响像素沿 y 轴定位的值。
- 11  * @param {Number} c 旋转或倾斜图像时影响像素沿 x 轴定位的值。
- 12  * @param {Number} d 缩放或旋转图像时影响像素沿 y 轴定位的值。
- 13  * @param {Number} tx 沿 x 轴平移每个点的距离。
- 14  * @param {Number} ty 沿 y 轴平移每个点的距离。
- 15  * @module hilo/geom/Matrix
- 16  * @requires hilo/core/Class
- 17  */
- 18 var Matrix = Class.create(/** @lends Matrix.prototype */{
- 19     constructor: function(a, b, c, d, tx, ty){
- 20         this.a = a;
- 21         this.b = b;
- 22         this.c = c;
- 23         this.d = d;
- 24         this.tx = tx;
- 25         this.ty = ty;
- 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         if(args.length >= 6){
- 39             var ma = args[0], mb = args[1], mc = args[2],
- 40                 md = args[3], mx = args[4], my = args[5];
- 41         }else{
- 42             ma = mtx.a;
- 43             mb = mtx.b;
- 44             mc = mtx.c;
- 45             md = mtx.d;
- 46             mx = mtx.tx;
- 47             my = mtx.ty;
- 48         }
- 49 
- 50         this.a = a * ma + b * mc;
- 51         this.b = a * mb + b * md;
- 52         this.c = c * ma + d * mc;
- 53         this.d = c * mb + d * md;
- 54         this.tx = tx * ma + ty * mc + mx;
- 55         this.ty = tx * mb + ty * md + my;
- 56         return this;
- 57     },
- 58 
- 59     /**
- 60      * 对 Matrix 对象应用旋转转换。
- 61      * @param {Number} angle 旋转的角度。
- 62      * @returns {Matrix} 一个Matrix对象。
- 63      */
- 64     rotate: function(angle){
- 65         var sin = Math.sin(angle), cos = Math.cos(angle),
- 66             a = this.a, b = this.b, c = this.c, d = this.d,
- 67             tx = this.tx, ty = this.ty;
- 68 
- 69         this.a = a * cos - b * sin;
- 70         this.b = a * sin + b * cos;
- 71         this.c = c * cos - d * sin;
- 72         this.d = c * sin + d * cos;
- 73         this.tx = tx * cos - ty * sin;
- 74         this.ty = tx * sin + ty * cos;
- 75         return this;
- 76     },
- 77 
- 78     /**
- 79      * 对矩阵应用缩放转换。
- 80      * @param {Number} sx 用于沿 x 轴缩放对象的乘数。
- 81      * @param {Number} sy 用于沿 y 轴缩放对象的乘数。
- 82      * @returns {Matrix} 一个Matrix对象。
- 83      */
- 84     scale: function(sx, sy){
- 85         this.a *= sx;
- 86         this.d *= sy;
- 87         this.c *= sx;
- 88         this.b *= sy;
- 89         this.tx *= sx;
- 90         this.ty *= sy;
- 91         return this;
- 92     },
- 93 
- 94     /**
- 95      * 沿 x 和 y 轴平移矩阵,由 dx 和 dy 参数指定。
- 96      * @param {Number} dx 沿 x 轴向右移动的量(以像素为单位)。
- 97      * @param {Number} dy 沿 y 轴向右移动的量(以像素为单位)。
- 98      * @returns {Matrix} 一个Matrix对象。
- 99      */
-100     translate: function(dx, dy){
-101         this.tx += dx;
-102         this.ty += dy;
-103         return this;
-104     },
-105 
-106     /**
-107      * 为每个矩阵属性设置一个值,该值将导致 null 转换。通过应用恒等矩阵转换的对象将与原始对象完全相同。
-108      * @returns {Matrix} 一个Matrix对象。
-109      */
-110     identity: function(){
-111         this.a = this.d = 1;
-112         this.b = this.c = this.tx = this.ty = 0;
-113         return this;
-114     },
-115 
-116     /**
-117      * 执行原始矩阵的逆转换。您可以将一个逆矩阵应用于对象来撤消在应用原始矩阵时执行的转换。
-118      * @returns {Matrix} 一个Matrix对象。
-119      */
-120     invert: function(){
-121         var a = this.a;
-122         var b = this.b;
-123         var c = this.c;
-124         var d = this.d;
-125         var tx = this.tx;
-126         var i = a * d - b * c;
-127 
-128         this.a = d / i;
-129         this.b = -b / i;
-130         this.c = -c / i;
-131         this.d = a / i;
-132         this.tx = (c * this.ty - d * tx) / i;
-133         this.ty = -(a * this.ty - b * tx) / i;
-134         return this;
-135     },
-136 
-137     /**
-138      * 返回将 Matrix 对象表示的几何转换应用于指定点所产生的结果。
-139      * @param {Object} point 想要获得其矩阵转换结果的点。
-140      * @param {Boolean} round 是否对点的坐标进行向上取整。
-141      * @param {Boolean} returnNew 是否返回一个新的点。
-142      * @returns {Object} 由应用矩阵转换所产生的点。
-143      */
-144     transformPoint: function(point, round, returnNew){
-145         var x = point.x * this.a + point.y * this.c + this.tx,
-146             y = point.x * this.b + point.y * this.d + this.ty;
-147 
-148         if(round){
-149             x = x + 0.5 >> 0;
-150             y = y + 0.5 >> 0;
-151         }
-152         if(returnNew) return {x:x, y:y};
-153         point.x = x;
-154         point.y = y;
-155         return point;
-156     }
-157 
-158 });
\ No newline at end of file diff --git a/docs/api/symbols/src/src_loader_ImageLoader.js.html b/docs/api/symbols/src/src_loader_ImageLoader.js.html deleted file mode 100644 index 07b67948..00000000 --- a/docs/api/symbols/src/src_loader_ImageLoader.js.html +++ /dev/null @@ -1,50 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @private
-  9  * @class 图片资源加载器。
- 10  * @module hilo/loader/ImageLoader
- 11  * @requires hilo/core/Class
- 12  */
- 13 var ImageLoader = Class.create({
- 14     load: function(data){
- 15         var me = this;
- 16 
- 17         var image = new Image();
- 18         if(data.crossOrigin){
- 19             image.crossOrigin = data.crossOrigin;
- 20         }
- 21 
- 22         image.onload = //me.onLoad.bind(image);
- 23         function(){
- 24             me.onLoad(image)
- 25         };
- 26         image.onerror = image.onabort = me.onError.bind(image);
- 27         image.src = data.src + (data.noCache ? (data.src.indexOf('?') == -1 ? '?' : '&') + 't=' + (+new Date) : '');
- 28     },
- 29 
- 30     onLoad: function(e){
- 31         e = e||window.event;
- 32         var image = e//e.target;
- 33         image.onload = image.onerror = image.onabort = null;
- 34         return image;
- 35     },
- 36 
- 37     onError: function(e){
- 38         var image = e.target;
- 39         image.onload = image.onerror = image.onabort = null;
- 40         return e;
- 41     }
- 42 
- 43 });
\ No newline at end of file diff --git a/docs/api/symbols/src/src_loader_LoadQueue.js.html b/docs/api/symbols/src/src_loader_LoadQueue.js.html deleted file mode 100644 index 3ab63ebe..00000000 --- a/docs/api/symbols/src/src_loader_LoadQueue.js.html +++ /dev/null @@ -1,231 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6  
-  7 //TODO: 超时timeout,失败重连次数maxTries,更多的下载器Loader,队列暂停恢复等。
-  8 
-  9 /**
- 10  * @class LoadQueue是一个队列下载工具。
- 11  * @param {Object} source 要下载的资源。可以是单个资源对象或多个资源的数组。
- 12  * @module hilo/loader/LoadQueue
- 13  * @requires hilo/core/Class
- 14  * @requires hilo/event/EventMixin
- 15  * @requires hilo/loader/ImageLoader
- 16  * @requires hilo/loader/ScriptLoader
- 17  * @property {Int} maxConnections 同时下载的最大连接数。默认为2。
- 18  */
- 19 var LoadQueue = Class.create(/** @lends LoadQueue.prototype */{
- 20     Mixes: EventMixin,
- 21     constructor: function(source){
- 22         this._source = [];
- 23         this.add(source);
- 24     },
- 25 
- 26     maxConnections: 2, //TODO: 应该是每个host的最大连接数。
- 27 
- 28     _source: null,
- 29     _loaded: 0,
- 30     _connections: 0,
- 31     _currentIndex: -1,
- 32 
- 33     /**
- 34      * 增加要下载的资源。可以是单个资源对象或多个资源的数组。
- 35      * @param {Object|Array} source 资源对象或资源对象数组。每个资源对象包含以下属性:
- 36      * <ul>
- 37      * <li><b>id</b> - 资源的唯一标识符。可用于从下载队列获取目标资源。</li>
- 38      * <li><b>src</b> - 资源的地址url。</li>
- 39      * <li><b>type</b> - 指定资源的类型。默认会根据资源文件的后缀来自动判断类型,不同的资源类型会使用不同的加载器来加载资源。</li>
- 40      * <li><b>loader</b> - 指定资源的加载器。默认会根据资源类型来自动选择加载器,若指定loader,则会使用指定的loader来加载资源。</li>
- 41      * <li><b>noCache</b> - 指示加载资源时是否增加时间标签以防止缓存。</li>
- 42      * <li><b>size</b> - 资源对象的预计大小。可用于预估下载进度。</li>
- 43      * </ul>
- 44      * @returns {LoadQueue} 下载队列实例本身。
- 45      */
- 46     add: function(source){
- 47         var me = this;
- 48         if(source){
- 49             source = source instanceof Array ? source : [source];
- 50             me._source = me._source.concat(source);
- 51         }
- 52         return me;
- 53     },
- 54 
- 55     /**
- 56      * 根据id或src地址获取资源对象。
- 57      * @param {String} id 指定资源的id或src。
- 58      * @returns {Object} 资源对象。
- 59      */
- 60     get: function(id){
- 61         if(id){
- 62             var source = this._source;
- 63             for(var i = 0; i < source.length; i++){
- 64                 var item = source[i];
- 65                 if(item.id === id || item.src === id){
- 66                     return item;
- 67                 }
- 68             }
- 69         }
- 70         return null;
- 71     },
- 72 
- 73     /**
- 74      * 根据id或src地址获取资源内容。
- 75      * @param {String} id 指定资源的id或src。
- 76      * @returns {Object} 资源内容。
- 77      */
- 78     getContent: function(id){
- 79         var item = this.get(id);
- 80         return item && item.content;
- 81     },
- 82 
- 83     /**
- 84      * 开始下载队列。
- 85      * @returns {LoadQueue} 下载队列实例本身。
- 86      */
- 87     start: function(){
- 88         var me = this;
- 89         me._loadNext();
- 90         return me;
- 91     },
- 92 
- 93     /**
- 94      * @private
- 95      */
- 96     _loadNext: function(){
- 97         var me = this, source = me._source, len = source.length;
- 98 
- 99         //all items loaded
-100         if(me._loaded >= len){
-101             me.fire('complete');
-102             return;
-103         }
-104 
-105         if(me._currentIndex < len - 1 && me._connections < me.maxConnections){
-106             var index = ++me._currentIndex;
-107             var item = source[index];
-108             var loader = me._getLoader(item);
-109 
-110             if(loader){
-111                 var onLoad = loader.onLoad, onError = loader.onError;
-112 
-113                 loader.onLoad = function(e){
-114                     loader.onLoad = onLoad;
-115                     loader.onError = onError;
-116                     var content = onLoad && onLoad.call(loader, e) || e.target;
-117                     me._onItemLoad(index, content);
-118                 };
-119                 loader.onError = function(e){
-120                     loader.onLoad = onLoad;
-121                     loader.onError = onError;
-122                     onError && onError.call(loader, e);
-123                     me._onItemError(index, e);
-124                 };
-125                 me._connections++;
-126             }
-127 
-128             me._loadNext();
-129             loader && loader.load(item);
-130         }
-131     },
-132 
-133     /**
-134      * @private
-135      */
-136     _getLoader: function(item){
-137         var me = this, loader = item.loader;
-138         if(loader) return loader;
-139 
-140         var type = item.type || getExtension(item.src);
-141 
-142         switch(type){
-143             case 'png':
-144             case 'jpg':
-145             case 'jpeg':
-146             case 'gif':
-147                 loader = new ImageLoader();
-148                 break;
-149             case 'js':
-150             case 'jsonp':
-151                 loader = new ScriptLoader();
-152                 break;
-153         }
-154 
-155         return loader;
-156     },
-157 
-158     /**
-159      * @private
-160      */
-161     _onItemLoad: function(index, content){
-162         var me = this, item = me._source[index];
-163         item.loaded = true;
-164         item.content = content;
-165         me._connections--;
-166         me._loaded++;
-167         me.fire('load', item);
-168         me._loadNext();
-169     },
-170 
-171     /**
-172      * @private
-173      */
-174     _onItemError: function(index, e){
-175         var me = this, item = me._source[index];
-176         item.error = e;
-177         me._connections--;
-178         me._loaded++;
-179         me.fire('error', item);
-180         me._loadNext();
-181     },
-182 
-183     /**
-184      * 获取全部或已下载的资源的字节大小。
-185      * @param {Boolean} loaded 指示是已下载的资源还是全部资源。默认为全部。
-186      * @returns {Number} 指定资源的字节大小。
-187      */
-188     getSize: function(loaded){
-189         var size = 0, source = this._source;
-190         for(var i = 0; i < source.length; i++){
-191             var item = source[i];
-192             size += (loaded ? item.loaded && item.size : item.size) || 0;
-193         }
-194         return size;
-195     },
-196 
-197     /**
-198      * 获取已下载的资源数量。
-199      * @returns {Uint} 已下载的资源数量。
-200      */
-201     getLoaded: function(){
-202         return this._loaded;
-203     },
-204 
-205     /**
-206      * 获取所有资源的数量。
-207      * @returns {Uint} 所有资源的数量。
-208      */
-209     getTotal: function(){
-210         return this._source.length;
-211     }
-212 
-213 });
-214 
-215 /**
-216  * @private
-217  */
-218 function getExtension(src){
-219     var extRegExp = /\/?[^/]+\.(\w+)(\?\S+)?$/i, match, extension;
-220     if(match = src.match(extRegExp)){
-221         extension = match[1].toLowerCase();
-222     }
-223     return extension || null;
-224 }
\ No newline at end of file diff --git a/docs/api/symbols/src/src_loader_ScriptLoader.js.html b/docs/api/symbols/src/src_loader_ScriptLoader.js.html deleted file mode 100644 index 622b0508..00000000 --- a/docs/api/symbols/src/src_loader_ScriptLoader.js.html +++ /dev/null @@ -1,65 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @private
-  9  * @class javascript或JSONP加载器。
- 10  * @module hilo/loader/ScriptLoader
- 11  * @requires hilo/core/Class
- 12  */
- 13 var ScriptLoader = Class.create({
- 14     load: function(data){
- 15         var me = this, src = data.src, isJSONP = data.type == 'jsonp';
- 16 
- 17         if(isJSONP){
- 18             var callbackName = data.callbackName || 'callback';
- 19             var callback = data.callback || 'jsonp' + (++ScriptLoader._count);
- 20             var win = window;
- 21 
- 22             if(!win[callback]){
- 23                 win[callback] = function(result){
- 24                     delete win[callback];
- 25                 }
- 26             }
- 27         }
- 28 
- 29         if(isJSONP) src += (src.indexOf('?') == -1 ? '?' : '&') + callbackName + '=' + callback;
- 30         if(data.noCache) src += (src.indexOf('?') == -1 ? '?' : '&') + 't=' + (+new Date());
- 31 
- 32         var script = document.createElement('script');
- 33         script.type = 'text/javascript';
- 34         script.async = true;
- 35         script.onload = me.onLoad.bind(me);
- 36         script.onerror = me.onError.bind(me);
- 37         script.src = src;
- 38         if(data.id) script.id = data.id;
- 39         document.getElementsByTagName('head')[0].appendChild(script);
- 40     },
- 41 
- 42     onLoad: function(e){
- 43         var script = e.target;
- 44         script.onload = script.onerror = null;
- 45         return script;
- 46     },
- 47 
- 48     onError: function(e){
- 49         var script = e.target;
- 50         script.onload = script.onerror = null;
- 51         return e;
- 52     },
- 53 
- 54     Statics: {
- 55         _count: 0
- 56     }
- 57 
- 58 });
\ No newline at end of file diff --git a/docs/api/symbols/src/src_media_HTMLAudio.js.html b/docs/api/symbols/src/src_media_HTMLAudio.js.html deleted file mode 100644 index 9537752f..00000000 --- a/docs/api/symbols/src/src_media_HTMLAudio.js.html +++ /dev/null @@ -1,191 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @class HTMLAudio声音播放模块。此模块使用HTMLAudioElement播放音频。
-  9  * 使用限制:iOS平台需用户事件触发才能播放,很多Android浏览器仅能同时播放一个音频。
- 10  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。
- 11  * @module hilo/media/HTMLAudio
- 12  * @requires hilo/core/Hilo
- 13  * @requires hilo/core/Class
- 14  * @requires hilo/event/EventMixin
- 15  * @property {String} src 播放的音频的资源地址。
- 16  * @property {Boolean} loop 是否循环播放。默认为false。
- 17  * @property {Boolean} autoPlay 是否自动播放。默认为false。
- 18  * @property {Boolean} loaded 音频资源是否已加载完成。只读属性。
- 19  * @property {Boolean} playing 是否正在播放音频。只读属性。
- 20  * @property {Number} duration 音频的时长。只读属性。
- 21  * @property {Number} volume 音量的大小。取值范围:0-1。
- 22  * @property {Boolean} muted 是否静音。默认为false。
- 23  */
- 24 var HTMLAudio = Class.create(/** @lends HTMLAudio.prototype */{
- 25     Mixes: EventMixin,
- 26     constructor: function(properties){
- 27         Hilo.copy(this, properties, true);
- 28 
- 29         this._onAudioEvent = this._onAudioEvent.bind(this);
- 30     },
- 31 
- 32     src: null,
- 33     loop: false,
- 34     autoPlay: false,
- 35     loaded: false,
- 36     playing: false,
- 37     duration: 0,
- 38     volume: 1,
- 39     muted: false,
- 40 
- 41     _element: null, //HTMLAudioElement对象
- 42 
- 43     /**
- 44      * 加载音频文件。
- 45      */
- 46     load: function(){
- 47         if(!this._element){
- 48             try{
- 49                 var elem = this._element = new Audio();
- 50                 elem.addEventListener('canplaythrough', this._onAudioEvent, false);
- 51                 elem.addEventListener('ended', this._onAudioEvent, false);
- 52                 elem.addEventListener('error', this._onAudioEvent, false);
- 53                 elem.src = this.src;
- 54                 elem.volume = this.volume;
- 55                 elem.load();
- 56             }
- 57             catch(err){
- 58                 //ie9 某些版本有Audio对象,但是执行play,pause会报错!
- 59                 var elem = this._element = {};
- 60                 elem.play = elem.pause = function(){
- 61 
- 62                 };
- 63             }
- 64         }
- 65         return this;
- 66     },
- 67 
- 68     /**
- 69      * @private
- 70      */
- 71     _onAudioEvent: function(e){
- 72         // console.log('onAudioEvent:', e.type);
- 73         var type = e.type;
- 74 
- 75         switch(type){
- 76             case 'canplaythrough':
- 77                 e.target.removeEventListener(type, this._onAudioEvent);
- 78                 this.loaded = true;
- 79                 this.duration = this._element.duration;
- 80                 this.fire('load');
- 81                 if(this.autoPlay) this._doPlay();
- 82                 break;
- 83             case 'ended':
- 84                 this.playing = false;
- 85                 this.fire('end');
- 86                 if(this.loop) this._doPlay();
- 87                 break;
- 88             case 'error':
- 89                 this.fire('error');
- 90                 break;
- 91         }
- 92     },
- 93 
- 94     /**
- 95      * @private
- 96      */
- 97     _doPlay: function(){
- 98         if(!this.playing){
- 99             this._element.volume = this.muted ? 0 : this.volume;
-100             this._element.play();
-101             this.playing = true;
-102         }
-103     },
-104 
-105     /**
-106      * 播放音频。如果正在播放,则会重新开始。
-107      * 注意:为了避免第一次播放不成功,建议在load音频后再播放。
-108      */
-109     play: function(){
-110         if(this.playing) this.stop();
-111 
-112         if(!this._element){
-113             this.autoPlay = true;
-114             this.load();
-115         }else if(this.loaded){
-116             this._doPlay();
-117         }
-118 
-119         return this;
-120     },
-121 
-122     /**
-123      * 暂停音频。
-124      */
-125     pause: function(){
-126         if(this.playing){
-127             this._element.pause();
-128             this.playing = false;
-129         }
-130         return this;
-131     },
-132 
-133     /**
-134      * 恢复音频播放。
-135      */
-136     resume: function(){
-137         if(!this.playing){
-138             this._doPlay();
-139         }
-140         return this;
-141     },
-142 
-143     /**
-144      * 停止音频播放。
-145      */
-146     stop: function(){
-147         if(this.playing){
-148             this._element.pause();
-149             this._element.currentTime = 0;
-150             this.playing = false;
-151         }
-152         return this;
-153     },
-154 
-155     /**
-156      * 设置音量。注意: iOS设备无法设置音量。
-157      */
-158     setVolume: function(volume){
-159         if(this.volume != volume){
-160             this.volume = volume;
-161             this._element.volume = volume;
-162         }
-163         return this;
-164     },
-165 
-166     /**
-167      * 设置静音模式。注意: iOS设备无法设置静音模式。
-168      */
-169     setMute: function(muted){
-170         if(this.muted != muted){
-171             this.muted = muted;
-172             this._element.volume = muted ? 0 : this.volume;
-173         }
-174         return this;
-175     },
-176 
-177     Statics: /** @lends HTMLAudio */ {
-178         /**
-179          * 浏览器是否支持HTMLAudio。
-180          */
-181         isSupported: window.Audio !== null
-182     }
-183 
-184 });
\ No newline at end of file diff --git a/docs/api/symbols/src/src_media_WebAudio.js.html b/docs/api/symbols/src/src_media_WebAudio.js.html deleted file mode 100644 index 691cc79f..00000000 --- a/docs/api/symbols/src/src_media_WebAudio.js.html +++ /dev/null @@ -1,276 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @class WebAudio声音播放模块。它具有更好的声音播放和控制能力,适合在iOS6+平台使用。
-  9  * 兼容情况:iOS6+、Chrome33+、Firefox28+支持,但Android浏览器均不支持。
- 10  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。
- 11  * @module hilo/media/WebAudio
- 12  * @requires hilo/core/Hilo
- 13  * @requires hilo/core/Class
- 14  * @requires hilo/event/EventMixin
- 15  * @property {String} src 播放的音频的资源地址。
- 16  * @property {Boolean} loop 是否循环播放。默认为false。
- 17  * @property {Boolean} autoPlay 是否自动播放。默认为false。
- 18  * @property {Boolean} loaded 音频资源是否已加载完成。只读属性。
- 19  * @property {Boolean} playing 是否正在播放音频。只读属性。
- 20  * @property {Number} duration 音频的时长。只读属性。
- 21  * @property {Number} volume 音量的大小。取值范围:0-1。
- 22  * @property {Boolean} muted 是否静音。默认为false。
- 23  */
- 24 var WebAudio = (function(){
- 25 
- 26 var AudioContext = window.AudioContext || window.webkitAudioContext;
- 27 var context = AudioContext ? new AudioContext() : null;
- 28 
- 29 return Class.create(/** @lends WebAudio.prototype */{
- 30     Mixes: EventMixin,
- 31     constructor: function(properties){
- 32         Hilo.copy(this, properties, true);
- 33 
- 34         this._init();
- 35     },
- 36 
- 37     src: null,
- 38     loop: false,
- 39     autoPlay: false,
- 40     loaded: false,
- 41     playing: false,
- 42     duration: 0,
- 43     volume: 1,
- 44     muted: false,
- 45 
- 46     _context: null, //WebAudio上下文
- 47     _gainNode: null, //音量控制器
- 48     _buffer: null, //音频缓冲文件
- 49     _audioNode: null, //音频播放器
- 50     _startTime: 0, //开始播放时间戳
- 51     _offset: 0, //播放偏移量
- 52 
- 53     /**
- 54      * @private 初始化
- 55      */
- 56     _init:function(){
- 57         this._context = context;
- 58         this._gainNode = context.createGain ? context.createGain() : context.createGainNode();
- 59         this._gainNode.connect(context.destination);
- 60 
- 61         this._onAudioEvent = this._onAudioEvent.bind(this);
- 62         this._onDecodeComplete = this._onDecodeComplete.bind(this);
- 63         this._onDecodeError = this._onDecodeError.bind(this);
- 64     },
- 65     /**
- 66      * 加载音频文件。注意:我们使用XMLHttpRequest进行加载,因此需要注意跨域问题。
- 67      */
- 68     load: function(){
- 69         if(!this._buffer){
- 70             var request = new XMLHttpRequest();
- 71             request.src = this.src;
- 72             request.open('GET', this.src, true);
- 73             request.responseType = 'arraybuffer';
- 74             request.onload = this._onAudioEvent;
- 75             request.onprogress = this._onAudioEvent;
- 76             request.onerror = this._onAudioEvent;
- 77             request.send();
- 78             this._buffer = true;
- 79         }
- 80         return this;
- 81     },
- 82 
- 83     /**
- 84      * @private
- 85      */
- 86     _onAudioEvent: function(e){
- 87         // console.log('onAudioEvent:', e.type);
- 88         var type = e.type;
- 89 
- 90         switch(type){
- 91             case 'load':
- 92                 var request = e.target;
- 93                 request.onload = request.onprogress = request.onerror = null;
- 94                 this._context.decodeAudioData(request.response, this._onDecodeComplete, this._onDecodeError);
- 95                 request = null;
- 96                 break;
- 97             case 'ended':
- 98                 this.playing = false;
- 99                 this.fire('end');
-100                 if(this.loop) this._doPlay();
-101                 break;
-102             case 'progress':
-103                 this.fire(e);
-104                 break;
-105             case 'error':
-106                 this.fire(e);
-107                 break;
-108         }
-109     },
-110 
-111     /**
-112      * @private
-113      */
-114     _onDecodeComplete: function(audioBuffer){
-115         this._buffer = audioBuffer;
-116         this.loaded = true;
-117         this.duration = audioBuffer.duration;
-118         // console.log('onDecodeComplete:', audioBuffer.duration);
-119         this.fire('load');
-120         if(this.autoPlay) this._doPlay();
-121     },
-122 
-123     /**
-124      * @private
-125      */
-126     _onDecodeError: function(){
-127         this.fire('error');
-128     },
-129 
-130     /**
-131      * @private
-132      */
-133     _doPlay: function(){
-134         this._clearAudioNode();
-135 
-136         var audioNode = this._context.createBufferSource();
-137 
-138         //some old browser are noteOn/noteOff -> start/stop
-139         if(!audioNode.start){
-140             audioNode.start = audioNode.noteOn;
-141             audioNode.stop = audioNode.noteOff;
-142         }
-143 
-144         audioNode.buffer = this._buffer;
-145         audioNode.onended = this._onAudioEvent;
-146         this._gainNode.gain.value = this.muted ? 0 : this.volume;
-147         audioNode.connect(this._gainNode);
-148         audioNode.start(0, this._offset);
-149 
-150         this._audioNode = audioNode;
-151         this._startTime = this._context.currentTime;
-152         this.playing = true;
-153     },
-154 
-155     /**
-156      * @private
-157      */
-158     _clearAudioNode: function(){
-159         var audioNode = this._audioNode;
-160         if(audioNode){
-161             audioNode.onended = null;
-162             // audioNode.disconnect(this._gainNode);
-163             audioNode.disconnect(0);
-164             this._audioNode = null;
-165         }
-166     },
-167 
-168     /**
-169      * 播放音频。如果正在播放,则会重新开始。
-170      */
-171     play: function(){
-172         if(this.playing) this.stop();
-173 
-174         if(this.loaded){
-175             this._doPlay();
-176         }else if(!this._buffer){
-177             this.autoPlay = true;
-178             this.load();
-179         }
-180 
-181         return this;
-182     },
-183 
-184     /**
-185      * 暂停音频。
-186      */
-187     pause: function(){
-188         if(this.playing){
-189             this._audioNode.stop(0);
-190             this._offset += this._context.currentTime - this._startTime;
-191             this.playing = false;
-192         }
-193         return this;
-194     },
-195 
-196     /**
-197      * 恢复音频播放。
-198      */
-199     resume: function(){
-200         if(!this.playing){
-201             this._doPlay();
-202         }
-203         return this;
-204     },
-205 
-206     /**
-207      * 停止音频播放。
-208      */
-209     stop: function(){
-210         if(this.playing){
-211             this._audioNode.stop(0);
-212             this._audioNode.disconnect();
-213             this._offset = 0;
-214             this.playing = false;
-215         }
-216         return this;
-217     },
-218 
-219     /**
-220      * 设置音量。
-221      */
-222     setVolume: function(volume){
-223         if(this.volume != volume){
-224             this.volume = volume;
-225             this._gainNode.gain.value = volume;
-226         }
-227         return this;
-228     },
-229 
-230     /**
-231      * 设置是否静音。
-232      */
-233     setMute: function(muted){
-234         if(this.muted != muted){
-235             this.muted = muted;
-236             this._gainNode.gain.value = muted ? 0 : this.volume;
-237         }
-238         return this;
-239     },
-240 
-241     Statics: /** @lends WebAudio */ {
-242         /**
-243          * 浏览器是否支持WebAudio。
-244          */
-245         isSupported: AudioContext != null,
-246 
-247         /**
-248          * 浏览器是否已激活WebAudio。
-249          */
-250         enabled: false,
-251 
-252         /**
-253          * 激活WebAudio。注意:需用户事件触发此方法才有效。激活后,无需用户事件也可播放音频。
-254          */
-255         enable: function(){
-256             if(!this.enabled && context){
-257                 var source = context.createBufferSource();
-258                 source.buffer = context.createBuffer(1, 1, 22050);
-259                 source.connect(context.destination);
-260                 source.start ? source.start(0, 0, 0) : source.noteOn(0, 0, 0);
-261                 this.enabled = true;
-262                 return true;
-263             }
-264             return this.enabled;
-265         }
-266     }
-267 });
-268 
-269 })();
\ No newline at end of file diff --git a/docs/api/symbols/src/src_media_WebSound.js.html b/docs/api/symbols/src/src_media_WebSound.js.html deleted file mode 100644 index 03d380bd..00000000 --- a/docs/api/symbols/src/src_media_WebSound.js.html +++ /dev/null @@ -1,93 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * <iframe src='../../../examples/WebSound.html?noHeader' width = '320' height = '310' scrolling='no'></iframe>
-  9  * <br/>
- 10  * 使用示例:
- 11  * <pre>
- 12  * var audio = WebSound.getAudio({
- 13  *     src: 'test.mp3',
- 14  *     loop: false,
- 15  *     volume: 1
- 16  * }).on('load', function(e){
- 17  *     console.log('load');
- 18  * }).on('end', function(e){
- 19  *     console.log('end');
- 20  * }).play();
- 21  * </pre>
- 22  * @class 声音播放管理器。
- 23  * @static
- 24  * @module hilo/media/WebSound
- 25  * @requires hilo/core/Hilo
- 26  * @requires hilo/media/HTMLAudio
- 27  * @requires hilo/media/WebAudio
- 28  */
- 29 var WebSound = {
- 30     _audios: {},
- 31 
- 32     /**
- 33      * 激活音频功能。注意:需用户事件触发此方法才有效。目前仅对WebAudio有效。
- 34      */
- 35     enableAudio: function(){
- 36         if(WebAudio.isSupported){
- 37             WebAudio.enable();
- 38         }
- 39     },
- 40 
- 41     /**
- 42      * 获取音频对象。优先使用WebAudio。
- 43      * @param {String|Object} source 若source为String,则为音频src地址;若为Object,则需包含src属性。
- 44      * @returns {WebAudio|HTMLAudio} 音频播放对象实例。
- 45      */
- 46     getAudio: function(source){
- 47         source = this._normalizeSource(source);
- 48         var audio = this._audios[source.src];
- 49         if(!audio){
- 50             if(WebAudio.isSupported){
- 51                 audio = new WebAudio(source);
- 52             }else if(HTMLAudio.isSupported){
- 53                 audio = new HTMLAudio(source);
- 54             }
- 55             this._audios[source.src] = audio;
- 56         }
- 57 
- 58         return audio;
- 59     },
- 60 
- 61     /**
- 62      * 删除音频对象。
- 63      * @param {String|Object} source 若source为String,则为音频src地址;若为Object,则需包含src属性。
- 64      */
- 65     removeAudio: function(source){
- 66         var src = typeof source === 'string' ? source : source.src;
- 67         var audio = this._audios[src];
- 68         if(audio){
- 69             audio.stop();
- 70             audio.off();
- 71             this._audios[src] = null;
- 72             delete this._audios[src];
- 73         }
- 74     },
- 75 
- 76     /**
- 77      * @private
- 78      */
- 79     _normalizeSource: function(source){
- 80         var result = {};
- 81         if(typeof source === 'string') result = {src:source};
- 82         else Hilo.copy(result, source);
- 83         return result;
- 84     }
- 85 
- 86 };
\ No newline at end of file diff --git a/docs/api/symbols/src/src_renderer_CanvasRenderer.js.html b/docs/api/symbols/src/src_renderer_CanvasRenderer.js.html deleted file mode 100644 index b853c335..00000000 --- a/docs/api/symbols/src/src_renderer_CanvasRenderer.js.html +++ /dev/null @@ -1,225 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @class canvas画布渲染器。所有可视对象将渲染在canvas画布上。舞台Stage会根据参数canvas选择不同的渲染器,开发者无需直接使用此类。
-  9  * @augments Renderer
- 10  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。
- 11  * @module hilo/renderer/CanvasRenderer
- 12  * @requires hilo/core/Class
- 13  * @requires hilo/core/Hilo
- 14  * @requires hilo/renderer/Renderer
- 15  * @property {CanvasRenderingContext2D} context canvas画布的上下文。只读属性。
- 16  */
- 17 var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{
- 18     Extends: Renderer,
- 19     constructor: function(properties){
- 20         CanvasRenderer.superclass.constructor.call(this, properties);
- 21 
- 22         this.context = this.canvas.getContext("2d");
- 23     },
- 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){
- 34                 this.context.clearRect(0, 0, target.width, target.height);
- 35             }
- 36             this.context.save();
- 37             return true;
- 38         }
- 39         return false;
- 40     },
- 41 
- 42     /**
- 43      * @private
- 44      * @see Renderer#draw
- 45      */
- 46     draw: function(target){
- 47         var ctx = this.context, w = target.width, h = target.height;
- 48 
- 49         //draw background
- 50         var bg = target.background;
- 51         if(bg){
- 52             ctx.fillStyle = bg;
- 53             ctx.fillRect(0, 0, w, h);
- 54         }
- 55 
- 56         //draw image
- 57         var drawable = target.drawable, image = drawable && drawable.image;
- 58         if(image){
- 59             var rect = drawable.rect, sw = rect[2], sh = rect[3], offsetX = rect[4], offsetY = rect[5];
- 60             //ie9+浏览器宽高为0时会报错
- 61             if(!sw || !sh){
- 62                 return;
- 63             }
- 64             if(!w && !h){
- 65                 //fix width/height TODO: how to get rid of this?
- 66                 w = target.width = sw;
- 67                 h = target.height = sh;
- 68             }
- 69             //the pivot is the center of frame if has offset, otherwise is (0, 0)
- 70             if(offsetX || offsetY) ctx.translate(offsetX - sw * 0.5, offsetY - sh * 0.5);
- 71             ctx.drawImage(image, rect[0], rect[1], sw, sh, 0, 0, w, h);
- 72         }
- 73     },
- 74 
- 75     /**
- 76      * @private
- 77      * @see Renderer#endDraw
- 78      */
- 79     endDraw: function(target){
- 80         this.context.restore();
- 81     },
- 82 
- 83     /**
- 84      * @private
- 85      * @see Renderer#transform
- 86      */
- 87     transform: function(target){
- 88         var drawable = target.drawable;
- 89         if(drawable && drawable.domElement){
- 90             Hilo.setElementStyleByView(target);
- 91             return;
- 92         }
- 93 
- 94         var ctx = this.context,
- 95             scaleX = target.scaleX,
- 96             scaleY = target.scaleY;
- 97 
- 98         if(target === this.stage){
- 99             var style = this.canvas.style,
-100                 oldScaleX = target._scaleX,
-101                 oldScaleY = target._scaleY;
-102 
-103             if((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)){
-104                 target._scaleX = scaleX;
-105                 style.width = scaleX * target.width + "px";
-106             }
-107             if((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)){
-108                 target._scaleY = scaleY;
-109                 style.height = scaleY * target.height + "px";
-110             }
-111         }else{
-112             var x = target.x,
-113                 y = target.y,
-114                 pivotX = target.pivotX,
-115                 pivotY = target.pivotY,
-116                 rotation = target.rotation % 360,
-117                 mask = target.mask;
-118 
-119             if(mask){
-120                 mask._render(this);
-121                 ctx.clip();
-122             }
-123 
-124             //alignment
-125             var align = target.align;
-126             if(align){
-127                 if(typeof align === 'function'){
-128                     target.align();
-129                 }else{
-130                     var parent = target.parent;
-131                     if(parent){
-132                         var w = target.width, h = target.height,
-133                             pw = parent.width, ph = parent.height;
-134                         switch(align){
-135                             case 'TL':
-136                                 x = 0;
-137                                 y = 0;
-138                                 break;
-139                             case 'T':
-140                                 x = pw - w >> 1;
-141                                 y = 0;
-142                                 break;
-143                             case 'TR':
-144                                 x = pw - w;
-145                                 y = 0;
-146                                 break;
-147                             case 'L':
-148                                 x = 0;
-149                                 y = ph - h >> 1;
-150                                 break;
-151                             case 'C':
-152                                 x = pw - w >> 1;
-153                                 y = ph - h >> 1;
-154                                 break;
-155                             case 'R':
-156                                 x = pw - w;
-157                                 y = ph - h >> 1;
-158                                 break;
-159                             case 'BL':
-160                                 x = 0;
-161                                 y = ph - h;
-162                                 break;
-163                             case 'B':
-164                                 x = pw - w >> 1;
-165                                 y = ph - h;
-166                                 break;
-167                             case 'BR':
-168                                 x = pw - w;
-169                                 y = ph - h;
-170                                 break;
-171                         }
-172                     }
-173                 }
-174             }
-175 
-176             if(x != 0 || y != 0) ctx.translate(x, y);
-177             if(rotation != 0) ctx.rotate(rotation * Math.PI / 180);
-178             if(scaleX != 1 || scaleY != 1) ctx.scale(scaleX, scaleY);
-179             if(pivotX != 0 || pivotY != 0) ctx.translate(-pivotX, -pivotY);
-180         }
-181 
-182         if(target.alpha > 0) ctx.globalAlpha *= target.alpha;
-183     },
-184 
-185     /**
-186      * @private
-187      * @see Renderer#remove
-188      */
-189     remove: function(target){
-190         var drawable = target.drawable;
-191         var elem = drawable && drawable.domElement;
-192 
-193         if(elem){
-194             var parentElem = elem.parentNode;
-195             if(parentElem){
-196                 parentElem.removeChild(elem);
-197             }
-198         }
-199     },
-200 
-201     /**
-202      * @private
-203      * @see Renderer#clear
-204      */
-205     clear: function(x, y, width, height){
-206         this.context.clearRect(x, y, width, height);
-207     },
-208 
-209     /**
-210      * @private
-211      * @see Renderer#resize
-212      */
-213     resize: function(width, height){
-214         this.canvas.width = width;
-215         this.canvas.height = height;
-216     }
-217 
-218 });
\ No newline at end of file diff --git a/docs/api/symbols/src/src_renderer_DOMRenderer.js.html b/docs/api/symbols/src/src_renderer_DOMRenderer.js.html deleted file mode 100644 index b75cd361..00000000 --- a/docs/api/symbols/src/src_renderer_DOMRenderer.js.html +++ /dev/null @@ -1,180 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @class DOM+CSS3渲染器。将可视对象以DOM元素方式渲染出来。舞台Stage会根据参数canvas选择不同的渲染器,开发者无需直接使用此类。
-  9  * @augments Renderer
- 10  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。
- 11  * @module hilo/renderer/DOMRenderer
- 12  * @requires hilo/core/Class
- 13  * @requires hilo/core/Hilo
- 14  * @requires hilo/renderer/Renderer
- 15  * @requires hilo/view/Drawable
- 16  */
- 17 var DOMRenderer = (function(){
- 18 
- 19 return Class.create({
- 20     Extends: Renderer,
- 21     constructor: function(properties){
- 22         DOMRenderer.superclass.constructor.call(this, properties);
- 23     },
- 24     renderType:'dom',
- 25     /**
- 26      * @private
- 27      * @see Renderer#startDraw
- 28      */
- 29     startDraw: function(target){
- 30         //prepare drawable
- 31         var drawable = (target.drawable = target.drawable || new Drawable());
- 32         drawable.domElement = drawable.domElement || createDOMDrawable(target, drawable);
- 33         return true;
- 34     },
- 35 
- 36     /**
- 37      * @private
- 38      * @see Renderer#draw
- 39      */
- 40     draw: function(target){
- 41         var parent = target.parent,
- 42             targetElem = target.drawable.domElement,
- 43             currentParent = targetElem.parentNode;
- 44 
- 45         if(parent){
- 46             var parentElem = parent.drawable.domElement;
- 47             if(parentElem != currentParent){
- 48                 parentElem.appendChild(targetElem);
- 49             }
- 50             //fix image load bug
- 51             if(!target.width && !target.height){
- 52                 var rect = target.drawable.rect;
- 53                 if(rect && (rect[2] || rect[3])){
- 54                     target.width = rect[2];
- 55                     target.height = rect[3];
- 56                 }
- 57             }
- 58         }
- 59         else if(target === this.stage && !currentParent){
- 60             targetElem.style.overflow = 'hidden';
- 61             this.canvas.appendChild(targetElem);
- 62         }
- 63     },
- 64 
- 65     /**
- 66      * @private
- 67      * @see Renderer#transform
- 68      */
- 69     transform: function(target){
- 70         Hilo.setElementStyleByView(target);
- 71         if(target === this.stage){
- 72             var style = this.canvas.style,
- 73                 oldScaleX = target._scaleX,
- 74                 oldScaleY = target._scaleY,
- 75                 scaleX = target.scaleX,
- 76                 scaleY = target.scaleY;
- 77 
- 78             if((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)){
- 79                 target._scaleX = scaleX;
- 80                 style.width = scaleX * target.width + "px";
- 81             }
- 82             if((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)){
- 83                 target._scaleY = scaleY;
- 84                 style.height = scaleY * target.height + "px";
- 85             }
- 86         }
- 87     },
- 88 
- 89     /**
- 90      * @private
- 91      * @see Renderer#remove
- 92      */
- 93     remove: function(target){
- 94         var drawable = target.drawable;
- 95         var elem = drawable && drawable.domElement;
- 96 
- 97         if(elem){
- 98             var parentElem = elem.parentNode;
- 99             if(parentElem){
-100                 parentElem.removeChild(elem);
-101             }
-102         }
-103     },
-104 
-105     /**
-106      * @private
-107      * @see Renderer#hide
-108      */
-109     hide: function(target){
-110         var elem = target.drawable && target.drawable.domElement;
-111         if(elem) elem.style.display = 'none';
-112     },
-113 
-114     /**
-115      * @private
-116      * @see Renderer#resize
-117      */
-118     resize: function(width, height){
-119         var style = this.canvas.style;
-120         style.width = width + 'px';
-121         style.height = height + 'px';
-122         if(style.position != "absolute") {
-123           style.position = "relative";
-124         }
-125     }
-126 });
-127 
-128 /**
-129  * 创建一个可渲染的DOM,可指定tagName,如canvas或div。
-130  * @param {Object} view 一个可视对象或类似的对象。
-131  * @param {Object} imageObj 指定渲染的image及相关设置,如绘制区域rect。
-132  * @return {HTMLElement} 新创建的DOM对象。
-133  * @private
-134  */
-135 function createDOMDrawable(view, imageObj){
-136     var tag = view.tagName || "div",
-137         img = imageObj.image,
-138         w = view.width || (img && img.width),
-139         h =  view.height || (img && img.height),
-140         elem = Hilo.createElement(tag), style = elem.style;
-141 
-142     if(view.id) elem.id = view.id;
-143     style.position = "absolute";
-144     style.left = (view.left || 0) + "px";
-145     style.top = (view.top || 0) + "px";
-146     style.width = w + "px";
-147     style.height = h + "px";
-148 
-149     if(tag == "canvas"){
-150         elem.width = w;
-151         elem.height = h;
-152         if(img){
-153             var ctx = elem.getContext("2d");
-154             var rect = imageObj.rect || [0, 0, w, h];
-155             ctx.drawImage(img, rect[0], rect[1], rect[2], rect[3],
-156                          (view.x || 0), (view.y || 0),
-157                          (view.width || rect[2]),
-158                          (view.height || rect[3]));
-159         }
-160     }else{
-161         style.opacity = view.alpha != undefined ? view.alpha : 1;
-162         if(view === this.stage || view.clipChildren) style.overflow = "hidden";
-163         if(img && img.src){
-164             style.backgroundImage = "url(" + img.src + ")";
-165             var bgX = view.rectX || 0, bgY = view.rectY || 0;
-166             style.backgroundPosition = (-bgX) + "px " + (-bgY) + "px";
-167         }
-168     }
-169     return elem;
-170 }
-171 
-172 })();
-173 
\ No newline at end of file diff --git a/docs/api/symbols/src/src_renderer_Renderer.js.html b/docs/api/symbols/src/src_renderer_Renderer.js.html deleted file mode 100644 index 16adebbd..00000000 --- a/docs/api/symbols/src/src_renderer_Renderer.js.html +++ /dev/null @@ -1,84 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @class 渲染器抽象基类。
-  9  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。
- 10  * @module hilo/renderer/Renderer
- 11  * @requires hilo/core/Hilo
- 12  * @requires hilo/core/Class
- 13  * @property {Object} canvas 渲染器对应的画布。它可能是一个普通的DOM元素,比如div,也可以是一个canvas画布元素。只读属性。
- 14  * @property {Object} stage 渲染器对应的舞台。只读属性。
- 15  * @property {String} renderType 渲染方式。只读属性。
- 16  */
- 17 var Renderer = Class.create(/** @lends Renderer.prototype */{
- 18     constructor: function(properties){
- 19         properties = properties || {};
- 20         Hilo.copy(this, properties, true);
- 21     },
- 22 
- 23     renderType:null,
- 24     canvas: null,
- 25     stage: null,
- 26 
- 27     /**
- 28      * 为开始绘制可视对象做准备。需要子类来实现。
- 29      * @param {View} target 要绘制的可视对象。
- 30      */
- 31     startDraw: function(target){ },
- 32 
- 33     /**
- 34      * 绘制可视对象。需要子类来实现。
- 35      * @param {View} target 要绘制的可视对象。
- 36      */
- 37     draw: function(target){ },
- 38 
- 39     /**
- 40      * 结束绘制可视对象后的后续处理方法。需要子类来实现。
- 41      * @param {View} target 要绘制的可视对象。
- 42      */
- 43     endDraw: function(target){ },
- 44 
- 45     /**
- 46      * 对可视对象进行变换。需要子类来实现。
- 47      */
- 48     transform: function(){ },
- 49 
- 50     /**
- 51      * 隐藏可视对象。需要子类来实现。
- 52      */
- 53     hide: function(){ },
- 54 
- 55     /**
- 56      * 从画布中删除可视对象。注意:不是从stage中删除对象。需要子类来实现。
- 57      * @param {View} target 要删除的可视对象。
- 58      */
- 59     remove: function(target){ },
- 60 
- 61     /**
- 62      * 清除画布指定区域。需要子类来实现。
- 63      * @param {Number} x 指定区域的x轴坐标。
- 64      * @param {Number} y 指定区域的y轴坐标。
- 65      * @param {Number} width 指定区域的宽度。
- 66      * @param {Number} height 指定区域的高度。
- 67      */
- 68     clear: function(x, y, width, height){ },
- 69 
- 70     /**
- 71      * 改变渲染器的画布大小。
- 72      * @param {Number} width 指定渲染画布新的宽度。
- 73      * @param {Number} height 指定渲染画布新的高度。
- 74      */
- 75     resize: function(width, height){ }
- 76 
- 77 });
\ No newline at end of file diff --git a/docs/api/symbols/src/src_renderer_WebGLRenderer.js.html b/docs/api/symbols/src/src_renderer_WebGLRenderer.js.html deleted file mode 100644 index 07ea137b..00000000 --- a/docs/api/symbols/src/src_renderer_WebGLRenderer.js.html +++ /dev/null @@ -1,536 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * Heavily inspired by PIXI's SpriteRenderer:
-  9  * https://github.com/pixijs/pixi.js/blob/v3.0.9/src/core/sprites/webgl/SpriteRenderer.js
- 10  */
- 11 
- 12 var DEG2RAD = Math.PI / 180;
- 13 /**
- 14  * @class webgl画布渲染器。所有可视对象将渲染在canvas画布上。
- 15  * @augments Renderer
- 16  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。
- 17  * @module hilo/renderer/WebGLRenderer
- 18  * @requires hilo/core/Class
- 19  * @requires hilo/renderer/Renderer
- 20  * @requires  hilo/geom/Matrix
- 21  * @property {WebGLRenderingContext} gl webgl上下文。只读属性。
- 22  */
- 23 var WebGLRenderer = Class.create(/** @lends WebGLRenderer.prototype */{
- 24     Extends: Renderer,
- 25     Statics:/** @lends WebGLRenderer */{
- 26         /**
- 27          * 最大批渲染数量。
- 28          * @type {Number}
- 29          */
- 30         MAX_BATCH_NUM:2000,
- 31         /**
- 32          * 顶点属性数。只读属性。
- 33          * @type {Number}
- 34          */
- 35         ATTRIBUTE_NUM:5,
- 36         /**
- 37          * 是否支持WebGL。只读属性。
- 38          * @type {Boolean}
- 39          */
- 40         isSupport:null
- 41     },
- 42     renderType:'webgl',
- 43     gl:null,
- 44     constructor: function(properties){
- 45         window.__render = this;
- 46         WebGLRenderer.superclass.constructor.call(this, properties);
- 47         var gl = this.gl = this.canvas.getContext("webgl")||this.canvas.getContext('experimental-webgl');
- 48 
- 49         this.maxBatchNum = WebGLRenderer.MAX_BATCH_NUM;
- 50         this.positionStride = WebGLRenderer.ATTRIBUTE_NUM * 4;
- 51         var vertexNum = this.maxBatchNum * WebGLRenderer.ATTRIBUTE_NUM * 4;
- 52         var indexNum = this.maxBatchNum * 6;
- 53         this.positions = new Float32Array(vertexNum);
- 54         this.indexs = new Uint16Array(indexNum);
- 55         for (var i=0, j=0; i < indexNum; i += 6, j += 4)
- 56         {
- 57             this.indexs[i + 0] = j + 0;
- 58             this.indexs[i + 1] = j + 1;
- 59             this.indexs[i + 2] = j + 2;
- 60             this.indexs[i + 3] = j + 1;
- 61             this.indexs[i + 4] = j + 2;
- 62             this.indexs[i + 5] = j + 3;
- 63         }
- 64         this.batchIndex = 0;
- 65         this.sprites = [];
- 66 
- 67         gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
- 68         gl.clearColor(0, 0, 0, 0);
- 69         gl.disable(gl.DEPTH_TEST);
- 70         gl.disable(gl.CULL_FACE);
- 71         gl.enable(gl.BLEND);
- 72 
- 73         this._initShaders();
- 74         this.defaultShader.active();
- 75 
- 76         this.positionBuffer = gl.createBuffer();
- 77         this.indexBuffer = gl.createBuffer();
- 78 
- 79         gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexBuffer);
- 80         gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indexs, gl.STATIC_DRAW);
- 81 
- 82         gl.bindBuffer(gl.ARRAY_BUFFER, this.positionBuffer);
- 83         gl.bufferData(gl.ARRAY_BUFFER, this.positions, gl.DYNAMIC_DRAW);
- 84 
- 85         gl.vertexAttribPointer(this.a_position, 2, gl.FLOAT, false, this.positionStride, 0);//x, y
- 86         gl.vertexAttribPointer(this.a_TexCoord, 2, gl.FLOAT, false, this.positionStride, 2 * 4);//x, y
- 87         gl.vertexAttribPointer(this.a_alpha, 1, gl.FLOAT, false, this.positionStride, 4 * 4);//alpha
- 88     },
- 89 
- 90     context: null,
- 91 
- 92     /**
- 93      * @private
- 94      * @see Renderer#startDraw
- 95      */
- 96     startDraw: function(target){
- 97         if(target.visible && target.alpha > 0){
- 98             if(target === this.stage){
- 99                 this.clear();
-100             }
-101             return true;
-102         }
-103         return false;
-104     },
-105 
-106     /**
-107      * @private
-108      * @see Renderer#draw
-109      */
-110     draw: function(target){
-111         var ctx = this.context, w = target.width, h = target.height;
-112 
-113         //TODO:draw background
-114         var bg = target.background;
-115 
-116         //draw image
-117         var drawable = target.drawable, image = drawable && drawable.image;
-118         if(image){
-119             var gl = this.gl;
-120             if(!image.texture){
-121                 this.activeShader.uploadTexture(image);
-122             }
-123 
-124             var rect = drawable.rect, sw = rect[2], sh = rect[3], offsetX = rect[4], offsetY = rect[5];
-125             if(!w && !h){
-126                 //fix width/height TODO: how to get rid of this?
-127                 w = target.width = sw;
-128                 h = target.height = sh;
-129             }
-130 
-131             if(this.batchIndex >= this.maxBatchNum){
-132                 this._renderBatches();
-133             }
-134 
-135             var vertexs = this._createVertexs(image, rect[0], rect[1], sw, sh, 0, 0, w, h);
-136             var index = this.batchIndex * this.positionStride;
-137             var positions = this.positions;
-138             var alpha = target.__webglRenderAlpha;
-139             positions[index + 0] = vertexs[0];//x
-140             positions[index + 1] = vertexs[1];//y
-141             positions[index + 2] = vertexs[2];//uvx
-142             positions[index + 3] = vertexs[3];//uvy
-143             positions[index + 4] = alpha;//alpha
-144 
-145             positions[index + 5] = vertexs[4];
-146             positions[index + 6] = vertexs[5];
-147             positions[index + 7] = vertexs[6];
-148             positions[index + 8] = vertexs[7];
-149             positions[index + 9] = alpha;
-150 
-151             positions[index + 10] = vertexs[8]
-152             positions[index + 11] = vertexs[9]
-153             positions[index + 12] = vertexs[10]
-154             positions[index + 13] = vertexs[11]
-155             positions[index + 14] = alpha;
-156 
-157             positions[index + 15] = vertexs[12]
-158             positions[index + 16] = vertexs[13]
-159             positions[index + 17] = vertexs[14]
-160             positions[index + 18] = vertexs[15]
-161             positions[index + 19] = alpha;
-162 
-163             var matrix = target.__webglWorldMatrix;
-164             for(var i = 0;i < 4;i ++){
-165                 var x = positions[index + i*5];
-166                 var y = positions[index + i*5 + 1];
-167 
-168                 positions[index + i*5] = matrix.a*x+matrix.c*y + matrix.tx;
-169                 positions[index + i*5 + 1] = matrix.b*x+matrix.d*y + matrix.ty;
-170             }
-171 
-172             target.texture = image.texture;
-173             this.sprites[this.batchIndex++] = target;
-174         }
-175     },
-176 
-177     /**
-178      * @private
-179      * @see Renderer#endDraw
-180      */
-181     endDraw: function(target){
-182         if(target === this.stage){
-183             this._renderBatches();
-184         }
-185     },
-186     /**
-187      * @private
-188      * @see Renderer#transform
-189      */
-190     transform: function(target){
-191         var drawable = target.drawable;
-192         if(drawable && drawable.domElement){
-193             Hilo.setElementStyleByView(target);
-194             return;
-195         }
-196 
-197         var ctx = this.context,
-198             scaleX = target.scaleX,
-199             scaleY = target.scaleY;
-200 
-201         if(target === this.stage){
-202             var style = this.canvas.style,
-203                 oldScaleX = target._scaleX,
-204                 oldScaleY = target._scaleY;
-205 
-206             if((!oldScaleX && scaleX != 1) || (oldScaleX && oldScaleX != scaleX)){
-207                 target._scaleX = scaleX;
-208                 style.width = scaleX * target.width + "px";
-209             }
-210             if((!oldScaleY && scaleY != 1) || (oldScaleY && oldScaleY != scaleY)){
-211                 target._scaleY = scaleY;
-212                 style.height = scaleY * target.height + "px";
-213             }
-214             target.__webglWorldMatrix = target.__webglWorldMatrix||new Matrix(1, 0, 0, 1, 0, 0);
-215         }else{
-216             target.__webglWorldMatrix = target.__webglWorldMatrix||new Matrix(1, 0, 0, 1, 0, 0);
-217             this._setConcatenatedMatrix(target, target.parent);
-218         }
-219 
-220         if(target.alpha > 0) {
-221             if(target.parent && target.parent.__webglRenderAlpha){
-222                 target.__webglRenderAlpha = target.alpha * target.parent.__webglRenderAlpha;
-223             }
-224             else{
-225                 target.__webglRenderAlpha = target.alpha;
-226             }
-227         }
-228     },
-229 
-230     /**
-231      * @private
-232      * @see Renderer#remove
-233      */
-234     remove: function(target){
-235         var drawable = target.drawable;
-236         var elem = drawable && drawable.domElement;
-237 
-238         if(elem){
-239             var parentElem = elem.parentNode;
-240             if(parentElem){
-241                 parentElem.removeChild(elem);
-242             }
-243         }
-244     },
-245 
-246     /**
-247      * @private
-248      * @see Renderer#clear
-249      */
-250     clear: function(x, y, width, height){
-251         this.gl.clear(this.gl.COLOR_BUFFER_BIT);
-252     },
-253 
-254     /**
-255      * @private
-256      * @see Renderer#resize
-257      */
-258     resize: function(width, height){
-259         if(this.width !== width || this.height !== height){
-260             this.width = this.canvas.width = width;
-261             this.height = this.canvas.height = height;
-262             this.gl.viewport(0, 0, width, height);
-263 
-264             this.canvasHalfWidth = width * .5;
-265             this.canvasHalfHeight = height * .5;
-266 
-267             this._uploadProjectionTransform(true);
-268         }
-269     },
-270     _renderBatches:function(){
-271         var gl = this.gl;
-272         gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.positions.subarray(0, this.batchIndex * this.positionStride));
-273         var startIndex = 0;
-274         var batchNum = 0;
-275         var preTexture = null;
-276         for(var i = 0;i < this.batchIndex;i ++){
-277             var sprite = this.sprites[i];
-278             if(preTexture && preTexture !== sprite.texture){
-279                 this._renderBatch(startIndex, i);
-280                 startIndex = i;
-281                 batchNum = 1;
-282             }
-283             preTexture = sprite.texture;
-284         }
-285         this._renderBatch(startIndex, this.batchIndex);
-286         this.batchIndex = 0;
-287     },
-288     _renderBatch:function(start, end){
-289         var gl = this.gl;
-290         var num = end - start;
-291         if(num > 0){
-292             gl.bindTexture(gl.TEXTURE_2D, this.sprites[start].texture);
-293             gl.drawElements(gl.TRIANGLES, num * 6, gl.UNSIGNED_SHORT, start * 6 * 2);
-294         }
-295     },
-296     _uploadProjectionTransform:function(force){
-297         if(!this._projectionTransformElements||force){
-298             this._projectionTransformElements = new Float32Array([
-299                 1/this.canvasHalfWidth, 0, 0,
-300                 0, -1/this.canvasHalfHeight, 0,
-301                 -1, 1, 1,
-302             ]);
-303         }
-304 
-305         this.gl.uniformMatrix3fv(this.u_projectionTransform, false, this._projectionTransformElements);
-306     },
-307     _initShaders:function(){
-308         var VSHADER_SOURCE ='\
-309             attribute vec2 a_position;\n\
-310             attribute vec2 a_TexCoord;\n\
-311             attribute float a_alpha;\n\
-312             uniform mat3 u_projectionTransform;\n\
-313             varying vec2 v_TexCoord;\n\
-314             varying float v_alpha;\n\
-315             void main(){\n\
-316                 gl_Position =  vec4((u_projectionTransform * vec3(a_position, 1.0)).xy, 1.0, 1.0);\n\
-317                 v_TexCoord = a_TexCoord;\n\
-318                 v_alpha = a_alpha;\n\
-319             }\n\
-320         ';
-321 
-322         var FSHADER_SOURCE = '\n\
-323             precision mediump float;\n\
-324             uniform sampler2D u_Sampler;\n\
-325             varying vec2 v_TexCoord;\n\
-326             varying float v_alpha;\n\
-327             void main(){\n\
-328                 gl_FragColor = texture2D(u_Sampler, v_TexCoord) * v_alpha;\n\
-329             }\n\
-330         ';
-331 
-332         this.defaultShader = new Shader(this, {
-333             v:VSHADER_SOURCE,
-334             f:FSHADER_SOURCE
-335         },{
-336             attributes:["a_position", "a_TexCoord", "a_alpha"],
-337             uniforms:["u_projectionTransform", "u_Alpha", "u_Sampler"]
-338         });
-339     },
-340     _createVertexs:function(img, tx, ty, tw, th, x, y, w, h){
-341         var tempVertexs = this.__tempVertexs||[];
-342         var width = img.width;
-343         var height = img.height;
-344 
-345         tw = tw/width;
-346         th = th/height;
-347         tx = tx/width;
-348         ty = ty/height;
-349 
-350         w = w;
-351         h = h;
-352         x = x;
-353         y = y;
-354 
-355         if(tw + tx > 1){
-356             tw = 1 - tx;
-357         }
-358 
-359         if(th + ty > 1){
-360             th = 1 - ty;
-361         }
-362 
-363         var index = 0;
-364         tempVertexs[index++] = x; tempVertexs[index++] = y; tempVertexs[index++] = tx; tempVertexs[index++] = ty;
-365         tempVertexs[index++] = x+w;tempVertexs[index++] = y; tempVertexs[index++] = tx+tw; tempVertexs[index++] = ty;
-366         tempVertexs[index++] = x; tempVertexs[index++] = y+h; tempVertexs[index++] = tx;tempVertexs[index++] = ty+th;
-367         tempVertexs[index++] = x+w;tempVertexs[index++] = y+h;tempVertexs[index++] = tx+tw;tempVertexs[index++] = ty+th;
-368 
-369         return tempVertexs;
-370     },
-371     _setConcatenatedMatrix:function(view, ancestor){
-372         var mtx = view.__webglWorldMatrix;
-373         var cos = 1, sin = 0,
-374             rotation = view.rotation % 360,
-375             pivotX = view.pivotX, pivotY = view.pivotY,
-376             scaleX = view.scaleX, scaleY = view.scaleY;
-377 
-378         if(rotation){
-379             var r = rotation * DEG2RAD;
-380             cos = Math.cos(r);
-381             sin = Math.sin(r);
-382         }
-383 
-384         mtx.a = cos*scaleX;
-385         mtx.b = sin*scaleX;
-386         mtx.c = -sin*scaleY;
-387         mtx.d = cos*scaleY;
-388         mtx.tx =  view.x - mtx.a * pivotX - mtx.c * pivotY;
-389         mtx.ty =  view.y - mtx.b * pivotX - mtx.d * pivotY;
-390 
-391         mtx.concat(ancestor.__webglWorldMatrix);
-392     }
-393 });
-394 
-395 /**
-396  * shader
-397  * @param {WebGLRenderer} renderer [description]
-398  * @param {Object} source
-399  * @param {String} source.v 顶点shader
-400  * @param {String} source.f 片段shader
-401  * @param {Object} attr
-402  * @param {Array} attr.attributes attribute数组
-403  * @param {Array} attr.uniforms uniform数组
-404  */
-405 var _cacheTexture = {};
-406 var Shader = function(renderer, source, attr){
-407     this.renderer = renderer;
-408     this.gl = renderer.gl;
-409     this.program = this._createProgram(this.gl, source.v, source.f);
-410 
-411     attr = attr||{};
-412     this.attributes = attr.attributes||[];
-413     this.uniforms = attr.uniforms||[];
-414 }
-415 
-416 Shader.prototype = {
-417     active:function(){
-418         var that = this;
-419         var renderer = that.renderer;
-420         var gl = that.gl;
-421         var program = that.program;
-422 
-423         if(program && gl){
-424             renderer.activeShader = that;
-425             gl.useProgram(program);
-426             that.attributes.forEach(function(attribute){
-427                 renderer[attribute] = gl.getAttribLocation(program, attribute);
-428                 gl.enableVertexAttribArray(renderer[attribute]);
-429             });
-430 
-431             that.uniforms.forEach(function(uniform){
-432                 renderer[uniform] = gl.getUniformLocation(program, uniform);
-433             });
-434 
-435             if(that.width !== renderer.width || that.height !== renderer.height){
-436                 that.width = renderer.width;
-437                 that.height = renderer.height;
-438                 renderer._uploadProjectionTransform();
-439             }
-440         }
-441     },
-442     uploadTexture:function(image){
-443         var gl = this.gl;
-444         var renderer = this.renderer;
-445         if(_cacheTexture[image.src]){
-446             image.texture = _cacheTexture[image.src];
-447         }
-448         else{
-449             var texture = gl.createTexture();
-450             var u_Sampler = renderer.u_Sampler;
-451 
-452 
-453             gl.activeTexture(gl.TEXTURE0);
-454             gl.bindTexture(gl.TEXTURE_2D, texture);
-455 
-456             // gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1);
-457             gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1);
-458             gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
-459 
-460             gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
-461             gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
-462             gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
-463             gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
-464             gl.uniform1i(u_Sampler, 0);
-465             gl.bindTexture(gl.TEXTURE_2D, null);
-466 
-467             image.texture = texture;
-468             _cacheTexture[image.src] = texture;
-469         }
-470     },
-471     _createProgram:function(gl, vshader, fshader){
-472         var vertexShader = this._createShader(gl, gl.VERTEX_SHADER, vshader);
-473         var fragmentShader = this._createShader(gl, gl.FRAGMENT_SHADER, fshader);
-474         if (!vertexShader || !fragmentShader) {
-475             return null;
-476         }
-477 
-478         var program = gl.createProgram();
-479         if (program) {
-480             gl.attachShader(program, vertexShader);
-481             gl.attachShader(program, fragmentShader);
-482 
-483             gl.linkProgram(program);
-484 
-485             gl.deleteShader(fragmentShader);
-486             gl.deleteShader(vertexShader);
-487             var linked = gl.getProgramParameter(program, gl.LINK_STATUS);
-488             if (!linked) {
-489                 var error = gl.getProgramInfoLog(program);
-490                 console.log('Failed to link program: ' + error);
-491                 gl.deleteProgram(program);
-492                 return null;
-493             }
-494         }
-495         return program;
-496     },
-497     _createShader:function(gl, type, source){
-498         var shader = gl.createShader(type);
-499         if(shader){
-500             gl.shaderSource(shader, source);
-501             gl.compileShader(shader);
-502 
-503             var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
-504             if (!compiled) {
-505                 var error = gl.getShaderInfoLog(shader);
-506                 console.log('Failed to compile shader: ' + error);
-507                 gl.deleteShader(shader);
-508                 return null;
-509             }
-510         }
-511         return shader;
-512     }
-513 };
-514 
-515 WebGLRenderer.isSupport = function(){
-516     if(this._isSupport !== undefined){
-517         return this._isSupport;
-518     }
-519     else{
-520         var canvas = document.createElement('canvas');
-521         if(canvas.getContext && (canvas.getContext('webgl')||canvas.getContext('experimental-webgl'))){
-522             this._isSupport = true;
-523         }
-524         else{
-525             this._isSupport = false;
-526         }
-527         return this._isSupport;
-528     }
-529 };
\ No newline at end of file diff --git a/docs/api/symbols/src/src_tween_Ease.js.html b/docs/api/symbols/src/src_tween_Ease.js.html deleted file mode 100644 index 430890e5..00000000 --- a/docs/api/symbols/src/src_tween_Ease.js.html +++ /dev/null @@ -1,260 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @class Ease类包含为Tween类提供各种缓动功能的函数。
-  9  * @module hilo/tween/Ease
- 10  * @static
- 11  */
- 12 var Ease = (function(){
- 13 
- 14 function createEase(obj, easeInFn, easeOutFn, easeInOutFn, easeNoneFn){
- 15     obj = obj || {};
- 16     easeInFn && (obj.EaseIn = easeInFn);
- 17     easeOutFn && (obj.EaseOut = easeOutFn);
- 18     easeInOutFn && (obj.EaseInOut = easeInOutFn);
- 19     easeNoneFn && (obj.EaseNone = easeNoneFn);
- 20     return obj;
- 21 }
- 22 
- 23 /**
- 24  * 线性匀速缓动函数。包含EaseNone函数。
- 25  */
- 26 var Linear = createEase(null, null, null, null, function(k){
- 27     return k;
- 28 });
- 29 
- 30 /**
- 31  * 二次缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。
- 32  */
- 33 var Quad = createEase(null,
- 34     function(k){
- 35         return k * k;
- 36     },
- 37 
- 38     function(k){
- 39         return - k * (k - 2);
- 40     },
- 41 
- 42     function(k){
- 43         return ((k *= 2) < 1) ? 0.5 * k * k : -0.5 * (--k * (k - 2) - 1);
- 44     }
- 45 );
- 46 
- 47 /**
- 48  * 三次缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。
- 49  */
- 50 var Cubic = createEase(null,
- 51     function(k){
- 52         return k * k * k;
- 53     },
- 54 
- 55     function(k){
- 56         return --k * k * k + 1;
- 57     },
- 58 
- 59     function(k){
- 60         return ((k *= 2) < 1) ? 0.5 * k * k * k : 0.5 * ((k -= 2) * k * k + 2);
- 61     }
- 62 );
- 63 
- 64 /**
- 65  * 四次缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。
- 66  */
- 67 var Quart = createEase(null,
- 68     function(k){
- 69         return k * k * k * k;
- 70     },
- 71 
- 72     function(k){
- 73         return -(--k * k * k * k - 1);
- 74     },
- 75 
- 76     function(k){
- 77         return ((k *= 2) < 1) ? 0.5 * k * k * k * k : - 0.5 * ((k -= 2) * k * k * k - 2);
- 78     }
- 79 );
- 80 
- 81 /**
- 82  * 五次缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。
- 83  */
- 84 var Quint = createEase(null,
- 85     function(k){
- 86         return k * k * k * k * k;
- 87     },
- 88 
- 89     function(k){
- 90         return (k = k - 1) * k * k * k * k + 1;
- 91     },
- 92 
- 93     function(k){
- 94         return ((k *= 2) < 1) ? 0.5 * k * k * k * k * k : 0.5 * ((k -= 2) * k * k * k * k + 2);
- 95     }
- 96 );
- 97 
- 98 var math = Math,
- 99     PI = math.PI, HALF_PI = PI * 0.5,
-100     sin = math.sin, cos = math.cos,
-101     pow = math.pow, sqrt = math.sqrt;
-102 
-103 /**
-104  * 正弦缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。
-105  */
-106 var Sine = createEase(null,
-107     function(k){
-108         return -cos(k * HALF_PI) + 1;
-109     },
-110 
-111     function(k){
-112         return sin(k * HALF_PI);
-113     },
-114 
-115     function(k){
-116         return -0.5 * (cos(PI * k) - 1);
-117     }
-118 );
-119 
-120 /**
-121  * 指数缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。
-122  */
-123 var Expo = createEase(null,
-124     function(k){
-125         return k == 0 ? 0 : pow(2, 10 * (k - 1));
-126     },
-127 
-128     function(k){
-129         return k == 1 ? 1 : -pow(2, -10 * k) + 1;
-130     },
-131 
-132     function(k){
-133         if(k == 0 || k == 1) return k;
-134         if((k *= 2) < 1) return 0.5 * pow(2, 10 * (k - 1));
-135         return 0.5 * (-pow(2, - 10 * (k - 1)) + 2);
-136     }
-137 );
-138 
-139 /**
-140  * 圆形缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。
-141  */
-142 var Circ = createEase(null,
-143     function(k){
-144         return -(sqrt(1 - k * k) - 1);
-145     },
-146 
-147     function(k){
-148         return sqrt(1 - --k * k);
-149     },
-150 
-151     function(k){
-152         if((k /= 0.5) < 1) return - 0.5 * (sqrt(1 - k * k) - 1);
-153         return 0.5 * (sqrt(1 - (k -= 2) * k) + 1);
-154     }
-155 );
-156 
-157 /**
-158  * 弹性缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。
-159  */
-160 var Elastic = createEase(
-161     {
-162         a: 1,
-163         p: 0.4,
-164         s: 0.1,
-165 
-166         config: function(amplitude, period){
-167             Elastic.a = amplitude;
-168             Elastic.p = period;
-169             Elastic.s = period / (2 * PI) * Math.asin(1 / amplitude) || 0;
-170         }
-171     },
-172 
-173     function(k){
-174         return -(Elastic.a * pow(2, 10 * (k -= 1)) * sin((k - Elastic.s) * (2 * PI) / Elastic.p));
-175     },
-176 
-177     function(k){
-178         return (Elastic.a * pow(2, -10 * k) * sin((k - Elastic.s) * (2 * PI) / Elastic.p) + 1);
-179     },
-180 
-181     function(k){
-182         return ((k *= 2) < 1) ? -0.5 * (Elastic.a * pow(2, 10 * (k -= 1)) * sin((k - Elastic.s) * (2 * PI) / Elastic.p)) :
-183                Elastic.a * pow(2, -10 * (k -= 1)) * sin((k - Elastic.s) * (2 * PI) / Elastic.p) * 0.5 + 1;
-184     }
-185 );
-186 
-187 /**
-188  * 向后缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。
-189  */
-190 var Back = createEase(
-191     {
-192         o: 1.70158,
-193         s: 2.59491,
-194 
-195         config: function(overshoot){
-196             Back.o = overshoot;
-197             Back.s = overshoot * 1.525;
-198         }
-199     },
-200 
-201     function(k){
-202         return k * k * ((Back.o + 1) * k - Back.o);
-203     },
-204 
-205     function(k){
-206         return (k = k - 1) * k * ((Back.o + 1) * k + Back.o) + 1;
-207     },
-208 
-209     function(k){
-210         return ((k *= 2) < 1) ? 0.5 * (k * k * ((Back.s + 1) * k - Back.s)) : 0.5 * ((k -= 2) * k * ((Back.s + 1) * k + Back.s) + 2);
-211     }
-212 );
-213 
-214 /**
-215  * 弹跳缓动函数。包含EaseIn、EaseOut、EaseInOut三个函数。
-216  */
-217 var Bounce = createEase(null,
-218     function(k){
-219         return 1 - Bounce.EaseOut(1 - k);
-220     },
-221 
-222     function(k){
-223         if((k /= 1) < 0.36364){
-224             return 7.5625 * k * k;
-225         }else if(k < 0.72727){
-226             return 7.5625 * (k -= 0.54545) * k + 0.75;
-227         }else if(k < 0.90909){
-228             return 7.5625 * (k -= 0.81818) * k + 0.9375;
-229         }else{
-230             return 7.5625 * (k -= 0.95455) * k + 0.984375;
-231         }
-232     },
-233 
-234     function(k){
-235         return k < 0.5 ? Bounce.EaseIn(k * 2) * 0.5 : Bounce.EaseOut(k * 2 - 1) * 0.5 + 0.5;
-236     }
-237 );
-238 
-239 return {
-240     Linear: Linear,
-241     Quad: Quad,
-242     Cubic: Cubic,
-243     Quart: Quart,
-244     Quint: Quint,
-245     Sine: Sine,
-246     Expo: Expo,
-247     Circ: Circ,
-248     Elastic: Elastic,
-249     Back: Back,
-250     Bounce: Bounce
-251 }
-252 
-253 })();
\ No newline at end of file diff --git a/docs/api/symbols/src/src_tween_Tween.js.html b/docs/api/symbols/src/src_tween_Tween.js.html deleted file mode 100644 index 41966c27..00000000 --- a/docs/api/symbols/src/src_tween_Tween.js.html +++ /dev/null @@ -1,415 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * <iframe src='../../../examples/Tween.html?noHeader' width = '550' height = '130' scrolling='no'></iframe>
-  9  * <br/>
- 10  * 使用示例:
- 11  * <pre>
- 12  * ticker.addTick(Hilo.Tween);//需要把Tween加到ticker里才能使用
- 13  *
- 14  * var view = new View({x:5, y:10});
- 15  * Hilo.Tween.to(view, {
- 16  *     x:100,
- 17  *     y:20,
- 18  *     alpha:0
- 19  * }, {
- 20  *     duration:1000,
- 21  *     delay:500,
- 22  *     ease:Hilo.Ease.Quad.EaseIn,
- 23  *     onComplete:function(){
- 24  *         console.log('complete');
- 25  *     }
- 26  * });
- 27  * </pre>
- 28  * @class Tween类提供缓动功能。
- 29  * @param {Object} target 缓动对象。
- 30  * @param {Object} fromProps 对象缓动的起始属性集合。
- 31  * @param {Object} toProps 对象缓动的目标属性集合。
- 32  * @param {Object} params 缓动参数。可包含Tween类所有可写属性。
- 33  * @module hilo/tween/Tween
- 34  * @requires hilo/core/Class
- 35  * @property {Object} target 缓动目标。只读属性。
- 36  * @property {Int} duration 缓动总时长。单位毫秒。
- 37  * @property {Int} delay 缓动延迟时间。单位毫秒。
- 38  * @property {Boolean} paused 缓动是否暂停。默认为false。
- 39  * @property {Boolean} loop 缓动是否循环。默认为false。
- 40  * @property {Boolean} reverse 缓动是否反转播放。默认为false。
- 41  * @property {Int} repeat 缓动重复的次数。默认为0。
- 42  * @property {Int} repeatDelay 缓动重复的延迟时长。单位为毫秒。
- 43  * @property {Function} ease 缓动变化函数。默认为null。
- 44  * @property {Int} time 缓动已进行的时长。单位毫秒。只读属性。
- 45  * @property {Function} onStart 缓动开始回调函数。它接受1个参数:tween。默认值为null。
- 46  * @property {Function} onUpdate 缓动更新回调函数。它接受2个参数:ratio和tween。默认值为null。
- 47  * @property {Function} onComplete 缓动结束回调函数。它接受1个参数:tween。默认值为null。
- 48  */
- 49 var Tween = (function(){
- 50 
- 51 function now(){
- 52     return +new Date();
- 53 }
- 54 
- 55 return Class.create(/** @lends Tween.prototype */{
- 56     constructor: function(target, fromProps, toProps, params){
- 57         var me = this;
- 58 
- 59         me.target = target;
- 60         me._startTime = 0;
- 61         me._seekTime = 0;
- 62         me._pausedTime = 0;
- 63         me._pausedStartTime = 0;
- 64         me._reverseFlag = 1;
- 65         me._repeatCount = 0;
- 66 
- 67         //no fromProps if pass 3 arguments
- 68         if(arguments.length == 3){
- 69             params = toProps;
- 70             toProps = fromProps;
- 71             fromProps = null;
- 72         }
- 73 
- 74         for(var p in params) me[p] = params[p];
- 75         me.setProps(fromProps, toProps);
- 76 
- 77         //for old version compatiblity
- 78         if(!params.duration && params.time){
- 79             me.duration = params.time || 0;
- 80             me.time = 0;
- 81         }
- 82     },
- 83 
- 84     target: null,
- 85     duration: 0,
- 86     delay: 0,
- 87     paused: false,
- 88     loop: false,
- 89     reverse: false,
- 90     repeat: 0,
- 91     repeatDelay: 0,
- 92     ease: null,
- 93     time: 0, //ready only
- 94 
- 95     onStart: null,
- 96     onUpdate: null,
- 97     onComplete: null,
- 98 
- 99     /**
-100      * 设置缓动对象的初始和目标属性。
-101      * @param {Object} fromProps 缓动对象的初始属性。
-102      * @param {Object} toProps 缓动对象的目标属性。
-103      * @returns {Tween} Tween变换本身。可用于链式调用。
-104      */
-105     setProps: function(fromProps, toProps){
-106         var me = this, target = me.target,
-107             propNames = fromProps || toProps,
-108             from = me._fromProps = {}, to = me._toProps = {};
-109 
-110         fromProps = fromProps || target;
-111         toProps = toProps || target;
-112 
-113         for(var p in propNames){
-114             to[p] = toProps[p] || 0;
-115             target[p] = from[p] = fromProps[p] || 0;
-116         }
-117         return me;
-118     },
-119 
-120     /**
-121      * 启动缓动动画的播放。
-122      * @returns {Tween} Tween变换本身。可用于链式调用。
-123      */
-124     start: function(){
-125         var me = this;
-126         me._startTime = now() + me.delay;
-127         me._seekTime = 0;
-128         me._pausedTime = 0;
-129         me.paused = false;
-130         Tween.add(me);
-131         return me;
-132     },
-133 
-134     /**
-135      * 停止缓动动画的播放。
-136      * @returns {Tween} Tween变换本身。可用于链式调用。
-137      */
-138     stop: function(){
-139         Tween.remove(this);
-140         return this;
-141     },
-142 
-143     /**
-144      * 暂停缓动动画的播放。
-145      * @returns {Tween} Tween变换本身。可用于链式调用。
-146      */
-147     pause: function(){
-148         var me = this;
-149         me.paused = true;
-150         me._pausedStartTime = now();
-151         return me;
-152     },
-153 
-154     /**
-155      * 恢复缓动动画的播放。
-156      * @returns {Tween} Tween变换本身。可用于链式调用。
-157      */
-158     resume: function(){
-159         var me = this;
-160         me.paused = false;
-161         if(me._pausedStartTime) me._pausedTime += now() - me._pausedStartTime;
-162         me._pausedStartTime = 0;
-163         return me;
-164     },
-165 
-166     /**
-167      * 跳转Tween到指定的时间。
-168      * @param {Number} time 指定要跳转的时间。取值范围为:0 - duraion。
-169      * @param {Boolean} pause 是否暂停。
-170      * @returns {Tween} Tween变换本身。可用于链式调用。
-171      */
-172     seek: function(time, pause){
-173         var me = this, current = now();
-174         me._startTime = current;
-175         me._seekTime = time;
-176         me._pausedTime = 0;
-177         if(pause !== undefined) me.paused = pause;
-178         me._update(current, true);
-179         Tween.add(me);
-180         return me;
-181     },
-182 
-183     /**
-184      * 连接下一个Tween变换。其开始时间根据delay值不同而不同。当delay值为字符串且以'+'或'-'开始时,Tween的开始时间从当前变换结束点计算,否则以当前变换起始点计算。
-185      * @param {Tween} tween 要连接的Tween变换。
-186      * @returns {Tween} Tween变换本身。可用于链式调用。
-187      */
-188     link: function(tween){
-189         var me = this, delay = tween.delay, startTime = me._startTime;
-190 
-191         if(typeof delay === 'string'){
-192             var plus = delay.indexOf('+') == 0, minus = delay.indexOf('-') == 0;
-193             delay = plus || minus ? Number(delay.substr(1)) * (plus ? 1 : -1) : Number(delay);
-194         }
-195         tween.delay = delay;
-196         tween._startTime = plus || minus ? startTime + me.duration + delay : startTime + delay;
-197 
-198         me._next = tween;
-199         Tween.remove(tween);
-200         return me;
-201     },
-202 
-203     /**
-204      * Tween类的内部渲染方法。
-205      * @private
-206      */
-207     _render: function(ratio){
-208         var me = this, target = me.target, fromProps = me._fromProps, p;
-209         for(p in fromProps) target[p] = fromProps[p] + (me._toProps[p] - fromProps[p]) * ratio;
-210     },
-211 
-212     /**
-213      * Tween类的内部更新方法。
-214      * @private
-215      */
-216     _update: function(time, forceUpdate){
-217         var me = this;
-218         if(me.paused && !forceUpdate) return;
-219 
-220         //elapsed time
-221         var elapsed = time - me._startTime - me._pausedTime + me._seekTime;
-222         if(elapsed < 0) return;
-223 
-224         //elapsed ratio
-225         var ratio = elapsed / me.duration, complete = false, callback;
-226         ratio = ratio <= 0 ? 0 : ratio >= 1 ? 1 : me.ease ? me.ease(ratio) : ratio;
-227 
-228         if(me.reverse){
-229             //backward
-230             if(me._reverseFlag < 0) ratio = 1 - ratio;
-231             //forward
-232             if(ratio < 1e-7){
-233                 //repeat complete or not loop
-234                 if((me.repeat > 0 && me._repeatCount++ >= me.repeat) || (me.repeat == 0 && !me.loop)){
-235                     complete = true;
-236                 }else{
-237                     me._startTime = now();
-238                     me._pausedTime = 0;
-239                     me._reverseFlag *= -1;
-240                 }
-241             }
-242         }
-243 
-244         //start callback
-245         if(me.time == 0 && (callback = me.onStart)) callback.call(me, me);
-246         me.time = elapsed;
-247 
-248         //render & update callback
-249         me._render(ratio);
-250         (callback = me.onUpdate) && callback.call(me, ratio, me);
-251 
-252         //check if complete
-253         if(ratio >= 1){
-254             if(me.reverse){
-255                 me._startTime = now();
-256                 me._pausedTime = 0;
-257                 me._reverseFlag *= -1;
-258             }else if(me.loop || me.repeat > 0 && me._repeatCount++ < me.repeat){
-259                 me._startTime = now() + me.repeatDelay;
-260                 me._pausedTime = 0;
-261             }else{
-262                 complete = true;
-263             }
-264         }
-265 
-266         //next tween
-267         var next = me._next;
-268         if(next && next.time <= 0){
-269             var nextStartTime = next._startTime;
-270             if(nextStartTime > 0 && nextStartTime <= time){
-271                 //parallel tween
-272                 next._render(ratio);
-273                 next.time = elapsed;
-274                 Tween.add(next);
-275             }else if(complete && (nextStartTime < 0 || nextStartTime > time)){
-276                 //next tween
-277                 next.start();
-278             }
-279         }
-280 
-281         //complete
-282         if(complete){
-283             (callback = me.onComplete) && callback.call(me, me);
-284             return true;
-285         }
-286     },
-287 
-288     Statics: /** @lends Tween */ {
-289         /**
-290          * @private
-291          */
-292         _tweens: [],
-293 
-294         /**
-295          * 更新所有Tween实例。
-296          * @returns {Object} Tween。
-297          */
-298         tick: function(){
-299             var tweens = Tween._tweens, tween, i, len = tweens.length;
-300 
-301             for(i = 0; i < len; i++){
-302                 tween = tweens[i];
-303                 if(tween && tween._update(now())){
-304                     tweens.splice(i, 1);
-305                     i--;
-306                 }
-307             }
-308             return Tween;
-309         },
-310 
-311         /**
-312          * 添加Tween实例。
-313          * @param {Tween} tween 要添加的Tween对象。
-314          * @returns {Object} Tween。
-315          */
-316         add: function(tween){
-317             var tweens = Tween._tweens;
-318             if(tweens.indexOf(tween) == -1) tweens.push(tween);
-319             return Tween;
-320         },
-321 
-322         /**
-323          * 删除Tween实例。
-324          * @param {Tween|Object|Array} tweenOrTarget 要删除的Tween对象或target对象或要删除的一组对象。
-325          * @returns {Object} Tween。
-326          */
-327         remove: function(tweenOrTarget){
-328             if(tweenOrTarget instanceof Array){
-329                 for(var i = 0, l = tweenOrTarget.length;i < l;i ++){
-330                     Tween.remove(tweenOrTarget[i]);
-331                 }
-332                 return Tween;
-333             }
-334 
-335             var tweens = Tween._tweens, i;
-336             if(tweenOrTarget instanceof Tween){
-337                 i = tweens.indexOf(tweenOrTarget);
-338                 if(i > -1) tweens.splice(i, 1);
-339             }else{
-340                 for(i = 0; i < tweens.length; i++){
-341                     if(tweens[i].target === tweenOrTarget){
-342                         tweens.splice(i, 1);
-343                         i--;
-344                     }
-345                 }
-346             }
-347 
-348             return Tween;
-349         },
-350 
-351         /**
-352          * 删除所有Tween实例。
-353          * @returns {Object} Tween。
-354          */
-355         removeAll: function(){
-356             Tween._tweens.length = 0;
-357             return Tween;
-358         },
-359 
-360         /**
-361          * 创建一个缓动动画,让目标对象从开始属性变换到目标属性。
-362          * @param {Object|Array} target 缓动目标对象或缓动目标数组。
-363          * @param fromProps 缓动目标对象的开始属性。
-364          * @param toProps 缓动目标对象的目标属性。
-365          * @param params 缓动动画的参数。
-366          * @returns {Tween|Array} 一个Tween实例对象或Tween实例数组。
-367          */
-368         fromTo: function(target, fromProps, toProps, params){
-369             var isArray = target instanceof Array;
-370             target = isArray ? target : [target];
-371 
-372             var tween, i, stagger = params.stagger, tweens = [];
-373             for(i = 0; i < target.length; i++){
-374                 tween = new Tween(target[i], fromProps, toProps, params);
-375                 if(stagger) tween.delay = (params.delay || 0) + (i * stagger || 0);
-376                 tween.start();
-377                 tweens.push(tween);
-378             }
-379 
-380             return isArray?tweens:tween;
-381         },
-382 
-383         /**
-384          * 创建一个缓动动画,让目标对象从当前属性变换到目标属性。
-385          * @param {Object|Array} target 缓动目标对象或缓动目标数组。
-386          * @param toProps 缓动目标对象的目标属性。
-387          * @param params 缓动动画的参数。
-388          * @returns {Tween|Array} 一个Tween实例对象或Tween实例数组。
-389          */
-390         to: function(target, toProps, params){
-391             return Tween.fromTo(target, null, toProps, params);
-392         },
-393 
-394         /**
-395          * 创建一个缓动动画,让目标对象从指定的起始属性变换到当前属性。
-396          * @param {Object|Array} target 缓动目标对象或缓动目标数组。
-397          * @param fromProps 缓动目标对象的目标属性。
-398          * @param params 缓动动画的参数。
-399          * @returns {Tween|Array} 一个Tween实例对象或Tween实例数组。
-400          */
-401         from: function(target, fromProps, params){
-402             return Tween.fromTo(target, fromProps, null, params);
-403         }
-404     }
-405 
-406 });
-407 
-408 })();
\ No newline at end of file diff --git a/docs/api/symbols/src/src_util_TextureAtlas.js.html b/docs/api/symbols/src/src_util_TextureAtlas.js.html deleted file mode 100644 index 04eeeafe..00000000 --- a/docs/api/symbols/src/src_util_TextureAtlas.js.html +++ /dev/null @@ -1,228 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @class TextureAtlas纹理集是将许多小的纹理图片整合到一起的一张大图。这个类可根据一个纹理集数据读取纹理小图、精灵动画等。
-  9  * @param {Object} atlasData 纹理集数据。它可包含如下数据:
- 10  * <ul>
- 11  * <li><b>image</b> - 纹理集图片。必需。</li>
- 12  * <li><b>width</b> - 纹理集图片宽度。若frames数据为Object时,此属性必需。</li>
- 13  * <li><b>height</b> - 纹理集图片高度。若frames数据为Object时,此属性必需。</li>
- 14  * <li><b>frames</b> - 纹理集帧数据,可以是Array或Object。必需。
- 15  * <ul>
- 16  * <li>若为Array,则每项均为一个纹理图片帧数据,如:[[0, 0, 50, 50], [0, 50, 50, 50]。</li>
- 17  * <li>若为Object,则需包含frameWidth(帧宽)、frameHeight(帧高)、numFrames(帧数) 属性。</li>
- 18  * </ul>
- 19  * </li>
- 20  * <li><b>sprites</b> - 纹理集精灵动画定义,其每个值均定义一个精灵。为Object对象。可选。
- 21  * <ul>
- 22  * <li>若为Number,即此精灵只包含一帧,此帧为帧数据中索引为当前值的帧。如:sprites:{'foo':1}。</li>
- 23  * <li>若为Array,则每项均为一个帧的索引值。如:sprites:{'foo':[0, 1, 2, 3]}。</li>
- 24  * <li>若为Object,则需包含from(起始帧索引值)、to(末帧索引值) 属性。</li>
- 25  * </ul>
- 26  * </li>
- 27  * </ul>
- 28  * @module hilo/util/TextureAtlas
- 29  * @requires hilo/core/Class
- 30  */
- 31 var TextureAtlas = (function(){
- 32 
- 33 return Class.create(/** @lends TextureAtlas.prototype */{
- 34     constructor: function(atlasData){
- 35         this._frames = parseTextureFrames(atlasData);
- 36         this._sprites = parseTextureSprites(atlasData, this._frames);
- 37     },
- 38 
- 39     _frames: null,
- 40     _sprites: null,
- 41 
- 42     /**
- 43      * 获取指定索引位置index的帧数据。
- 44      * @param {Int} index 要获取帧的索引位置。
- 45      * @returns {Object} 帧数据。
- 46      */
- 47     getFrame: function(index){
- 48         var frames = this._frames;
- 49         return frames && frames[index];
- 50     },
- 51 
- 52     /**
- 53      * 获取指定id的精灵数据。
- 54      * @param {String} id 要获取精灵的id。
- 55      * @returns {Object} 精灵数据。
- 56      */
- 57     getSprite: function(id){
- 58         var sprites = this._sprites;
- 59         return sprites && sprites[id];
- 60     },
- 61 
- 62     Statics: /** @lends TextureAtlas */ {
- 63         /**
- 64          * 创建精灵帧数据的快捷方法。
- 65          * @param {String|Array} name 动画名称|一组动画数据
- 66          * @param {String} frames 帧数据 eg:"0-5"代表第0到第5帧
- 67          * @param {Number} w 每帧的宽
- 68          * @param {Number} h 每帧的高
- 69          * @param {Bollean} loop 是否循环
- 70          * @param {Number} duration 每帧间隔 默认单位帧, 如果sprite的timeBased为true则单位是毫秒,默认一帧
- 71          * @example
- 72          *  //方式一 单个动画
- 73          *  createSpriteFrames("walk", "0-5,8,9", meImg, 55, 88, true, 1);
- 74          *  //方式二 多组动画
- 75          *  createSpriteFrames([
- 76          *    ["walk", "0-5,8,9", meImg, 55, 88, true, 1],
- 77          *    ["jump", "0-5", meImg, 55, 88, false, 1]
- 78          *  ]);
- 79         */
- 80         createSpriteFrames:function(name, frames, img, w, h, loop, duration){
- 81             if(Object.prototype.toString.call(name) === "[object Array]"){
- 82                 var frames = [];
- 83                 for(var i = 0, l = name.length;i < l;i ++){
- 84                     frames = frames.concat(this.createSpriteFrames.apply(this, name[i]));
- 85                 }
- 86                 return frames;
- 87             }
- 88             else{
- 89                 if(typeof(frames) === "string"){
- 90                     var all = frames.split(",");
- 91                     frames = [];
- 92                     for(var j = 0, jl = all.length;j < jl;j ++){
- 93                         var temp = all[j].split("-");
- 94                         if(temp.length == 1){
- 95                             frames.push(parseInt(temp[0]));
- 96                         }
- 97                         else{
- 98                             for(var i = parseInt(temp[0]), l = parseInt(temp[1]);i <= l;i ++){
- 99                                 frames.push(i);
-100                             }
-101                         }
-102                     }
-103                 }
-104 
-105                 var col = Math.floor(img.width/w);
-106                 for(var i = 0;i < frames.length;i ++){
-107                     var n = frames[i];
-108                     frames[i] = {
-109                         rect:[w*(n%col), h*Math.floor(n/col), w, h],
-110                         image:img,
-111                         duration:duration
-112                     }
-113                 }
-114                 frames[0].name = name;
-115                 if(loop){
-116                     frames[frames.length-1].next = name;
-117                 }
-118                 else{
-119                     frames[frames.length-1].stop = true;
-120                 }
-121                 return frames;
-122             }
-123         }
-124     }
-125 });
-126 
-127 /**
-128  * 解析纹理集帧数据。
-129  * @private
-130  */
-131 function parseTextureFrames(atlasData){
-132     var frameData = atlasData.frames;
-133     if(!frameData) return null;
-134 
-135     var frames = [], obj;
-136 
-137     if(frameData instanceof Array){ //frames by array
-138         for(var i = 0, len = frameData.length; i < len; i++){
-139             obj = frameData[i];
-140             frames[i] = {
-141                 image: atlasData.image,
-142                 rect: obj
-143             };
-144         }
-145     }else{ //frames by object
-146         var frameWidth = frameData.frameWidth;
-147         var frameHeight = frameData.frameHeight;
-148         var cols = atlasData.width / frameWidth | 0;
-149         var rows = atlasData.height / frameHeight | 0;
-150         var numFrames = frameData.numFrames || cols * rows;
-151         for(var i = 0; i < numFrames; i++){
-152             frames[i] = {
-153                 image: atlasData.image,
-154                 rect: [i%cols*frameWidth, (i/cols|0)*frameHeight, frameWidth, frameHeight]
-155             }
-156         }
-157     }
-158 
-159     return frames;
-160 }
-161 
-162 /**
-163  * 解析精灵数据。
-164  * @private
-165  */
-166 function parseTextureSprites(atlasData, frames){
-167     var spriteData = atlasData.sprites;
-168     if(!spriteData) return null;
-169 
-170     var sprites = {}, sprite, spriteFrames, spriteFrame;
-171 
-172     for(var s in spriteData){
-173         sprite = spriteData[s];
-174         if(isNumber(sprite)){ //single frame
-175             spriteFrames = translateSpriteFrame(frames[sprite]);
-176         }else if(sprite instanceof Array){ //frames by array
-177             spriteFrames = [];
-178             for(var i = 0, len = sprite.length; i < len; i++){
-179                 var spriteObj = sprite[i], frameObj;
-180                 if(isNumber(spriteObj)){
-181                     spriteFrame = translateSpriteFrame(frames[spriteObj]);
-182                 }else{
-183                     frameObj = spriteObj.rect;
-184                     if(isNumber(frameObj)) frameObj = frames[spriteObj.rect];
-185                     spriteFrame = translateSpriteFrame(frameObj, spriteObj);
-186                 }
-187                 spriteFrames[i] = spriteFrame;
-188             }
-189         }else{ //frames by object
-190             spriteFrames = [];
-191             for(var i = sprite.from; i <= sprite.to; i++){
-192                 spriteFrames[i - sprite.from] = translateSpriteFrame(frames[i], sprite[i]);
-193             }
-194         }
-195         sprites[s] = spriteFrames;
-196     }
-197 
-198     return sprites;
-199 }
-200 
-201 function translateSpriteFrame(frameObj, spriteObj){
-202     var spriteFrame = {
-203         image: frameObj.image,
-204         rect: frameObj.rect
-205     };
-206 
-207     if(spriteObj){
-208         spriteFrame.name = spriteObj.name || null;
-209         spriteFrame.duration = spriteObj.duration || 0;
-210         spriteFrame.stop = !!spriteObj.stop;
-211         spriteFrame.next = spriteObj.next || null;
-212     }
-213 
-214     return spriteFrame;
-215 }
-216 
-217 function isNumber(value){
-218     return typeof value === 'number';
-219 }
-220 
-221 })();
\ No newline at end of file diff --git a/docs/api/symbols/src/src_util_Ticker.js.html b/docs/api/symbols/src/src_util_Ticker.js.html deleted file mode 100644 index b4bd36cf..00000000 --- a/docs/api/symbols/src/src_util_Ticker.js.html +++ /dev/null @@ -1,145 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @class Ticker是一个定时器类。它可以按指定帧率重复运行,从而按计划执行代码。
-  9  * @param {Number} fps 指定定时器的运行帧率。
- 10  * @module hilo/util/Ticker
- 11  * @requires hilo/core/Class
- 12  * @requires hilo/core/Hilo
- 13  */
- 14 var Ticker = Class.create(/** @lends Ticker.prototype */{
- 15     constructor: function(fps){
- 16         this._targetFPS = fps || 30;
- 17         this._interval = 1000 / this._targetFPS;
- 18         this._tickers = [];
- 19     },
- 20 
- 21     _paused: false,
- 22     _targetFPS: 0,
- 23     _interval: 0,
- 24     _intervalId: null,
- 25     _tickers: null,
- 26     _lastTime: 0,
- 27     _tickCount: 0,
- 28     _tickTime: 0,
- 29     _measuredFPS: 0,
- 30 
- 31     /**
- 32      * 启动定时器。
- 33      * @param {Boolean} userRAF 是否使用requestAnimationFrame,默认为false。
- 34      */
- 35     start: function(useRAF){
- 36         if(this._intervalId) return;
- 37         this._lastTime = +new Date();
- 38 
- 39         var self = this, interval = this._interval,
- 40             raf = window.requestAnimationFrame ||
- 41                   window[Hilo.browser.jsVendor + 'RequestAnimationFrame'];
- 42 
- 43         if(useRAF && raf){
- 44             var tick = function(){
- 45                 self._tick();
- 46             }
- 47             var runLoop = function(){
- 48                 self._intervalId = setTimeout(runLoop, interval);
- 49                 raf(tick);
- 50             };
- 51         }else{
- 52             runLoop = function(){
- 53                 self._intervalId = setTimeout(runLoop, interval);
- 54                 self._tick();
- 55             };
- 56         }
- 57 
- 58         runLoop();
- 59     },
- 60 
- 61     /**
- 62      * 停止定时器。
- 63      */
- 64     stop: function(){
- 65         clearTimeout(this._intervalId);
- 66         this._intervalId = null;
- 67         this._lastTime = 0;
- 68     },
- 69 
- 70     /**
- 71      * 暂停定时器。
- 72      */
- 73     pause: function(){
- 74         this._paused = true;
- 75     },
- 76 
- 77     /**
- 78      * 恢复定时器。
- 79      */
- 80     resume: function(){
- 81         this._paused = false;
- 82     },
- 83 
- 84     /**
- 85      * @private
- 86      */
- 87     _tick: function(){
- 88         if(this._paused) return;
- 89         var startTime = +new Date(),
- 90             deltaTime = startTime - this._lastTime,
- 91             tickers = this._tickers;
- 92 
- 93         //calculates the real fps
- 94         if(++this._tickCount >= this._targetFPS){
- 95             this._measuredFPS = 1000 / (this._tickTime / this._tickCount) + 0.5 >> 0;
- 96             this._tickCount = 0;
- 97             this._tickTime = 0;
- 98         }else{
- 99             this._tickTime += startTime - this._lastTime;
-100         }
-101         this._lastTime = startTime;
-102 
-103         for(var i = 0, len = tickers.length; i < len; i++){
-104             tickers[i].tick(deltaTime);
-105         }
-106     },
-107 
-108     /**
-109      * 获得测定的运行时帧率。
-110      */
-111     getMeasuredFPS: function(){
-112         return this._measuredFPS;
-113     },
-114 
-115     /**
-116      * 添加定时器对象。定时器对象必须实现 tick 方法。
-117      * @param {Object} tickObject 要添加的定时器对象。此对象必须包含 tick 方法。
-118      */
-119     addTick: function(tickObject){
-120         if(!tickObject || typeof(tickObject.tick) != 'function'){
-121             throw new Error('Ticker: The tick object must implement the tick method.');
-122         }
-123         this._tickers.push(tickObject);
-124     },
-125 
-126     /**
-127      * 删除定时器对象。
-128      * @param {Object} tickObject 要删除的定时器对象。
-129      */
-130     removeTick: function(tickObject){
-131         var tickers = this._tickers,
-132             index = tickers.indexOf(tickObject);
-133         if(index >= 0){
-134             tickers.splice(index, 1);
-135         }
-136     }
-137 
-138 });
\ No newline at end of file diff --git a/docs/api/symbols/src/src_util_drag.js.html b/docs/api/symbols/src/src_util_drag.js.html deleted file mode 100644 index 642bc8d8..00000000 --- a/docs/api/symbols/src/src_util_drag.js.html +++ /dev/null @@ -1,109 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * <iframe src='../../../examples/drag.html?noHeader' width = '550' height = '250' scrolling='no'></iframe>
-  9  * <br/>
- 10  * 使用示例:
- 11  * <pre>
- 12  * var bmp = new Bitmap({image:img});
- 13  * Hilo.copy(bmp, Hilo.drag);
- 14  * bmp.startDrag([0, 0, 550, 400]);
- 15  * </pre>
- 16  * @class drag是一个包含拖拽功能的mixin。可以通过 Class.mix(view, drag)或Hilo.copy(view, drag)来为view增加拖拽功能。
- 17  * @mixin
- 18  * @static
- 19  * @module hilo/util/drag
- 20  * @requires hilo/core/Class
- 21  * @requires hilo/core/Hilo
- 22  */
- 23 var drag = {
- 24     /**
- 25       * 开始拖拽
- 26       * @param {Array} bounds 拖拽范围,基于父容器坐标系,[x, y, width, height], 默认无限制
- 27     */
- 28     startDrag:function(bounds){
- 29         var that = this;
- 30         var stage;
- 31         var bounds = bounds||[-Infinity, -Infinity, Infinity, Infinity];
- 32         var mouse = {
- 33             x:0,
- 34             y:0,
- 35             preX:0,
- 36             preY:0
- 37         };
- 38         var minX = bounds[0];
- 39         var minY = bounds[1];
- 40         var maxX = bounds[2] == Infinity?Infinity:minX + bounds[2];
- 41         var maxY = bounds[3] == Infinity?Infinity:minY + bounds[3];
- 42 
- 43         function onStart(e){
- 44             e.stopPropagation();
- 45             updateMouse(e);
- 46             that.off(Hilo.event.POINTER_START, onStart);
- 47 
- 48             that.fire("dragStart", mouse);
- 49 
- 50             that.__dragX = that.x - mouse.x;
- 51             that.__dragY = that.y - mouse.y;
- 52 
- 53             if(!stage){
- 54                 stage = this.getStage();
- 55             }
- 56             stage.on(Hilo.event.POINTER_MOVE, onMove);
- 57             document.addEventListener(Hilo.event.POINTER_END, onStop);
- 58         }
- 59 
- 60         function onStop(e){
- 61             document.removeEventListener(Hilo.event.POINTER_END, onStop);
- 62             stage && stage.off(Hilo.event.POINTER_MOVE, onMove);
- 63 
- 64             that.fire("dragEnd", mouse);
- 65             that.on(Hilo.event.POINTER_START, onStart);
- 66         }
- 67 
- 68         function onMove(e){
- 69             updateMouse(e);
- 70 
- 71             that.fire("dragMove", mouse);
- 72 
- 73             var x = mouse.x + that.__dragX;
- 74             var y = mouse.y + that.__dragY;
- 75 
- 76             that.x = Math.max(minX, Math.min(maxX, x));
- 77             that.y = Math.max(minY, Math.min(maxY, y));
- 78         }
- 79 
- 80         function updateMouse(e){
- 81             mouse.preX = mouse.x;
- 82             mouse.preY = mouse.y;
- 83             mouse.x = e.stageX;
- 84             mouse.y = e.stageY;
- 85         }
- 86 
- 87         function stopDrag(){
- 88             document.removeEventListener(Hilo.event.POINTER_END, onStop);
- 89             stage && stage.off(Hilo.event.POINTER_MOVE, onMove);
- 90             that.off(Hilo.event.POINTER_START, onStart);
- 91         }
- 92         that.on(Hilo.event.POINTER_START, onStart);
- 93 
- 94         that.stopDrag = stopDrag;
- 95     },
- 96     /**
- 97       * 停止拖拽
- 98     */
- 99     stopDrag:function(){
-100 
-101     }
-102 };
\ No newline at end of file diff --git a/docs/api/symbols/src/src_util_polyfill.js.html b/docs/api/symbols/src/src_util_polyfill.js.html deleted file mode 100644 index 6de3c941..00000000 --- a/docs/api/symbols/src/src_util_polyfill.js.html +++ /dev/null @@ -1,46 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 var arrayProto = Array.prototype,
-  8     slice = arrayProto.slice;
-  9 
- 10 //polyfiil for Array.prototype.indexOf
- 11 arrayProto.indexOf = arrayProto.indexOf || function(elem, fromIndex){
- 12     fromIndex = fromIndex || 0;
- 13     var len = this.length, i;
- 14     if(len == 0 || fromIndex >= len) return -1;
- 15     if(fromIndex < 0) fromIndex = len + fromIndex;
- 16     for(i = fromIndex; i < len; i++){
- 17         if(this[i] === elem) return i;
- 18     }
- 19     return -1;
- 20 };
- 21 
- 22 var fnProto = Function.prototype;
- 23 
- 24 //polyfill for Function.prototype.bind
- 25 fnProto.bind = fnProto.bind || function(thisArg){
- 26     var target = this,
- 27         boundArgs = slice.call(arguments, 1),
- 28         F = function(){};
- 29 
- 30     function bound(){
- 31         var args = boundArgs.concat(slice.call(arguments));
- 32         return target.apply(this instanceof bound ? this : thisArg, args);
- 33     }
- 34 
- 35     F.prototype = target.prototype;
- 36     bound.prototype = new F();
- 37 
- 38     return bound;
- 39 };
\ No newline at end of file diff --git a/docs/api/symbols/src/src_view_Bitmap.js.html b/docs/api/symbols/src/src_view_Bitmap.js.html deleted file mode 100644 index 395feb42..00000000 --- a/docs/api/symbols/src/src_view_Bitmap.js.html +++ /dev/null @@ -1,68 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * <iframe src='../../../examples/Bitmap.html?noHeader' width = '300' height = '200' scrolling='no'></iframe>
-  9  * <br/>
- 10  * 使用示例:
- 11  * <pre>
- 12  * var bmp = new Hilo.Bitmap({image:imgElem, rect:[0, 0, 100, 100]});
- 13  * stage.addChild(bmp);
- 14  * </pre>
- 15  * @class Bitmap类表示位图图像类。
- 16  * @augments View
- 17  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。此外还包括:
- 18  * <ul>
- 19  * <li><b>image</b> - 位图所在的图像image。必需。</li>
- 20  * <li><b>rect</b> - 位图在图像image中矩形区域。</li>
- 21  * </ul>
- 22  * @module hilo/view/Bitmap
- 23  * @requires hilo/core/Hilo
- 24  * @requires hilo/core/Class
- 25  * @requires hilo/view/View
- 26  * @requires hilo/view/Drawable
- 27  */
- 28  var Bitmap = Class.create(/** @lends Bitmap.prototype */{
- 29     Extends: View,
- 30     constructor: function(properties){
- 31         properties = properties || {};
- 32         this.id = this.id || properties.id || Hilo.getUid("Bitmap");
- 33         Bitmap.superclass.constructor.call(this, properties);
- 34 
- 35         this.drawable = new Drawable(properties);
- 36 
- 37         //init width and height
- 38         if(!this.width || !this.height){
- 39             var rect = this.drawable.rect;
- 40             if(rect){
- 41                 this.width = rect[2];
- 42                 this.height = rect[3];
- 43             }
- 44         }
- 45     },
- 46 
- 47     /**
- 48      * 设置位图的图片。
- 49      * @param {Image|String} image 图片对象或地址。
- 50      * @param {Array} rect 指定位图在图片image的矩形区域。
- 51      * @returns {Bitmap} 位图本身。
- 52      */
- 53     setImage: function(image, rect){
- 54         this.drawable.init({image:image, rect:rect});
- 55         if(rect){
- 56             this.width = rect[2];
- 57             this.height = rect[3];
- 58         }
- 59         return this;
- 60     }
- 61  });
\ No newline at end of file diff --git a/docs/api/symbols/src/src_view_BitmapText.js.html b/docs/api/symbols/src/src_view_BitmapText.js.html deleted file mode 100644 index 5ac61715..00000000 --- a/docs/api/symbols/src/src_view_BitmapText.js.html +++ /dev/null @@ -1,176 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * <iframe src='../../../examples/BitmapText.html?noHeader' width = '550' height = '80' scrolling='no'></iframe>
-  9  * <br/>
- 10  * @class BitmapText类提供使用位图文本的功能。当前仅支持单行文本。
- 11  * @augments Container
- 12  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。
- 13  * @module hilo/view/BitmapText
- 14  * @requires hilo/core/Class
- 15  * @requires hilo/core/Hilo
- 16  * @requires hilo/view/Container
- 17  * @requires hilo/view/Bitmap
- 18  * @property {Object} glyphs 位图字体的字形集合。格式为:{letter:{image:img, rect:[0,0,100,100]}}。
- 19  * @property {Number} letterSpacing 字距,即字符间的间隔。默认值为0。
- 20  * @property {String} text 位图文本的文本内容。只读属性。设置文本请使用setFont方法。
- 21  * @property {String} textAlign 文本对齐方式,值为left、center、right, 默认left。只读属性。设置文本请使用setTextAlign方法。
- 22  */
- 23 var BitmapText = Class.create(/** @lends BitmapText.prototype */{
- 24     Extends: Container,
- 25     constructor: function(properties){
- 26         properties = properties || {};
- 27         this.id = this.id || properties.id || Hilo.getUid('BitmapText');
- 28         BitmapText.superclass.constructor.call(this, properties);
- 29 
- 30         var text = properties.text + '';
- 31         if(text){
- 32             this.text = '';
- 33             this.setText(text);
- 34         }
- 35 
- 36         this.pointerChildren = false; //disable user events for single letters
- 37     },
- 38 
- 39     glyphs: null,
- 40     letterSpacing: 0,
- 41     text: '',
- 42     textAlign:'left',
- 43 
- 44     /**
- 45      * 设置位图文本的文本内容。
- 46      * @param {String} text 要设置的文本内容。
- 47      * @returns {BitmapText} BitmapText对象本身。链式调用支持。
- 48      */
- 49     setText: function(text){
- 50         var me = this, str = text.toString(), len = str.length;
- 51         if(me.text == str) return;
- 52         me.text = str;
- 53 
- 54         var i, charStr, charGlyph, charObj, width = 0, height = 0, left = 0;
- 55         for(i = 0; i < len; i++){
- 56             charStr = str.charAt(i);
- 57             charGlyph = me.glyphs[charStr];
- 58             if(charGlyph){
- 59                 left = width + (width > 0 ? me.letterSpacing : 0);
- 60                 if(me.children[i]){
- 61                     charObj = me.children[i];
- 62                     charObj.setImage(charGlyph.image, charGlyph.rect);
- 63                 }
- 64                 else{
- 65                     charObj = me._createBitmap(charGlyph);
- 66                     me.addChild(charObj);
- 67                 }
- 68                 charObj.x = left;
- 69                 width = left + charGlyph.rect[2];
- 70                 height = Math.max(height, charGlyph.rect[3]);
- 71             }
- 72         }
- 73 
- 74         for(i = me.children.length - 1;i >= len;i --){
- 75             me._releaseBitmap(me.children[i]);
- 76             me.children[i].removeFromParent();
- 77         }
- 78 
- 79         me.width = width;
- 80         me.height = height;
- 81         this.setTextAlign();
- 82         return me;
- 83     },
- 84     _createBitmap:function(cfg){
- 85         var bmp;
- 86         if(BitmapText._pool.length){
- 87             bmp = BitmapText._pool.pop();
- 88             bmp.setImage(cfg.image, cfg.rect);
- 89         }
- 90         else{
- 91             bmp = new Bitmap({
- 92                 image:cfg.image,
- 93                 rect:cfg.rect
- 94             });
- 95         }
- 96         return bmp;
- 97     },
- 98     _releaseBitmap:function(bmp){
- 99         BitmapText._pool.push(bmp);
-100     },
-101 
-102      /**
-103      * 设置位图文本的对齐方式。
-104      * @param textAlign 文本对齐方式,值为left、center、right
-105      * @returns {BitmapText} BitmapText对象本身。链式调用支持。
-106      */
-107     setTextAlign:function(textAlign){
-108         this.textAlign = textAlign||this.textAlign;
-109         switch(this.textAlign){
-110             case "center":
-111                 this.pivotX = this.width * .5;
-112                 break;
-113             case "right":
-114                 this.pivotX = this.width;
-115                 break;
-116             case "left":
-117             default:
-118                 this.pivotX = 0;
-119                 break;
-120         }
-121         return this;
-122     },
-123 
-124     /**
-125      * 返回能否使用当前指定的字体显示提供的字符串。
-126      * @param {String} str 要检测的字符串。
-127      * @returns {Boolean} 是否能使用指定字体。
-128      */
-129     hasGlyphs: function(str){
-130         var glyphs = this.glyphs;
-131         if(!glyphs) return false;
-132 
-133         var str = str.toString(), len = str.length, i;
-134         for(i = 0; i < len; i++){
-135             if(!glyphs[str.charAt(i)]) return false;
-136         }
-137         return true;
-138     },
-139 
-140     Statics:/** @lends BitmapText */{
-141         _pool:[],
-142         /**
-143          * 简易方式生成字形集合。
-144          * @static
-145          * @param {String} text 字符文本。
-146          * @param {Image} image 字符图片。
-147          * @param {Number} col 列数  默认和文本字数一样
-148          * @param {Number} row 行数 默认1行
-149          * @returns {BitmapText} BitmapText对象本身。链式调用支持。
-150          */
-151         createGlyphs:function(text, image, col, row){
-152             var str = text.toString();
-153             col = col||str.length;
-154             row = row||1;
-155             var w = image.width/col;
-156             var h = image.height/row;
-157             var glyphs = {};
-158             for(var i = 0, l = text.length;i < l;i ++){
-159                 charStr = str.charAt(i);
-160                 glyphs[charStr] = {
-161                     image:image,
-162                     rect:[w * (i % col), h * Math.floor(i / col), w, h]
-163                 }
-164             }
-165             return glyphs;
-166         }
-167     }
-168 
-169 });
\ No newline at end of file diff --git a/docs/api/symbols/src/src_view_Button.js.html b/docs/api/symbols/src/src_view_Button.js.html deleted file mode 100644 index 159d2f39..00000000 --- a/docs/api/symbols/src/src_view_Button.js.html +++ /dev/null @@ -1,170 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * <iframe src='../../../examples/Button.html?noHeader' width = '320' height = '170' scrolling='no'></iframe>
-  9  * <br/>
- 10  * 示例:
- 11  * <pre>
- 12  * var btn = new Hilo.Button({
- 13  *     image: buttonImage,
- 14  *     upState: {rect:[0, 0, 64, 64]},
- 15  *     overState: {rect:[64, 0, 64, 64]},
- 16  *     downState: {rect:[128, 0, 64, 64]},
- 17  *     disabledState: {rect:[192, 0, 64, 64]}
- 18  * });
- 19  * </pre>
- 20  * @class Button类表示简单按钮类。它有弹起、经过、按下和不可用等四种状态。
- 21  * @augments View
- 22  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。此外还包括:
- 23  * <ul>
- 24  * <li><b>image</b> - 按钮图片所在的image对象。</li>
- 25  * </ul>
- 26  * @module hilo/view/Button
- 27  * @requires hilo/core/Hilo
- 28  * @requires hilo/core/Class
- 29  * @requires hilo/view/View
- 30  * @requires hilo/view/Drawable
- 31  * @property {Object} upState 按钮弹起状态的属性或其drawable的属性的集合。
- 32  * @property {Object} overState 按钮经过状态的属性或其drawable的属性的集合。
- 33  * @property {Object} downState 按钮按下状态的属性或其drawable的属性的集合。
- 34  * @property {Object} disabledState 按钮不可用状态的属性或其drawable的属性的集合。
- 35  * @property {String} state 按钮的状态名称。它是 Button.UP|OVER|DOWN|DISABLED 之一。 只读属性。
- 36  * @property {Boolean} enabled 指示按钮是否可用。默认为true。只读属性。
- 37  * @property {Boolean} useHandCursor 当设置为true时,表示指针滑过按钮上方时是否显示手形光标。默认为true。
- 38  */
- 39  var Button = Class.create(/** @lends Button.prototype */{
- 40     Extends: View,
- 41     constructor: function(properties){
- 42         properties = properties || {};
- 43         this.id = this.id || properties.id || Hilo.getUid("Button");
- 44         Button.superclass.constructor.call(this, properties);
- 45 
- 46         this.drawable = new Drawable(properties);
- 47         this.setState(Button.UP);
- 48     },
- 49 
- 50     upState: null,
- 51     overState: null,
- 52     downState: null,
- 53     disabledState: null,
- 54 
- 55     state: null,
- 56     enabled: true,
- 57     useHandCursor: true,
- 58 
- 59     /**
- 60      * 设置按钮是否可用。
- 61      * @param {Boolean} enabled 指示按钮是否可用。
- 62      * @returns {Button} 按钮本身。
- 63      */
- 64     setEnabled: function(enabled){
- 65         if(this.enabled != enabled){
- 66             if(!enabled){
- 67                 this.setState(Button.DISABLED);
- 68             }else{
- 69                 this.setState(Button.UP);
- 70             }
- 71         }
- 72         return this;
- 73     },
- 74 
- 75     /**
- 76      * 设置按钮的状态。此方法由Button内部调用,一般无需使用此方法。
- 77      * @param {String} state 按钮的新的状态。
- 78      * @returns {Button} 按钮本身。
- 79      */
- 80     setState: function(state){
- 81         if(this.state !== state){
- 82             this.state = state;
- 83             this.pointerEnabled = this.enabled = state !== Button.DISABLED;
- 84 
- 85             var stateObj;
- 86             switch(state){
- 87                 case Button.UP:
- 88                     stateObj = this.upState;
- 89                     break;
- 90                 case Button.OVER:
- 91                     stateObj = this.overState;
- 92                     break;
- 93                 case Button.DOWN:
- 94                     stateObj = this.downState;
- 95                     break;
- 96                 case Button.DISABLED:
- 97                     stateObj = this.disabledState;
- 98                     break;
- 99             }
-100 
-101             if(stateObj){
-102                 this.drawable.init(stateObj);
-103                 Hilo.copy(this, stateObj, true);
-104             }
-105         }
-106 
-107         return this;
-108     },
-109 
-110     /**
-111      * overwrite
-112      * @private
-113      */
-114     fire: function(type, detail){
-115         if(!this.enabled) return;
-116 
-117         var evtType = typeof type === 'string' ? type : type.type;
-118         switch(evtType){
-119             case 'mousedown':
-120             case 'touchstart':
-121             case 'touchmove':
-122                 this.setState(Button.DOWN);
-123                 break;
-124             case "mouseover":
-125                 this.setState(Button.OVER);
-126                 break;
-127             case 'mouseup':
-128                 if(this.overState) this.setState(Button.OVER);
-129                 else if(this.upState) this.setState(Button.UP);
-130                 break;
-131             case 'touchend':
-132             case 'touchout':
-133             case 'mouseout':
-134                 this.setState(Button.UP);
-135                 break;
-136         }
-137 
-138         return Button.superclass.fire.call(this, type, detail);
-139     },
-140 
-141     Statics: /** @lends Button */ {
-142         /**
-143          * 按钮弹起状态的常量值,即:'up'。
-144          * @type String
-145          */
-146         UP: 'up',
-147         /**
-148          * 按钮经过状态的常量值,即:'over'。
-149          * @type String
-150          */
-151         OVER: 'over',
-152         /**
-153          * 按钮按下状态的常量值,即:'down'。
-154          * @type String
-155          */
-156         DOWN: 'down',
-157         /**
-158          * 按钮不可用状态的常量值,即:'disabled'。
-159          * @type String
-160          */
-161         DISABLED: 'disabled'
-162     }
-163  });
\ No newline at end of file diff --git a/docs/api/symbols/src/src_view_CacheMixin.js.html b/docs/api/symbols/src/src_view_CacheMixin.js.html deleted file mode 100644 index 6e0e17df..00000000 --- a/docs/api/symbols/src/src_view_CacheMixin.js.html +++ /dev/null @@ -1,56 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 var _cacheCanvas = Hilo.createElement('canvas');
-  8 var _cacheContext = _cacheCanvas.getContext('2d');
-  9 /**
- 10  * @class CacheMixin是一个包含cache功能的mixin。可以通过 Class.mix(target, CacheMixin) 来为target增加cache功能。
- 11  * @mixin
- 12  * @static
- 13  * @module hilo/view/CacheMixin
- 14  * @requires hilo/core/Hilo
- 15  * @requires hilo/core/Class
- 16  * @requires hilo/view/Drawable
- 17  */
- 18 var CacheMixin = {
- 19     _cacheDirty:true,
- 20     /**
- 21      * 缓存到图片里。可用来提高渲染效率。
- 22      * @param {Boolean} forceUpdate 是否强制更新缓存
- 23      */
- 24     cache: function(forceUpdate){
- 25         if(forceUpdate || this._cacheDirty || !this._cacheImage){
- 26             this.updateCache();
- 27         }
- 28     },
- 29     /**
- 30      * 更新缓存
- 31      */
- 32     updateCache:function(){
- 33         //TODO:width, height自动判断
- 34         _cacheCanvas.width = this.width;
- 35         _cacheCanvas.height = this.height;
- 36         this._draw(_cacheContext);
- 37         this._cacheImage = new Image();
- 38         this._cacheImage.src = _cacheCanvas.toDataURL();
- 39         this.drawable = this.drawable||new Drawable();
- 40         this.drawable.init(this._cacheImage);
- 41         this._cacheDirty = false;
- 42     },
- 43     /**
- 44      * 设置缓存是否dirty
- 45      */
- 46     setCacheDirty:function(dirty){
- 47         this._cacheDirty = dirty;
- 48     }
- 49 };
\ No newline at end of file diff --git a/docs/api/symbols/src/src_view_Container.js.html b/docs/api/symbols/src/src_view_Container.js.html deleted file mode 100644 index f82c4577..00000000 --- a/docs/api/symbols/src/src_view_Container.js.html +++ /dev/null @@ -1,352 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @class Container是所有容器类的基类。每个Container都可以添加其他可视对象为子级。
-  9  * @augments View
- 10  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。
- 11  * @module hilo/view/Container
- 12  * @requires hilo/core/Hilo
- 13  * @requires hilo/core/Class
- 14  * @requires hilo/view/View
- 15  * @property {Array} children 容器的子元素列表。只读。
- 16  * @property {Boolean} pointerChildren 指示容器的子元素是否能响应用户交互事件。默认为true。
- 17  * @property {Boolean} clipChildren 指示是否裁剪超出容器范围的子元素。默认为false。
- 18  */
- 19 var Container = Class.create(/** @lends Container.prototype */{
- 20     Extends: View,
- 21     constructor: function(properties){
- 22         properties = properties || {};
- 23         this.id = this.id || properties.id || Hilo.getUid("Container");
- 24         Container.superclass.constructor.call(this, properties);
- 25 
- 26         if(this.children) this._updateChildren();
- 27         else this.children = [];
- 28     },
- 29 
- 30     children: null,
- 31     pointerChildren: true,
- 32     clipChildren: false,
- 33 
- 34     /**
- 35      * 返回容器的子元素的数量。
- 36      * @returns {Uint} 容器的子元素的数量。
- 37      */
- 38     getNumChildren: function(){
- 39         return this.children.length;
- 40     },
- 41 
- 42     /**
- 43      * 在指定索引位置添加子元素。
- 44      * @param {View} child 要添加的子元素。
- 45      * @param {Number} index 指定的索引位置,从0开始。
- 46      */
- 47     addChildAt: function(child, index){
- 48         var children = this.children,
- 49             len = children.length,
- 50             parent = child.parent;
- 51 
- 52         index = index < 0 ? 0 : index > len ? len : index;
- 53         var childIndex = this.getChildIndex(child);
- 54         if(childIndex == index){
- 55             return this;
- 56         }else if(childIndex >= 0){
- 57             children.splice(childIndex, 1);
- 58             index = index == len ? len - 1 : index;
- 59         }else if(parent){
- 60             parent.removeChild(child);
- 61         }
- 62 
- 63         children.splice(index, 0, child);
- 64 
- 65         //直接插入,影响插入位置之后的深度
- 66         if(childIndex < 0){
- 67             this._updateChildren(index);
- 68         }
- 69         //只是移动时影响中间段的深度
- 70         else{
- 71             var startIndex = childIndex < index ? childIndex : index;
- 72             var endIndex = childIndex < index ? index : childIndex;;
- 73             this._updateChildren(startIndex, endIndex + 1);
- 74         }
- 75 
- 76         return this;
- 77     },
- 78 
- 79     /**
- 80      * 在最上面添加子元素。
- 81      * @param {View} child 要添加的子元素。
- 82      */
- 83     addChild: function(child){
- 84         var total = this.children.length,
- 85             args = arguments;
- 86 
- 87         for(var i = 0, len = args.length; i < len; i++){
- 88             this.addChildAt(args[i], total + i);
- 89         }
- 90         return this;
- 91     },
- 92 
- 93     /**
- 94      * 在指定索引位置删除子元素。
- 95      * @param {Int} index 指定删除元素的索引位置,从0开始。
- 96      * @returns {View} 被删除的对象。
- 97      */
- 98     removeChildAt: function(index){
- 99         var children = this.children;
-100         if(index < 0 || index >= children.length) return null;
-101 
-102         var child = children[index];
-103         if(child){
-104             //NOTE: use `__renderer` for fixing child removal (DOMRenderer and FlashRenderer only).
-105             //Do `not` use it in any other case.
-106             if(!child.__renderer){
-107                 var obj = child;
-108                 while(obj = obj.parent){
-109                     //obj is stage
-110                     if(obj.renderer){
-111                         child.__renderer = obj.renderer;
-112                         break;
-113                     }
-114                     else if(obj.__renderer){
-115                         child.__renderer = obj.__renderer;
-116                         break;
-117                     }
-118                 }
-119             }
-120 
-121             if(child.__renderer){
-122                 child.__renderer.remove(child);
-123             }
-124 
-125             child.parent = null;
-126             child.depth = -1;
-127         }
-128 
-129         children.splice(index, 1);
-130         this._updateChildren(index);
-131 
-132         return child;
-133     },
-134 
-135     /**
-136      * 删除指定的子元素。
-137      * @param {View} child 指定要删除的子元素。
-138      * @returns {View} 被删除的对象。
-139      */
-140     removeChild: function(child){
-141         return this.removeChildAt(this.getChildIndex(child));
-142     },
-143 
-144     /**
-145      * 删除指定id的子元素。
-146      * @param {String} id 指定要删除的子元素的id。
-147      * @returns {View} 被删除的对象。
-148      */
-149     removeChildById: function(id){
-150         var children = this.children, child;
-151         for(var i = 0, len = children.length; i < len; i++){
-152             child = children[i];
-153             if(child.id === id){
-154                 this.removeChildAt(i);
-155                 return child;
-156             }
-157         }
-158         return null;
-159     },
-160 
-161     /**
-162      * 删除所有的子元素。
-163      * @returns {Container} 容器本身。
-164      */
-165     removeAllChildren: function(){
-166         while(this.children.length) this.removeChildAt(0);
-167         return this;
-168     },
-169 
-170     /**
-171      * 返回指定索引位置的子元素。
-172      * @param {Number} index 指定要返回的子元素的索引值,从0开始。
-173      */
-174     getChildAt: function(index){
-175         var children = this.children;
-176         if(index < 0 || index >= children.length) return null;
-177         return children[index];
-178     },
-179 
-180     /**
-181      * 返回指定id的子元素。
-182      * @param {String} id 指定要返回的子元素的id。
-183      */
-184     getChildById: function(id){
-185         var children = this.children, child;
-186         for(var i = 0, len = children.length; i < len; i++){
-187             child = children[i];
-188             if(child.id === id) return child;
-189         }
-190         return null;
-191     },
-192 
-193     /**
-194      * 返回指定子元素的索引值。
-195      * @param {View} child 指定要返回索引值的子元素。
-196      */
-197     getChildIndex: function(child){
-198         return this.children.indexOf(child);
-199     },
-200 
-201     /**
-202      * 设置子元素的索引位置。
-203      * @param {View} child 指定要设置的子元素。
-204      * @param {Number} index 指定要设置的索引值。
-205      */
-206     setChildIndex: function(child, index){
-207         var children = this.children,
-208             oldIndex = children.indexOf(child);
-209 
-210         if(oldIndex >= 0 && oldIndex != index){
-211             var len = children.length;
-212             index = index < 0 ? 0 : index >= len ? len - 1 : index;
-213             children.splice(oldIndex, 1);
-214             children.splice(index, 0, child);
-215             this._updateChildren();
-216         }
-217         return this;
-218     },
-219 
-220     /**
-221      * 交换两个子元素的索引位置。
-222      * @param {View} child1 指定要交换的子元素A。
-223      * @param {View} child2 指定要交换的子元素B。
-224      */
-225     swapChildren: function(child1, child2){
-226         var children = this.children,
-227             index1 = this.getChildIndex(child1),
-228             index2 = this.getChildIndex(child2);
-229 
-230         child1.depth = index2;
-231         children[index2] = child1;
-232         child2.depth = index1;
-233         children[index1] = child2;
-234     },
-235 
-236     /**
-237      * 交换两个指定索引位置的子元素。
-238      * @param {Number} index1 指定要交换的索引位置A。
-239      * @param {Number} index2 指定要交换的索引位置B。
-240      */
-241     swapChildrenAt: function(index1, index2){
-242         var children = this.children,
-243             child1 = this.getChildAt(index1),
-244             child2 = this.getChildAt(index2);
-245 
-246         child1.depth = index2;
-247         children[index2] = child1;
-248         child2.depth = index1;
-249         children[index1] = child2;
-250     },
-251 
-252     /**
-253      * 根据指定键值或函数对子元素进行排序。
-254      * @param {Object} keyOrFunction 如果此参数为String时,则根据子元素的某个属性值进行排序;如果此参数为Function时,则根据此函数进行排序。
-255      */
-256     sortChildren: function(keyOrFunction){
-257         var fn = keyOrFunction,
-258             children = this.children;
-259         if(typeof fn == "string"){
-260             var key = fn;
-261             fn = function(a, b){
-262                 return b[key] - a[key];
-263             };
-264         }
-265         children.sort(fn);
-266         this._updateChildren();
-267     },
-268 
-269     /**
-270      * 更新子元素。
-271      * @private
-272      */
-273     _updateChildren: function(start, end){
-274         var children = this.children, child,
-275             start = start || 0,
-276             end = end || children.length;
-277         for(var i = start; i < end; i++){
-278             child = children[i];
-279             child.depth = i + 1;
-280             child.parent = this;
-281         }
-282     },
-283 
-284     /**
-285      * 返回是否包含参数指定的子元素。
-286      * @param {View} child 指定要测试的子元素。
-287      */
-288     contains: function(child){
-289         while(child = child.parent){
-290             if(child === this){
-291                 return true;
-292             }
-293         }
-294         return false;
-295     },
-296 
-297     /**
-298      * 返回由x和y指定的点下的对象。
-299      * @param {Number} x 指定点的x轴坐标。
-300      * @param {Number} y 指定点的y轴坐标。
-301      * @param {Boolean} usePolyCollision 指定是否使用多边形碰撞检测。默认为false。
-302      * @param {Boolean} global 使用此标志表明将查找所有符合的对象,而不仅仅是第一个,即全局匹配。默认为false。
-303      * @param {Boolean} eventMode 使用此标志表明将在事件模式下查找对象。默认为false。
-304      */
-305     getViewAtPoint: function(x, y, usePolyCollision, global, eventMode){
-306         var result = global ? [] : null,
-307             children = this.children, child, obj;
-308 
-309         for(var i = children.length - 1; i >= 0; i--){
-310             child = children[i];
-311             //skip child which is not shown or pointer enabled
-312             if(!child || !child.visible || child.alpha <= 0 || (eventMode && !child.pointerEnabled)) continue;
-313             //find child recursively
-314             if(child.children && child.children.length && !(eventMode && !child.pointerChildren)){
-315                 obj = child.getViewAtPoint(x, y, usePolyCollision, global, eventMode);
-316             }
-317 
-318             if(obj){
-319                 if(!global) return obj;
-320                 else if(obj.length) result = result.concat(obj);
-321             }else if(child.hitTestPoint(x, y, usePolyCollision)){
-322                 if(!global) return child;
-323                 else result.push(child);
-324             }
-325         }
-326 
-327         return global && result.length ? result : null;
-328     },
-329 
-330     /**
-331      * 覆盖渲染方法。
-332      * @private
-333      */
-334     render: function(renderer, delta){
-335         Container.superclass.render.call(this, renderer, delta);
-336 
-337         var children = this.children.slice(0), i, len, child;
-338         for(i = 0, len = children.length; i < len; i++){
-339             child = children[i];
-340             //NOTE: the child could remove or change it's parent
-341             if(child.parent === this) child._render(renderer, delta);
-342         }
-343     }
-344 
-345 });
\ No newline at end of file diff --git a/docs/api/symbols/src/src_view_DOMElement.js.html b/docs/api/symbols/src/src_view_DOMElement.js.html deleted file mode 100644 index 8158635e..00000000 --- a/docs/api/symbols/src/src_view_DOMElement.js.html +++ /dev/null @@ -1,94 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * <iframe src='../../../examples/DOMElement.html?noHeader' width = '330' height = '250' scrolling='no'></iframe>
-  9  * <br/>
- 10  * 使用示例:
- 11  * <pre>
- 12  * var domView = new Hilo.DOMElement({
- 13  *     element: Hilo.createElement('div', {
- 14  *         style: {
- 15  *             backgroundColor: '#004eff',
- 16  *             position: 'absolute'
- 17  *         }
- 18  *     }),
- 19  *     width: 100,
- 20  *     height: 100,
- 21  *     x: 50,
- 22  *     y: 70
- 23  * }).addTo(stage);
- 24  * </pre>
- 25  * @name DOMElement
- 26  * @class DOMElement是dom元素的包装。
- 27  * @augments View
- 28  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。特殊属性有:
- 29  * <ul>
- 30  * <li><b>element</b> - 要包装的dom元素。必需。</li>
- 31  * </ul>
- 32  * @module hilo/view/DOMElement
- 33  * @requires hilo/core/Hilo
- 34  * @requires hilo/core/Class
- 35  * @requires hilo/view/View
- 36  * @requires hilo/view/Drawable
- 37  */
- 38 var DOMElement = Class.create(/** @lends DOMElement.prototype */{
- 39     Extends: View,
- 40     constructor: function(properties){
- 41         properties = properties || {};
- 42         this.id = this.id || properties.id || Hilo.getUid("DOMElement");
- 43         DOMElement.superclass.constructor.call(this, properties);
- 44 
- 45         this.drawable = new Drawable();
- 46         var elem = this.drawable.domElement = properties.element || Hilo.createElement('div');
- 47         elem.id = this.id;
- 48     },
- 49 
- 50     /**
- 51      * 覆盖渲染方法。
- 52      * @private
- 53      */
- 54     _render: function(renderer, delta){
- 55         if(!this.onUpdate || this.onUpdate(delta) !== false){
- 56             renderer.transform(this);
- 57             if(this.visible && this.alpha > 0){
- 58                 this.render(renderer, delta);
- 59             }
- 60         }
- 61     },
- 62 
- 63     /**
- 64      * 覆盖渲染方法。
- 65      * @private
- 66      */
- 67     render: function(renderer, delta){
- 68         var canvas = renderer.canvas;
- 69         if(canvas.getContext){
- 70             var elem = this.drawable.domElement, depth = this.depth,
- 71                 nextElement = canvas.nextSibling, nextDepth;
- 72             if(elem.parentNode) return;
- 73 
- 74             //draw dom element just after stage canvas
- 75             while(nextElement && nextElement.nodeType != 3){
- 76                 nextDepth = parseInt(nextElement.style.zIndex) || 0;
- 77                 if(nextDepth <= 0 || nextDepth > depth){
- 78                     break;
- 79                 }
- 80                 nextElement = nextElement.nextSibling;
- 81             }
- 82             canvas.parentNode.insertBefore(this.drawable.domElement, nextElement);
- 83         }else{
- 84             renderer.draw(this);
- 85         }
- 86     }
- 87 });
\ No newline at end of file diff --git a/docs/api/symbols/src/src_view_Drawable.js.html b/docs/api/symbols/src/src_view_Drawable.js.html deleted file mode 100644 index 1f7033fc..00000000 --- a/docs/api/symbols/src/src_view_Drawable.js.html +++ /dev/null @@ -1,75 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @class Drawable是可绘制图像的包装。
-  9  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。
- 10  * @module hilo/view/Drawable
- 11  * @requires hilo/core/Hilo
- 12  * @requires hilo/core/Class
- 13  * @property {Object} image 要绘制的图像。即可被CanvasRenderingContext2D.drawImage使用的对象类型,可以是HTMLImageElement、HTMLCanvasElement、HTMLVideoElement等对象。
- 14  * @property {array} rect 要绘制的图像的矩形区域。
- 15  */
- 16 var Drawable = Class.create(/** @lends Drawable.prototype */{
- 17     constructor: function(properties){
- 18         this.init(properties);
- 19     },
- 20 
- 21     image: null,
- 22     rect: null,
- 23 
- 24     /**
- 25      * 初始化可绘制对象。
- 26      * @param {Object} properties 要初始化的属性。
- 27      */
- 28     init: function(properties){
- 29         var me = this, oldImage = me.image;
- 30         if(Drawable.isDrawable(properties)){
- 31             me.image = properties;
- 32         }else{
- 33             Hilo.copy(me, properties, true);
- 34         }
- 35 
- 36         var image = me.image;
- 37         if(typeof image === 'string'){
- 38             if(oldImage && image === oldImage.getAttribute('src')){
- 39                 image = me.image = oldImage;
- 40             }else{
- 41                 me.image = null;
- 42                 //load image dynamically
- 43                 var img = new Image();
- 44                 img.onload = function(){
- 45                     img.onload = null;
- 46                     me.init(img);
- 47                 };
- 48                 img.src = image;
- 49                 return;
- 50             }
- 51         }
- 52 
- 53         if(image && !me.rect) me.rect = [0, 0, image.width, image.height];
- 54     },
- 55 
- 56     Statics: /** @lends Drawable */{
- 57         /**
- 58          * 判断参数elem指定的元素是否可包装成Drawable对象。
- 59          * @param {Object} elem 要测试的对象。
- 60          * @return {Boolean} 如果是可包装成Drawable对象则返回true,否则为false。
- 61          */
- 62         isDrawable: function(elem){
- 63             if(!elem || !elem.tagName) return false;
- 64             var tagName = elem.tagName.toLowerCase();
- 65             return tagName === "img" || tagName === "canvas" || tagName === "video";
- 66         }
- 67     }
- 68 });
\ No newline at end of file diff --git a/docs/api/symbols/src/src_view_Graphics.js.html b/docs/api/symbols/src/src_view_Graphics.js.html deleted file mode 100644 index fd0b0d2d..00000000 --- a/docs/api/symbols/src/src_view_Graphics.js.html +++ /dev/null @@ -1,419 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * <iframe src='../../../examples/Graphics.html?noHeader' width = '320' height = '400' scrolling='no'></iframe>
-  9  * <br/>
- 10  * @class Graphics类包含一组创建矢量图形的方法。
- 11  * @augments View
- 12  * @mixes CacheMixin
- 13  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。
- 14  * @module hilo/view/Graphics
- 15  * @requires hilo/core/Hilo
- 16  * @requires hilo/core/Class
- 17  * @requires hilo/view/View
- 18  * @requires hilo/view/CacheMixin
- 19  * @property {Number} lineWidth 笔画的线条宽度。默认为1。只读属性。
- 20  * @property {Number} lineAlpha 笔画的线条透明度。默认为1。只读属性。
- 21  * @property {String} lineCap 笔画的线条端部样式。可选值有:butt、round、square等,默认为null。只读属性。
- 22  * @property {String} lineJoin 笔画的线条连接样式。可选值有:miter、round、bevel等,默认为null。只读属性。
- 23  * @property {Number} miterLimit 斜连线长度和线条宽度的最大比率。此属性仅当lineJoin为miter时有效。默认值为10。只读属性。
- 24  * @property {String} strokeStyle 笔画边框的样式。默认值为'0',即黑色。只读属性。
- 25  * @property {String} fillStyle 内容填充的样式。默认值为'0',即黑色。只读属性。
- 26  * @property {Number} fillAlpha 内容填充的透明度。默认值为0。只读属性。
- 27  */
- 28 var Graphics = (function(){
- 29 
- 30 var canvas = document.createElement('canvas');
- 31 var helpContext = canvas.getContext && canvas.getContext('2d');
- 32 
- 33 return Class.create(/** @lends Graphics.prototype */{
- 34     Extends: View,
- 35     Mixes:CacheMixin,
- 36     constructor: function(properties){
- 37         properties = properties || {};
- 38         this.id = this.id || properties.id || Hilo.getUid('Graphics');
- 39         Graphics.superclass.constructor.call(this, properties);
- 40 
- 41         this._actions = [];
- 42     },
- 43 
- 44     lineWidth: 1,
- 45     lineAlpha: 1,
- 46     lineCap: null, //'butt', 'round', 'square'
- 47     lineJoin: null, //'miter', 'round', 'bevel'
- 48     miterLimit: 10,
- 49     hasStroke: false,
- 50     strokeStyle: '0',
- 51     hasFill: false,
- 52     fillStyle: '0',
- 53     fillAlpha: 0,
- 54 
- 55     /**
- 56      * 指定绘制图形的线条样式。
- 57      * @param {Number} thickness 线条的粗细值。默认为1。
- 58      * @param {String} lineColor 线条的CSS颜色值。默认为黑色,即'0'。
- 59      * @param {Number} lineAlpha 线条的透明度值。默认为不透明,即1。
- 60      * @param {String} lineCap 线条的端部样式。可选值有:butt、round、square等,默认值为null。
- 61      * @param {String} lineJoin 线条的连接样式。可选值有:miter、round、bevel等,默认值为null。
- 62      * @param {Number} miterLimit 斜连线长度和线条宽度的最大比率。此属性仅当lineJoin为miter时有效。默认值为10。
- 63      * @returns {Graphics} Graphics对象本身。
- 64      */
- 65     lineStyle: function(thickness, lineColor, lineAlpha, lineCap, lineJoin, miterLimit){
- 66         var me = this, addAction = me._addAction;
- 67 
- 68         addAction.call(me, ['lineWidth', (me.lineWidth = thickness || 1)]);
- 69         addAction.call(me, ['strokeStyle', (me.strokeStyle = lineColor || '0')]);
- 70         addAction.call(me, ['lineAlpha', (me.lineAlpha = lineAlpha || 1)]);
- 71         if(lineCap != undefined) addAction.call(me, ['lineCap', (me.lineCap = lineCap)]);
- 72         if(lineJoin != undefined) addAction.call(me, ['lineJoin', (me.lineJoin = lineJoin)]);
- 73         if(miterLimit != undefined) addAction.call(me, ['miterLimit', (me.miterLimit = miterLimit)]);
- 74         me.hasStroke = true;
- 75         return me;
- 76     },
- 77 
- 78     /**
- 79      * 指定绘制图形的填充样式和透明度。
- 80      * @param {String} fill 填充样式。可以是color、gradient或pattern。
- 81      * @param {Number} alpha 透明度。
- 82      * @returns {Graphics} Graphics对象本身。
- 83      */
- 84     beginFill: function(fill, alpha){
- 85         var me = this, addAction = me._addAction;
- 86 
- 87         addAction.call(me, ['fillStyle', (me.fillStyle = fill)]);
- 88         addAction.call(me, ['fillAlpha', (me.fillAlpha = alpha || 1)]);
- 89         me.hasFill = true;
- 90         return me;
- 91     },
- 92 
- 93     /**
- 94      * 应用并结束笔画的绘制和图形样式的填充。
- 95      * @returns {Graphics} Graphics对象本身。
- 96      */
- 97     endFill: function(){
- 98         var me = this, addAction = me._addAction;
- 99 
-100         if(me.hasStroke) addAction.call(me, ['stroke']);
-101         if(me.hasFill) addAction.call(me, ['fill']);
-102         me.setCacheDirty(true);
-103         return me;
-104     },
-105 
-106     /**
-107      * 指定绘制图形的线性渐变填充样式。
-108      * @param {Number} x0 渐变的起始点的x轴坐标。
-109      * @param {Number} y0 渐变的起始点的y轴坐标。
-110      * @param {Number} x1 渐变的结束点的x轴坐标。
-111      * @param {Number} y1 渐变的结束点的y轴坐标。
-112      * @param {Array} colors 渐变中使用的CSS颜色值数组。
-113      * @param {Array} ratois 渐变中开始与结束之间的位置数组。需与colors数组里的颜色值一一对应,介于0.0与1.0之间的值。
-114      * @returns {Graphics} Graphics对象本身。
-115      */
-116     beginLinearGradientFill: function(x0, y0, x1, y1, colors, ratios){
-117         var me = this, gradient = helpContext.createLinearGradient(x0, y0, x1, y1);
-118 
-119         for (var i = 0, len = colors.length; i < len; i++){
-120             gradient.addColorStop(ratios[i], colors[i]);
-121         }
-122         me.hasFill = true;
-123         return me._addAction(['fillStyle', (me.fillStyle = gradient)]);
-124     },
-125 
-126     /**
-127      * 指定绘制图形的放射性渐变填充样式。
-128      * @param {Number} x0 渐变的起始圆的x轴坐标。
-129      * @param {Number} y0 渐变的起始圆的y轴坐标。
-130      * @param {Number} r0 渐变的起始圆的半径。
-131      * @param {Number} x1 渐变的结束圆的x轴坐标。
-132      * @param {Number} y1 渐变的结束圆的y轴坐标。
-133      * @param {Number} r1 渐变的结束圆的半径。
-134      * @param {Array} colors 渐变中使用的CSS颜色值数组。
-135      * @param {Array} ratois 渐变中开始与结束之间的位置数组。需与colors数组里的颜色值一一对应,介于0.0与1.0之间的值。
-136      * @returns {Graphics} Graphics对象本身。
-137      */
-138     beginRadialGradientFill: function(x0, y0, r0, x1, y1, r1, colors, ratios){
-139         var me = this, gradient = helpContext.createRadialGradient(x0, y0, r0, x1, y1, r1);
-140         for (var i = 0, len = colors.length; i < len; i++)
-141         {
-142             gradient.addColorStop(ratios[i], colors[i]);
-143         }
-144         me.hasFill = true;
-145         return me._addAction(['fillStyle', (me.fillStyle = gradient)]);
-146     },
-147 
-148     /**
-149      * 开始一个位图填充样式。
-150      * @param {HTMLImageElement} image 指定填充的Image对象。
-151      * @param {String} repetition 指定填充的重复设置参数。它可以是以下任意一个值:repeat, repeat-x, repeat-y, no-repeat。默认为''。
-152      * @returns {Graphics} Graphics对象本身。
-153      */
-154     beginBitmapFill: function(image, repetition){
-155         var me = this, pattern = helpContext.createPattern(image, repetition || '');
-156         me.hasFill = true;
-157         return me._addAction(['fillStyle', (me.fillStyle = pattern)]);
-158     },
-159 
-160     /**
-161      * 开始一个新的路径。
-162      * @returns {Graphics} Graphics对象本身。
-163      */
-164     beginPath: function(){
-165         return this._addAction(['beginPath']);
-166     },
-167 
-168     /**
-169      * 关闭当前的路径。
-170      * @returns {Graphics} Graphics对象本身。
-171      */
-172     closePath: function(){
-173         return this._addAction(['closePath']);
-174     },
-175 
-176     /**
-177      * 将当前绘制位置移动到点(x, y)。
-178      * @param {Number} x x轴坐标。
-179      * @param {Number} y y轴坐标。
-180      * @returns {Graphics} Graphics对象本身。
-181      */
-182     moveTo: function(x, y){
-183         return this._addAction(['moveTo', x, y]);
-184     },
-185 
-186     /**
-187      * 绘制从当前位置开始到点(x, y)结束的直线。
-188      * @param {Number} x x轴坐标。
-189      * @param {Number} y y轴坐标。
-190      * @returns {Graphics} Graphics对象本身。
-191      */
-192     lineTo: function(x, y){
-193         return this._addAction(['lineTo', x, y]);
-194     },
-195 
-196     /**
-197      * 绘制从当前位置开始到点(x, y)结束的二次曲线。
-198      * @param {Number} cpx 控制点cp的x轴坐标。
-199      * @param {Number} cpy 控制点cp的y轴坐标。
-200      * @param {Number} x x轴坐标。
-201      * @param {Number} y y轴坐标。
-202      * @returns {Graphics} Graphics对象本身。
-203      */
-204     quadraticCurveTo: function(cpx, cpy, x, y){
-205         return this._addAction(['quadraticCurveTo', cpx, cpy, x, y]);
-206     },
-207 
-208     /**
-209      * 绘制从当前位置开始到点(x, y)结束的贝塞尔曲线。
-210      * @param {Number} cp1x 控制点cp1的x轴坐标。
-211      * @param {Number} cp1y 控制点cp1的y轴坐标。
-212      * @param {Number} cp2x 控制点cp2的x轴坐标。
-213      * @param {Number} cp2y 控制点cp2的y轴坐标。
-214      * @param {Number} x x轴坐标。
-215      * @param {Number} y y轴坐标。
-216      * @returns {Graphics} Graphics对象本身。
-217      */
-218     bezierCurveTo: function(cp1x, cp1y, cp2x, cp2y, x, y){
-219         return this._addAction(['bezierCurveTo', cp1x, cp1y, cp2x, cp2y, x, y]);
-220     },
-221 
-222     /**
-223      * 绘制一个矩形。
-224      * @param {Number} x x轴坐标。
-225      * @param {Number} y y轴坐标。
-226      * @param {Number} width 矩形的宽度。
-227      * @param {Number} height 矩形的高度。
-228      * @returns {Graphics} Graphics对象本身。
-229      */
-230     drawRect: function(x, y, width, height){
-231         return this._addAction(['rect', x, y, width, height]);
-232     },
-233 
-234     /**
-235      * 绘制一个复杂的圆角矩形。
-236      * @param {Number} x x轴坐标。
-237      * @param {Number} y y轴坐标。
-238      * @param {Number} width 圆角矩形的宽度。
-239      * @param {Number} height 圆角矩形的高度。
-240      * @param {Number} cornerTL 圆角矩形的左上圆角大小。
-241      * @param {Number} cornerTR 圆角矩形的右上圆角大小。
-242      * @param {Number} cornerBR 圆角矩形的右下圆角大小。
-243      * @param {Number} cornerBL 圆角矩形的左下圆角大小。
-244      * @returns {Graphics} Graphics对象本身。
-245      */
-246     drawRoundRectComplex: function(x, y, width, height, cornerTL, cornerTR, cornerBR, cornerBL){
-247         var me = this, addAction = me._addAction;
-248         addAction.call(me, ['moveTo', x + cornerTL, y]);
-249         addAction.call(me, ['lineTo', x + width - cornerTR, y]);
-250         addAction.call(me, ['arc', x + width - cornerTR, y + cornerTR, cornerTR, -Math.PI/2, 0, false]);
-251         addAction.call(me, ['lineTo', x + width, y + height - cornerBR]);
-252         addAction.call(me, ['arc', x + width - cornerBR, y + height - cornerBR, cornerBR, 0, Math.PI/2, false]);
-253         addAction.call(me, ['lineTo', x + cornerBL, y + height]);
-254         addAction.call(me, ['arc', x + cornerBL, y + height - cornerBL, cornerBL, Math.PI/2, Math.PI, false]);
-255         addAction.call(me, ['lineTo', x, y + cornerTL]);
-256         addAction.call(me, ['arc', x + cornerTL, y + cornerTL, cornerTL, Math.PI, Math.PI*3/2, false]);
-257         return me;
-258     },
-259 
-260     /**
-261      * 绘制一个圆角矩形。
-262      * @param {Number} x x轴坐标。
-263      * @param {Number} y y轴坐标。
-264      * @param {Number} width 圆角矩形的宽度。
-265      * @param {Number} height 圆角矩形的高度。
-266      * @param {Number} cornerSize 圆角矩形的圆角大小。
-267      * @returns {Graphics} Graphics对象本身。
-268      */
-269     drawRoundRect: function(x, y, width, height, cornerSize){
-270         return this.drawRoundRectComplex(x, y, width, height, cornerSize, cornerSize, cornerSize, cornerSize);
-271     },
-272 
-273     /**
-274      * 绘制一个圆。
-275      * @param {Number} x x轴坐标。
-276      * @param {Number} y y轴坐标。
-277      * @param {Number} radius 圆的半径。
-278      * @returns {Graphics} Graphics对象本身。
-279      */
-280     drawCircle: function(x, y, radius){
-281         return this._addAction(['arc', x + radius, y + radius, radius, 0, Math.PI * 2, 0]);
-282     },
-283 
-284     /**
-285      * 绘制一个椭圆。
-286      * @param {Number} x x轴坐标。
-287      * @param {Number} y y轴坐标。
-288      * @param {Number} width 椭圆的宽度。
-289      * @param {Number} height 椭圆的高度。
-290      * @returns {Graphics} Graphics对象本身。
-291      */
-292     drawEllipse: function(x, y, width, height){
-293         var me = this;
-294         if(width == height) return me.drawCircle(x, y, width);
-295 
-296         var addAction = me._addAction;
-297         var w = width / 2, h = height / 2, C = 0.5522847498307933, cx = C * w, cy = C * h;
-298         x = x + w;
-299         y = y + h;
-300 
-301         addAction.call(me, ['moveTo', x + w, y]);
-302         addAction.call(me, ['bezierCurveTo', x + w, y - cy, x + cx, y - h, x, y - h]);
-303         addAction.call(me, ['bezierCurveTo', x - cx, y - h, x - w, y - cy, x - w, y]);
-304         addAction.call(me, ['bezierCurveTo', x - w, y + cy, x - cx, y + h, x, y + h]);
-305         addAction.call(me, ['bezierCurveTo', x + cx, y + h, x + w, y + cy, x + w, y]);
-306         return me;
-307     },
-308 
-309     /**
-310      * 根据参数指定的SVG数据绘制一条路径。
-311      * 代码示例:
-312      * <p>var path = 'M250 150 L150 350 L350 350 Z';</p>
-313      * <p>var shape = new Hilo.Graphics({width:500, height:500});</p>
-314      * <p>shape.drawSVGPath(path).beginFill('#0ff').endFill();</p>
-315      * @param {String} pathData 要绘制的SVG路径数据。
-316      * @returns {Graphics} Graphics对象本身。
-317      */
-318     drawSVGPath: function(pathData){
-319         var me = this, addAction = me._addAction,
-320             path = pathData.split(/,| (?=[a-zA-Z])/);
-321 
-322         addAction.call(me, ['beginPath']);
-323         for(var i = 0, len = path.length; i < len; i++){
-324             var str = path[i], cmd = str[0].toUpperCase(), p = str.substring(1).split(/,| /);
-325             if(p[0].length == 0) p.shift();
-326 
-327             switch(cmd){
-328                 case 'M':
-329                     addAction.call(me, ['moveTo', p[0], p[1]]);
-330                     break;
-331                 case 'L':
-332                     addAction.call(me, ['lineTo', p[0], p[1]]);
-333                     break;
-334                 case 'C':
-335                     addAction.call(me, ['bezierCurveTo', p[0], p[1], p[2], p[3], p[4], p[5]]);
-336                     break;
-337                 case 'Z':
-338                     addAction.call(me, ['closePath']);
-339                     break;
-340             }
-341         }
-342         return me;
-343     },
-344 
-345     /**
-346      * 执行全部绘制动作。内部私有方法。
-347      * @private
-348      */
-349     _draw: function(context){
-350         var me = this, actions = me._actions, len = actions.length, i;
-351 
-352         context.beginPath();
-353         for(i = 0; i < len; i++){
-354             var action = actions[i],
-355                 f = action[0],
-356                 args = action.length > 1 ? action.slice(1) : null;
-357 
-358             if(typeof(context[f]) == 'function') context[f].apply(context, args);
-359             else context[f] = action[1];
-360         }
-361     },
-362 
-363     /**
-364      * 重写渲染实现。
-365      * @private
-366      */
-367     render: function(renderer, delta){
-368         var me = this, canvas = renderer.canvas;
-369         if(renderer.renderType === 'canvas'){
-370             me._draw(renderer.context);
-371         }else{
-372             me.cache();
-373             renderer.draw(me);
-374         }
-375     },
-376 
-377     /**
-378      * 清除所有绘制动作并复原所有初始状态。
-379      * @returns {Graphics} Graphics对象本身。
-380      */
-381     clear: function(){
-382         var me = this;
-383 
-384         me._actions.length = 0;
-385         me.lineWidth = 1;
-386         me.lineAlpha = 1;
-387         me.lineCap = null;
-388         me.lineJoin = null;
-389         me.miterLimit = 10;
-390         me.hasStroke = false;
-391         me.strokeStyle = '0';
-392         me.hasFill = false;
-393         me.fillStyle = '0';
-394         me.fillAlpha = 1;
-395 
-396         me.setCacheDirty(true);
-397         return me;
-398     },
-399 
-400     /**
-401      * 添加一个绘制动作。内部私有方法。
-402      * @private
-403      */
-404     _addAction: function(action){
-405         var me = this;
-406         me._actions.push(action);
-407         return me;
-408     }
-409 
-410 });
-411 
-412 })();
\ No newline at end of file diff --git a/docs/api/symbols/src/src_view_Sprite.js.html b/docs/api/symbols/src/src_view_Sprite.js.html deleted file mode 100644 index de69a050..00000000 --- a/docs/api/symbols/src/src_view_Sprite.js.html +++ /dev/null @@ -1,257 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * <iframe src='../../../examples/Sprite.html?noHeader' width = '550' height = '400' scrolling='no'></iframe>
-  9  * <br/>
- 10  * @class 动画精灵类。
- 11  * @augments View
- 12  * @module hilo/view/Sprite
- 13  * @requires hilo/core/Hilo
- 14  * @requires hilo/core/Class
- 15  * @requires hilo/view/View
- 16  * @requires hilo/view/Drawable
- 17  * @param properties 创建对象的属性参数。可包含此类所有可写属性。此外还包括:
- 18  * <ul>
- 19  * <li><b>frames</b> - 精灵动画的帧数据对象。</li>
- 20  * </ul>
- 21  * @property {number} currentFrame 当前播放帧的索引。从0开始。只读属性。
- 22  * @property {boolean} paused 判断精灵是否暂停。默认为false。
- 23  * @property {boolean} loop 判断精灵是否可以循环播放。默认为true。
- 24  * @property {boolean} timeBased 指定精灵动画是否是以时间为基准。默认为false,即以帧为基准。
- 25  * @property {number} interval 精灵动画的帧间隔。如果timeBased为true,则单位为毫秒,否则为帧数。
- 26  */
- 27 var Sprite = Class.create(/** @lends Sprite.prototype */{
- 28     Extends: View,
- 29     constructor: function(properties){
- 30         properties = properties || {};
- 31         this.id = this.id || properties.id || Hilo.getUid("Sprite");
- 32         Sprite.superclass.constructor.call(this, properties);
- 33 
- 34         this._frames = [];
- 35         this._frameNames = {};
- 36         this.drawable = new Drawable();
- 37         if(properties.frames) this.addFrame(properties.frames);
- 38     },
- 39 
- 40     _frames: null, //所有帧的集合
- 41     _frameNames: null, //带名字name的帧的集合
- 42     _frameElapsed: 0, //当前帧持续的时间或帧数
- 43     _firstRender: true, //标记是否是第一次渲染
- 44 
- 45     paused: false,
- 46     loop: true,
- 47     timeBased: false,
- 48     interval: 1,
- 49     currentFrame: 0, //当前帧的索引
- 50 
- 51     /**
- 52      * 返回精灵动画的总帧数。
- 53      * @returns {Uint} 精灵动画的总帧数。
- 54      */
- 55     getNumFrames: function(){
- 56         return this._frames ? this._frames.length : 0;
- 57     },
- 58 
- 59     /**
- 60      * 往精灵动画序列中增加帧。
- 61      * @param {Object} frame 要增加的精灵动画帧数据。
- 62      * @param {Int} startIndex 开始增加帧的索引位置。若不设置,默认为在末尾添加。
- 63      * @returns {Sprite} Sprite对象本身。
- 64      */
- 65     addFrame: function(frame, startIndex){
- 66         var start = startIndex != null ? startIndex : this._frames.length;
- 67         if(frame instanceof Array){
- 68             for(var i = 0, len = frame.length; i < len; i++){
- 69                 this.setFrame(frame[i], start + i);
- 70             }
- 71         }else{
- 72             this.setFrame(frame, start);
- 73         }
- 74         return this;
- 75     },
- 76 
- 77     /**
- 78      * 设置精灵动画序列指定索引位置的帧。
- 79      * @param {Object} frame 要设置的精灵动画帧数据。
- 80      * @param {Int} index 要设置的索引位置。
- 81      * @returns {Sprite} Sprite对象本身。
- 82      */
- 83     setFrame: function(frame, index){
- 84         var frames = this._frames,
- 85             total = frames.length;
- 86         index = index < 0 ? 0 : index > total ? total : index;
- 87         frames[index] = frame;
- 88         if(frame.name) this._frameNames[frame.name] = frame;
- 89         if(index == 0 && !this.width || !this.height){
- 90             this.width = frame.rect[2];
- 91             this.height = frame.rect[3];
- 92         }
- 93         return this;
- 94     },
- 95 
- 96     /**
- 97      * 获取精灵动画序列中指定的帧。
- 98      * @param {Object} indexOrName 要获取的帧的索引位置或别名。
- 99      * @returns {Object} 精灵帧对象。
-100      */
-101     getFrame: function(indexOrName){
-102         if(typeof indexOrName === 'number'){
-103             var frames = this._frames;
-104             if(indexOrName < 0 || indexOrName >= frames.length) return null;
-105             return frames[indexOrName];
-106         }
-107         return this._frameNames[indexOrName];
-108     },
-109 
-110     /**
-111      * 获取精灵动画序列中指定帧的索引位置。
-112      * @param {Object} frameValue 要获取的帧的索引位置或别名。
-113      * @returns {Object} 精灵帧对象。
-114      */
-115     getFrameIndex: function(frameValue){
-116         var frames = this._frames,
-117             total = frames.length,
-118             index = -1;
-119         if(typeof frameValue === 'number'){
-120             index = frameValue;
-121         }else{
-122             var frame = typeof frameValue === 'string' ? this._frameNames[frameValue] : frameValue;
-123             if(frame){
-124                 for(var i = 0; i < total; i++){
-125                     if(frame === frames[i]){
-126                         index = i;
-127                         break;
-128                     }
-129                 }
-130             }
-131         }
-132         return index;
-133     },
-134 
-135     /**
-136      * 播放精灵动画。
-137      * @returns {Sprite} Sprite对象本身。
-138      */
-139     play: function(){
-140         this.paused = false;
-141         return this;
-142     },
-143 
-144     /**
-145      * 暂停播放精灵动画。
-146      * @returns {Sprite} Sprite对象本身。
-147      */
-148     stop: function(){
-149         this.paused = true;
-150         return this;
-151     },
-152 
-153     /**
-154      * 跳转精灵动画到指定的帧。
-155      * @param {Object} indexOrName 要跳转的帧的索引位置或别名。
-156      * @param {Boolean} pause 指示跳转后是否暂停播放。
-157      * @returns {Sprite} Sprite对象本身。
-158      */
-159     goto: function(indexOrName, pause){
-160         var total = this._frames.length,
-161             index = this.getFrameIndex(indexOrName);
-162 
-163         this.currentFrame = index < 0 ? 0 : index >= total ? total - 1 : index;
-164         this.paused = pause;
-165         this._firstRender = true;
-166         return this;
-167     },
-168 
-169     /**
-170      * 渲染方法。
-171      * @private
-172      */
-173     _render: function(renderer, delta){
-174         var lastFrameIndex = this.currentFrame, frameIndex;
-175 
-176         if(this._firstRender){
-177             frameIndex = lastFrameIndex;
-178             this._firstRender = false;
-179         }else{
-180             frameIndex = this._nextFrame(delta);
-181         }
-182 
-183         if(frameIndex != lastFrameIndex){
-184             this.currentFrame = frameIndex;
-185             var callback = this._frames[frameIndex].callback;
-186             callback && callback.call(this);
-187         }
-188 
-189         //NOTE: it will be deprecated, don't use it.
-190         if(this.onEnterFrame) this.onEnterFrame(frameIndex);
-191 
-192         this.drawable.init(this._frames[frameIndex]);
-193         Sprite.superclass._render.call(this, renderer, delta);
-194     },
-195 
-196     /**
-197      * @private
-198      */
-199     _nextFrame: function(delta){
-200         var frames = this._frames,
-201             total = frames.length,
-202             frameIndex = this.currentFrame,
-203             frame = frames[frameIndex],
-204             duration = frame.duration || this.interval,
-205             elapsed = this._frameElapsed;
-206 
-207         //calculate the current frame elapsed frames/time
-208         var value = (frameIndex == 0 && !this.drawable) ? 0 : elapsed + (this.timeBased ? delta : 1);
-209         elapsed = this._frameElapsed = value < duration ? value : 0;
-210 
-211         if(frame.stop || !this.loop && frameIndex >= total - 1){
-212             this.stop();
-213         }
-214 
-215         if(!this.paused && elapsed == 0){
-216             if(frame.next != null){
-217                 //jump to the specified frame
-218                 frameIndex = this.getFrameIndex(frame.next);
-219             }else if(frameIndex >= total - 1){
-220                 //at the end of the frames, go back to first frame
-221                 frameIndex = 0;
-222             }else if(this.drawable){
-223                 //normal go forward to next frame
-224                 frameIndex++;
-225             }
-226         }
-227 
-228         return frameIndex;
-229     },
-230 
-231     /**
-232      * 设置指定帧的回调函数。即每当播放头进入指定帧时调用callback函数。若callback为空,则会删除回调函数。
-233      * @param {Int|String} frame 要指定的帧的索引位置或别名。
-234      * @param {Function} callback 指定回调函数。
-235      * @returns {Sprite} 精灵本身。
-236      */
-237     setFrameCallback: function(frame, callback){
-238         frame = this.getFrame(frame);
-239         if(frame) frame.callback = callback;
-240         return this;
-241     },
-242 
-243     /**
-244      * 精灵动画的播放头进入新帧时的回调方法。默认值为null。此方法已废弃,请使用addFrameCallback方法。
-245      * @type Function
-246      * @deprecated
-247      */
-248     onEnterFrame: null
-249 
-250 });
\ No newline at end of file diff --git a/docs/api/symbols/src/src_view_Stage.js.html b/docs/api/symbols/src/src_view_Stage.js.html deleted file mode 100644 index 0c9152a1..00000000 --- a/docs/api/symbols/src/src_view_Stage.js.html +++ /dev/null @@ -1,255 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * 示例:
-  9  * <pre>
- 10  * var stage = new Hilo.Stage({
- 11  *     renderType:'canvas',
- 12  *     container: containerElement,
- 13  *     width: 320,
- 14  *     height: 480
- 15  * });
- 16  * </pre>
- 17  * @class 舞台是可视对象树的根,可视对象只有添加到舞台或其子对象后才会被渲染出来。创建一个hilo应用一般都是从创建一个stage开始的。
- 18  * @augments Container
- 19  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。主要有:
- 20  * <ul>
- 21  * <li><b>container</b>:String|HTMLElement - 指定舞台在页面中的父容器元素。它是一个dom容器或id。若不传入此参数且canvas未被加入到dom树,则需要在舞台创建后手动把舞台画布加入到dom树中,否则舞台不会被渲染。可选。</li>
- 22  * <li><b>renderType</b>:String - 指定渲染方式,canvas|dom|webgl,默认canvas。可选。</li>
- 23  * <li><b>canvas</b>:String|HTMLCanvasElement|HTMLElement - 指定舞台所对应的画布元素。它是一个canvas或普通的div,也可以传入元素的id。若为canvas,则使用canvas来渲染所有对象,否则使用dom+css来渲染。可选。</li>
- 24  * <li><b>width</b>:Number</li> - 指定舞台的宽度。默认为canvas的宽度。可选。
- 25  * <li><b>height</b>:Number</li> - 指定舞台的高度。默认为canvas的高度。可选。
- 26  * <li><b>paused</b>:Boolean</li> - 指定舞台是否停止渲染。默认为false。可选。
- 27  * </ul>
- 28  * @module hilo/view/Stage
- 29  * @requires hilo/core/Hilo
- 30  * @requires hilo/core/Class
- 31  * @requires hilo/view/Container
- 32  * @requires hilo/renderer/CanvasRenderer
- 33  * @requires hilo/renderer/DOMRenderer
- 34  * @requires hilo/renderer/WebGLRenderer
- 35  * @property {HTMLCanvasElement|HTMLElement} canvas 舞台所对应的画布。它可以是一个canvas或一个普通的div。只读属性。
- 36  * @property {Renderer} renderer 舞台渲染器。只读属性。
- 37  * @property {Boolean} paused 指示舞台是否暂停刷新渲染。
- 38  * @property {Object} viewport 舞台内容在页面中的渲染区域。包含的属性有:left、top、width、height。只读属性。
- 39  */
- 40 var Stage = Class.create(/** @lends Stage.prototype */{
- 41     Extends: Container,
- 42     constructor: function(properties){
- 43         properties = properties || {};
- 44         this.id = this.id || properties.id || Hilo.getUid('Stage');
- 45         Stage.superclass.constructor.call(this, properties);
- 46 
- 47         this._initRenderer(properties);
- 48 
- 49         //init size
- 50         var width = this.width, height = this.height,
- 51             viewport = this.updateViewport();
- 52         if(!properties.width) width = (viewport && viewport.width) || 320;
- 53         if(!properties.height) height = (viewport && viewport.height) || 480;
- 54         this.resize(width, height, true);
- 55     },
- 56 
- 57     canvas: null,
- 58     renderer: null,
- 59     paused: false,
- 60     viewport: null,
- 61 
- 62     /**
- 63      * @private
- 64      */
- 65     _initRenderer: function(properties){
- 66         var canvas = properties.canvas;
- 67         var container = properties.container;
- 68         var renderType = properties.renderType||'canvas';
- 69 
- 70         if(typeof canvas === 'string') canvas = Hilo.getElement(canvas);
- 71         if(typeof container === 'string') container = Hilo.getElement(container);
- 72 
- 73         if(!canvas){
- 74             var canvasTagName = renderType === 'dom'?'div':'canvas';
- 75             canvas = Hilo.createElement(canvasTagName, {
- 76                 style: {
- 77                     position: 'absolute'
- 78                 }
- 79             });
- 80         }
- 81         else if(!canvas.getContext){
- 82             renderType = 'dom';
- 83         }
- 84 
- 85         this.canvas = canvas;
- 86         if(container) container.appendChild(canvas);
- 87 
- 88         var props = {canvas:canvas, stage:this};
- 89         switch(renderType){
- 90             case 'dom':
- 91                 this.renderer = new DOMRenderer(props);
- 92                 break;
- 93             case 'webgl':
- 94                 if(WebGLRenderer.isSupport()){
- 95                     this.renderer = new WebGLRenderer(props);
- 96                 }
- 97                 else{
- 98                     this.renderer = new CanvasRenderer(props);
- 99                 }
-100                 break;
-101             case 'canvas':
-102             default:
-103                 this.renderer = new CanvasRenderer(props);
-104                 break;
-105         }
-106     },
-107 
-108     /**
-109      * 添加舞台画布到DOM容器中。注意:此方法覆盖了View.addTo方法。
-110      * @param {HTMLElement} domElement 一个dom元素。
-111      * @returns {Stage} 舞台本身,可用于链式调用。
-112      */
-113     addTo: function(domElement){
-114         var canvas = this.canvas;
-115         if(canvas.parentNode !== domElement){
-116             domElement.appendChild(canvas);
-117         }
-118         return this;
-119     },
-120 
-121     /**
-122      * 调用tick会触发舞台的更新和渲染。开发者一般无需使用此方法。
-123      * @param {Number} delta 调度器当前调度与上次调度tick之间的时间差。
-124      */
-125     tick: function(delta){
-126         if(!this.paused){
-127             this._render(this.renderer, delta);
-128         }
-129     },
-130 
-131     /**
-132      * 开启/关闭舞台的DOM事件响应。要让舞台上的可视对象响应用户交互,必须先使用此方法开启舞台的相应事件的响应。
-133      * @param {String|Array} type 要开启/关闭的事件名称或数组。
-134      * @param {Boolean} enabled 指定开启还是关闭。如果不传此参数,则默认为开启。
-135      * @returns {Stage} 舞台本身。链式调用支持。
-136      */
-137     enableDOMEvent: function(type, enabled){
-138         var me = this,
-139             canvas = me.canvas,
-140             types = typeof type === 'string' ? [type] : type,
-141             enabled = enabled !== false,
-142             handler = me._domListener || (me._domListener = function(e){me._onDOMEvent(e)});
-143 
-144         for(var i = 0; i < types.length; i++){
-145             var type = types[i];
-146 
-147             if(enabled){
-148                 canvas.addEventListener(type, handler, false);
-149             }else{
-150                 canvas.removeEventListener(type, handler);
-151             }
-152         }
-153 
-154         return me;
-155     },
-156 
-157     /**
-158      * DOM事件处理函数。此方法会把事件调度到事件的坐标点所对应的可视对象。
-159      * @private
-160      */
-161     _onDOMEvent: function(e){
-162         var type = e.type, event = e, isTouch = type.indexOf('touch') == 0;
-163 
-164         //calculate stageX/stageY
-165         var posObj = e;
-166         if(isTouch){
-167             var touches = e.touches, changedTouches = e.changedTouches;
-168             posObj = (touches && touches.length) ? touches[0] :
-169                      (changedTouches && changedTouches.length) ? changedTouches[0] : null;
-170         }
-171 
-172         var x = posObj.pageX || posObj.clientX, y = posObj.pageY || posObj.clientY,
-173             viewport = this.viewport || this.updateViewport();
-174 
-175         event.stageX = x = (x - viewport.left) / this.scaleX;
-176         event.stageY = y = (y - viewport.top) / this.scaleY;
-177 
-178         //鼠标事件需要阻止冒泡方法
-179         event.stopPropagation = function(){
-180             this._stopPropagationed = true;
-181         };
-182 
-183         var obj = this.getViewAtPoint(x, y, true, false, true)||this,
-184             canvas = this.canvas, target = this._eventTarget;
-185 
-186         //fire mouseout/touchout event for last event target
-187         var leave = type === 'mouseout';
-188         //当obj和target不同 且obj不是target的子元素时才触发out事件
-189         if(target && (target != obj && (!target.contains || !target.contains(obj))|| leave)){
-190             var out = (type === 'touchmove') ? 'touchout' :
-191                       (type === 'mousemove' || leave || !obj) ? 'mouseout' : null;
-192             if(out) {
-193                 var outEvent = Hilo.copy({}, event);
-194                 outEvent.type = out;
-195                 outEvent.eventTarget = target;
-196                 target._fireMouseEvent(outEvent);
-197             }
-198             event.lastEventTarget = target;
-199             this._eventTarget = null;
-200         }
-201 
-202         //fire event for current view
-203         if(obj && obj.pointerEnabled && type !== 'mouseout'){
-204             event.eventTarget = this._eventTarget = obj;
-205             obj._fireMouseEvent(event);
-206         }
-207 
-208         //set cursor for current view
-209         if(!isTouch){
-210             var cursor = (obj && obj.pointerEnabled && obj.useHandCursor) ? 'pointer' : '';
-211             canvas.style.cursor = cursor;
-212         }
-213 
-214         //fix android: `touchmove` fires only once
-215         if(Hilo.browser.android && type === 'touchmove'){
-216             e.preventDefault();
-217         }
-218     },
-219 
-220     /**
-221      * 更新舞台在页面中的可视区域,即渲染区域。当舞台canvas的样式border、margin、padding等属性更改后,需要调用此方法更新舞台渲染区域。
-222      * @returns {Object} 舞台的可视区域。即viewport属性。
-223      */
-224     updateViewport: function(){
-225         var canvas = this.canvas, viewport = null;
-226         if(canvas.parentNode){
-227             viewport = this.viewport = Hilo.getElementRect(canvas);
-228         }
-229         return viewport;
-230     },
-231 
-232     /**
-233      * 改变舞台的大小。
-234      * @param {Number} width 指定舞台新的宽度。
-235      * @param {Number} height 指定舞台新的高度。
-236      * @param {Boolean} forceResize 指定是否强制改变舞台大小,即不管舞台大小是否相同,仍然强制执行改变动作,可确保舞台、画布以及视窗之间的尺寸同步。
-237      */
-238     resize: function(width, height, forceResize){
-239         if(forceResize || this.width !== width || this.height !== height){
-240             this.width = width;
-241             this.height = height;
-242             this.renderer.resize(width, height);
-243             this.updateViewport();
-244         }
-245     }
-246 
-247 });
-248 
\ No newline at end of file diff --git a/docs/api/symbols/src/src_view_Text.js.html b/docs/api/symbols/src/src_view_Text.js.html deleted file mode 100644 index f9f4d666..00000000 --- a/docs/api/symbols/src/src_view_Text.js.html +++ /dev/null @@ -1,237 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * <iframe src='../../../examples/Text.html?noHeader' width = '320' height = '240' scrolling='no'></iframe>
-  9  * <br/>
- 10  * @class Text类提供简单的文字显示功能。复杂的文本功能可以使用DOMElement。
- 11  * @augments View
- 12  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。
- 13  * @module hilo/view/Text
- 14  * @requires hilo/core/Class
- 15  * @requires hilo/core/Hilo
- 16  * @requires hilo/view/View
- 17  * @requires hilo/view/CacheMixin
- 18  * @property {String} text 指定要显示的文本内容。
- 19  * @property {String} color 指定使用的字体颜色。
- 20  * @property {String} textAlign 指定文本的对齐方式。可以是以下任意一个值:'start', 'end', 'left', 'right', and 'center'。
- 21  * @property {String} textVAlign 指定文本的垂直对齐方式。可以是以下任意一个值:'top', 'middle', 'bottom'。
- 22  * @property {Boolean} outline 指定文本是绘制边框还是填充。
- 23  * @property {Number} lineSpacing 指定文本的行距。单位为像素。默认值为0。
- 24  * @property {Number} maxWidth 指定文本的最大宽度。默认值为200。
- 25  * @property {String} font 文本的字体CSS样式。只读属性。设置字体样式请用setFont方法。
- 26  * @property {Number} textWidth 指示文本内容的宽度,只读属性。仅在canvas模式下有效。
- 27  * @property {Number} textHeight 指示文本内容的高度,只读属性。仅在canvas模式下有效。
- 28  */
- 29 var Text = Class.create(/** @lends Text.prototype */{
- 30     Extends: View,
- 31     Mixes:CacheMixin,
- 32     constructor: function(properties){
- 33         properties = properties || {};
- 34         this.id = this.id || properties.id || Hilo.getUid('Text');
- 35         Text.superclass.constructor.call(this, properties);
- 36 
- 37         // if(!properties.width) this.width = 200; //default width
- 38         if(!properties.font) this.font = '12px arial'; //default font style
- 39         this._fontHeight = Text.measureFontHeight(this.font);
- 40     },
- 41 
- 42     text: null,
- 43     color: '#000',
- 44     textAlign: null,
- 45     textVAlign: null,
- 46     outline: false,
- 47     lineSpacing: 0,
- 48     maxWidth: 200,
- 49     font: null, //ready-only
- 50     textWidth: 0, //read-only
- 51     textHeight: 0, //read-only
- 52 
- 53     /**
- 54      * 设置文本的字体CSS样式。
- 55      * @param {String} font 要设置的字体CSS样式。
- 56      * @returns {Text} Text对象本身。链式调用支持。
- 57      */
- 58     setFont: function(font){
- 59         var me = this;
- 60         if(me.font !== font){
- 61             me.font = font;
- 62             me._fontHeight = Text.measureFontHeight(font);
- 63         }
- 64 
- 65         return me;
- 66     },
- 67 
- 68     /**
- 69      * 覆盖渲染方法。
- 70      * @private
- 71      */
- 72     render: function(renderer, delta){
- 73         var me = this, canvas = renderer.canvas;
- 74 
- 75         if(renderer.renderType === 'canvas'){
- 76             me._draw(renderer.context);
- 77         }
- 78         else if(renderer.renderType === 'dom'){
- 79             var drawable = me.drawable;
- 80             var domElement = drawable.domElement;
- 81             var style = domElement.style;
- 82 
- 83             style.font = me.font;
- 84             style.textAlign = me.textAlign;
- 85             style.color = me.color;
- 86             style.width = me.width + 'px';
- 87             style.height = me.height + 'px';
- 88             style.lineHeight = (me._fontHeight + me.lineSpacing) + 'px';
- 89 
- 90             domElement.innerHTML = me.text;
- 91             renderer.draw(this);
- 92         }
- 93         else{
- 94             //TODO:自动更新cache
- 95             me.cache();
- 96             renderer.draw(me);
- 97         }
- 98     },
- 99 
-100     /**
-101      * 在指定的渲染上下文上绘制文本。
-102      * @private
-103      */
-104     _draw: function(context){
-105         var me = this, text = me.text.toString();
-106         if(!text) return;
-107 
-108         //set drawing style
-109         context.font = me.font;
-110         context.textAlign = me.textAlign;
-111         context.textBaseline = 'top';
-112 
-113         //find and draw all explicit lines
-114         var lines = text.split(/\r\n|\r|\n|<br(?:[ \/])*>/);
-115         var width = 0, height = 0;
-116         var lineHeight = me._fontHeight + me.lineSpacing;
-117         var i, line, w;
-118         var drawLines = [];
-119 
-120         for(i = 0, len = lines.length; i < len; i++){
-121             line = lines[i];
-122             w = context.measureText(line).width;
-123 
-124             //check if the line need to split
-125             if(w <= me.maxWidth){
-126                 drawLines.push({text:line, y:height});
-127                 // me._drawTextLine(context, line, height);
-128                 if(width < w) width = w;
-129                 height += lineHeight;
-130                 continue;
-131             }
-132 
-133             var str = '', oldWidth = 0, newWidth, j, word;
-134 
-135             for(j = 0, wlen = line.length; j < wlen; j++){
-136                 word = line[j];
-137                 newWidth = context.measureText(str + word).width;
-138 
-139                 if(newWidth > me.maxWidth){
-140                     drawLines.push({text:str, y:height});
-141                     // me._drawTextLine(context, str, height);
-142                     if(width < oldWidth) width = oldWidth;
-143                     height += lineHeight;
-144                     str = word;
-145                 }else{
-146                     oldWidth = newWidth;
-147                     str += word;
-148                 }
-149 
-150                 if(j == wlen - 1){
-151                     drawLines.push({text:str, y:height});
-152                     // me._drawTextLine(context, str, height);
-153                     if(str !== word && width < newWidth) width = newWidth;
-154                     height += lineHeight;
-155                 }
-156             }
-157         }
-158 
-159         me.textWidth = width;
-160         me.textHeight = height;
-161         if(!me.width) me.width = width;
-162         if(!me.height) me.height = height;
-163 
-164         //vertical alignment
-165         var startY = 0;
-166         switch(me.textVAlign){
-167             case 'middle':
-168                 startY = me.height - me.textHeight >> 1;
-169                 break;
-170             case 'bottom':
-171                 startY = me.height - me.textHeight;
-172                 break;
-173         }
-174 
-175         //draw background
-176         var bg = me.background;
-177         if(bg){
-178             context.fillStyle = bg;
-179             context.fillRect(0, 0, me.width, me.height);
-180         }
-181 
-182         if(me.outline) context.strokeStyle = me.color;
-183         else context.fillStyle = me.color;
-184 
-185         //draw text lines
-186         for(var i = 0; i < drawLines.length; i++){
-187             var line = drawLines[i];
-188             me._drawTextLine(context, line.text, startY + line.y);
-189         }
-190     },
-191 
-192     /**
-193      * 在指定的渲染上下文上绘制一行文本。
-194      * @private
-195      */
-196     _drawTextLine: function(context, text, y){
-197         var me = this, x = 0, width = me.width;
-198 
-199         switch(me.textAlign){
-200             case 'center':
-201                 x = width >> 1;
-202                 break;
-203             case 'right':
-204             case 'end':
-205                 x = width;
-206                 break;
-207         };
-208 
-209         if(me.outline) context.strokeText(text, x, y);
-210         else context.fillText(text, x, y);
-211     },
-212 
-213     Statics: /** @lends Text */{
-214         /**
-215          * 测算指定字体样式的行高。
-216          * @param {String} font 指定要测算的字体样式。
-217          * @return {Number} 返回指定字体的行高。
-218          */
-219         measureFontHeight: function(font){
-220             var docElement = document.documentElement, fontHeight;
-221             var elem = Hilo.createElement('div', {style:{font:font, position:'absolute'}, innerHTML:'M'});
-222 
-223             docElement.appendChild(elem);
-224             fontHeight = elem.offsetHeight;
-225             docElement.removeChild(elem);
-226             return fontHeight;
-227         }
-228     }
-229 
-230 });
\ No newline at end of file diff --git a/docs/api/symbols/src/src_view_View.js.html b/docs/api/symbols/src/src_view_View.js.html deleted file mode 100644 index 03e7b61a..00000000 --- a/docs/api/symbols/src/src_view_View.js.html +++ /dev/null @@ -1,399 +0,0 @@ -
  1 /**
-  2  * Hilo
-  3  * Copyright 2015 alibaba.com
-  4  * Licensed under the MIT License
-  5  */
-  6 
-  7 /**
-  8  * @class View类是所有可视对象或组件的基类。
-  9  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。
- 10  * @module hilo/view/View
- 11  * @requires hilo/core/Hilo
- 12  * @requires hilo/core/Class
- 13  * @requires hilo/event/EventMixin
- 14  * @requires hilo/geom/Matrix
- 15  * @property {String} id 可视对象的唯一标识符。
- 16  * @property {Number} x 可视对象的x轴坐标。默认值为0。
- 17  * @property {Number} y 可视对象的y轴坐标。默认值为0。
- 18  * @property {Number} width 可视对象的宽度。默认值为0。
- 19  * @property {Number} height 可视对象的高度。默认值为0。
- 20  * @property {Number} alpha 可视对象的透明度。默认值为1。
- 21  * @property {Number} rotation 可视对象的旋转角度。默认值为0。
- 22  * @property {Boolean} visible 可视对象是否可见。默认为可见,即true。
- 23  * @property {Number} pivotX 可视对象的中心点的x轴坐标。默认值为0。
- 24  * @property {Number} pivotY 可视对象的中心点的y轴坐标。默认值为0。
- 25  * @property {Number} scaleX 可视对象在x轴上的缩放比例。默认为不缩放,即1。
- 26  * @property {Number} scaleY 可视对象在y轴上的缩放比例。默认为不缩放,即1。
- 27  * @property {Boolean} pointerEnabled 可视对象是否接受交互事件。默认为接受交互事件,即true。
- 28  * @property {Object} background 可视对象的背景样式。可以是CSS颜色值、canvas的gradient或pattern填充。
- 29  * @property {Graphics} mask 可视对象的遮罩图形。
- 30  * @property {String|Function} align 可视对象相对于父容器的对齐方式。取值可查看Hilo.align枚举对象。
- 31  * @property {Container} parent 可视对象的父容器。只读属性。
- 32  * @property {Number} depth 可视对象的深度,也即z轴的序号。只读属性。
- 33  * @property {Drawable} drawable 可视对象的可绘制对象。供高级开发使用。
- 34  * @property {Array} boundsArea 可视对象的区域顶点数组。格式为:[{x:10, y:10}, {x:20, y:20}]。
- 35  */
- 36 var View = (function(){
- 37 
- 38 return Class.create(/** @lends View.prototype */{
- 39     Mixes: EventMixin,
- 40     constructor: function(properties){
- 41         properties = properties || {};
- 42         this.id = this.id || properties.id || Hilo.getUid("View");
- 43         Hilo.copy(this, properties, true);
- 44     },
- 45 
- 46     id: null,
- 47     x: 0,
- 48     y: 0,
- 49     width: 0,
- 50     height: 0,
- 51     alpha: 1,
- 52     rotation: 0,
- 53     visible: true,
- 54     pivotX: 0,
- 55     pivotY: 0,
- 56     scaleX: 1,
- 57     scaleY: 1,
- 58     pointerEnabled: true,
- 59     background: null,
- 60     mask: null,
- 61     align: null,
- 62     drawable: null,
- 63     boundsArea: null,
- 64     parent: null,
- 65     depth: -1,
- 66 
- 67     /**
- 68      * 返回可视对象的舞台引用。若对象没有被添加到舞台,则返回null。
- 69      * @returns {Stage} 可视对象的舞台引用。
- 70      */
- 71     getStage: function(){
- 72         var obj = this, parent;
- 73         while(parent = obj.parent) obj = parent;
- 74         //NOTE: don't use `instanceof` to prevent circular module requirement.
- 75         //But it's not a very reliable way to check it's a stage instance.
- 76         if(obj.canvas) return obj;
- 77         return null;
- 78     },
- 79 
- 80     /**
- 81      * 返回可视对象缩放后的宽度。
- 82      * @returns {Number} 可视对象缩放后的宽度。
- 83      */
- 84     getScaledWidth: function(){
- 85         return this.width * this.scaleX;
- 86     },
- 87 
- 88     /**
- 89      * 返回可视对象缩放后的高度。
- 90      * @returns {Number} 可视对象缩放后的高度。
- 91      */
- 92     getScaledHeight: function(){
- 93         return this.height * this.scaleY;
- 94     },
- 95 
- 96     /**
- 97      * 添加此对象到父容器。
- 98      * @param {Container} container 一个容器。
- 99      * @param {Uint} index 要添加到索引位置。
-100      * @returns {View} 可视对象本身。
-101      */
-102     addTo: function(container, index){
-103         if(typeof index === 'number') container.addChildAt(this, index);
-104         else container.addChild(this);
-105         return this;
-106     },
-107 
-108     /**
-109      * 从父容器里删除此对象。
-110      * @returns {View} 可视对象本身。
-111      */
-112     removeFromParent: function(){
-113         var parent = this.parent;
-114         if(parent) parent.removeChild(this);
-115         return this;
-116     },
-117 
-118     /**
-119      * 获取可视对象在舞台全局坐标系内的外接矩形以及所有顶点坐标。
-120      * @returns {Array} 可视对象的顶点坐标数组vertexs。另vertexs还包含属性:
-121      * <ul>
-122      * <li><b>x</b> - 可视对象的外接矩形x轴坐标。</li>
-123      * <li><b>y</b> - 可视对象的外接矩形y轴坐标。</li>
-124      * <li><b>width</b> - 可视对象的外接矩形的宽度。</li>
-125      * <li><b>height</b> - 可视对象的外接矩形的高度。</li>
-126      * </ul>
-127      */
-128     getBounds: function(){
-129         var w = this.width, h = this.height,
-130             mtx = this.getConcatenatedMatrix(),
-131             poly = this.boundsArea || [{x:0, y:0}, {x:w, y:0}, {x:w, y:h}, {x:0, y:h}],
-132             vertexs = [], point, x, y, minX, maxX, minY, maxY;
-133 
-134         for(var i = 0, len = poly.length; i < len; i++){
-135             point = mtx.transformPoint(poly[i], true, true);
-136             x = point.x;
-137             y = point.y;
-138 
-139             if(i == 0){
-140                 minX = maxX = x;
-141                 minY = maxY = y;
-142             }else{
-143                 if(minX > x) minX = x;
-144                 else if(maxX < x) maxX = x;
-145                 if(minY > y) minY = y;
-146                 else if(maxY < y) maxY = y;
-147             }
-148             vertexs[i] = point;
-149         }
-150 
-151         vertexs.x = minX;
-152         vertexs.y = minY;
-153         vertexs.width = maxX - minX;
-154         vertexs.height = maxY - minY;
-155         return vertexs;
-156     },
-157 
-158     /**
-159      * 获取可视对象相对于其某个祖先(默认为最上层容器)的连接矩阵。
-160      * @param {View} ancestor 可视对象的相对的祖先容器。
-161      * @private
-162      */
-163     getConcatenatedMatrix: function(ancestor){
-164         var mtx = new Matrix(1, 0, 0, 1, 0, 0);
-165 
-166         for(var o = this; o != ancestor && o.parent; o = o.parent){
-167             var cos = 1, sin = 0,
-168                 rotation = o.rotation % 360,
-169                 pivotX = o.pivotX, pivotY = o.pivotY,
-170                 scaleX = o.scaleX, scaleY = o.scaleY;
-171 
-172             if(rotation){
-173                 var r = rotation * Math.PI / 180;
-174                 cos = Math.cos(r);
-175                 sin = Math.sin(r);
-176             }
-177 
-178             if(pivotX != 0) mtx.tx -= pivotX;
-179             if(pivotY != 0) mtx.ty -= pivotY;
-180             mtx.concat(cos*scaleX, sin*scaleX, -sin*scaleY, cos*scaleY, o.x, o.y);
-181         }
-182         return mtx;
-183     },
-184 
-185     /**
-186      * 检测由x和y参数指定的点是否在其外接矩形之内。
-187      * @param {Number} x 要检测的点的x轴坐标。
-188      * @param {Number} y 要检测的点的y轴坐标。
-189      * @param {Boolean} usePolyCollision 是否使用多边形碰撞检测。默认为false。
-190      * @returns {Boolean} 点是否在可视对象之内。
-191      */
-192     hitTestPoint: function(x, y, usePolyCollision){
-193         var bound = this.getBounds(),
-194             hit = x >= bound.x && x <= bound.x + bound.width &&
-195                   y >= bound.y && y <= bound.y + bound.height;
-196 
-197         if(hit && usePolyCollision){
-198             hit = pointInPolygon(x, y, bound);
-199         }
-200         return hit;
-201     },
-202 
-203     /**
-204      * 检测object参数指定的对象是否与其相交。
-205      * @param {View} object 要检测的可视对象。
-206      * @param {Boolean} usePolyCollision 是否使用多边形碰撞检测。默认为false。
-207      */
-208     hitTestObject: function(object, usePolyCollision){
-209         var b1 = this.getBounds(),
-210             b2 = object.getBounds(),
-211             hit = b1.x <= b2.x + b2.width && b2.x <= b1.x + b1.width &&
-212                   b1.y <= b2.y + b2.height && b2.y <= b1.y + b1.height;
-213 
-214         if(hit && usePolyCollision){
-215             hit = polygonCollision(b1, b2);
-216         }
-217         return !!hit;
-218     },
-219 
-220     /**
-221      * 可视对象的基本渲染实现,用于框架内部或高级开发使用。通常应该重写render方法。
-222      * @param {Renderer} renderer 渲染器。
-223      * @param {Number} delta 渲染时时间偏移量。
-224      * @protected
-225      */
-226     _render: function(renderer, delta){
-227         if((!this.onUpdate || this.onUpdate(delta) !== false) && renderer.startDraw(this)){
-228             renderer.transform(this);
-229             this.render(renderer, delta);
-230             renderer.endDraw(this);
-231         }
-232     },
-233     /**
-234      * 冒泡鼠标事件
-235     */
-236     _fireMouseEvent:function(e){
-237         e.eventCurrentTarget = this;
-238         this.fire(e);
-239 
-240         //处理mouseover事件 mouseover不需要阻止冒泡
-241         if(e.type == "mousemove"){
-242             if(!this.__mouseOver){
-243                 this.__mouseOver = true;
-244                 var overEvent = Hilo.copy({}, e);
-245                 overEvent.type = "mouseover";
-246                 this.fire(overEvent);
-247             }
-248         }
-249         else if(e.type == "mouseout"){
-250             this.__mouseOver = false;
-251         }
-252 
-253         //向上冒泡
-254         var parent = this.parent;
-255         if(!e._stopped && !e._stopPropagationed && parent){
-256             if(e.type == "mouseout" || e.type == "touchout"){
-257                 if(!parent.hitTestPoint(e.stageX, e.stageY, true)){
-258                     parent._fireMouseEvent(e);
-259                 }
-260             }
-261             else{
-262                 parent._fireMouseEvent(e);
-263             }
-264         }
-265     },
-266 
-267     /**
-268      * 更新可视对象,此方法会在可视对象渲染之前调用。此函数可以返回一个Boolean值。若返回false,则此对象不会渲染。默认值为null。
-269      * 限制:如果在此函数中改变了可视对象在其父容器中的层级,当前渲染帧并不会正确渲染,而是在下一渲染帧。可在其父容器的onUpdate方法中来实现。
-270      * @type Function
-271      * @default null
-272      */
-273     onUpdate: null,
-274 
-275     /**
-276      * 可视对象的具体渲染逻辑。子类可通过覆盖此方法实现自己的渲染。
-277      * @param {Renderer} renderer 渲染器。
-278      * @param {Number} delta 渲染时时间偏移量。
-279      */
-280     render: function(renderer, delta){
-281         renderer.draw(this);
-282     },
-283 
-284     /**
-285      * 返回可视对象的字符串表示。
-286      * @returns {String} 可视对象的字符串表示。
-287      */
-288     toString: function(){
-289         return Hilo.viewToString(this);
-290     }
-291 });
-292 
-293 /**
-294  * @private
-295  */
-296 function pointInPolygon(x, y, poly){
-297     var cross = 0, onBorder = false, minX, maxX, minY, maxY;
-298 
-299     for(var i = 0, len = poly.length; i < len; i++){
-300         var p1 = poly[i], p2 = poly[(i+1)%len];
-301 
-302         if(p1.y == p2.y && y == p1.y){
-303             p1.x > p2.x ? (minX = p2.x, maxX = p1.x) : (minX = p1.x, maxX = p2.x);
-304             if(x >= minX && x <= maxX){
-305                 onBorder = true;
-306                 continue;
-307             }
-308         }
-309 
-310         p1.y > p2.y ? (minY = p2.y, maxY = p1.y) : (minY = p1.y, maxY = p2.y);
-311         if(y < minY || y > maxY) continue;
-312 
-313         var nx = (y - p1.y)*(p2.x - p1.x) / (p2.y - p1.y) + p1.x;
-314         if(nx > x) cross++;
-315         else if(nx == x) onBorder = true;
-316 
-317         //当射线和多边形相交
-318         if(p1.x > x && p1.y == y){
-319             var p0 = poly[(len+i-1)%len];
-320             //当交点的两边在射线两旁
-321             if(p0.y < y && p2.y > y || p0.y > y && p2.y < y){
-322                 cross ++;
-323             }
-324         }
-325     }
-326 
-327     return onBorder || (cross % 2 == 1);
-328 }
-329 
-330 /**
-331  * @private
-332  */
-333 function polygonCollision(poly1, poly2){
-334     var result = doSATCheck(poly1, poly2, {overlap:-Infinity, normal:{x:0, y:0}});
-335     if(result) return doSATCheck(poly2, poly1, result);
-336     return false;
-337 }
-338 
-339 /**
-340  * @private
-341  */
-342 function doSATCheck(poly1, poly2, result){
-343     var len1 = poly1.length, len2 = poly2.length,
-344         currentPoint, nextPoint, distance,
-345         min1, max1, min2, max2, dot, overlap, normal = {x:0, y:0};
-346 
-347     for(var i = 0; i < len1; i++){
-348         currentPoint = poly1[i];
-349         nextPoint = poly1[(i < len1-1 ? i+1 : 0)];
-350 
-351         normal.x = currentPoint.y - nextPoint.y;
-352         normal.y = nextPoint.x - currentPoint.x;
-353 
-354         distance = Math.sqrt(normal.x * normal.x + normal.y * normal.y);
-355         normal.x /= distance;
-356         normal.y /= distance;
-357 
-358         min1 = max1 = poly1[0].x * normal.x + poly1[0].y * normal.y;
-359         for(var j = 1; j < len1; j++){
-360             dot = poly1[j].x * normal.x + poly1[j].y * normal.y;
-361             if(dot > max1) max1 = dot;
-362             else if(dot < min1) min1 = dot;
-363         }
-364 
-365         min2 = max2 = poly2[0].x * normal.x + poly2[0].y * normal.y;
-366         for(j = 1; j < len2; j++){
-367             dot = poly2[j].x * normal.x + poly2[j].y * normal.y;
-368             if(dot > max2) max2 = dot;
-369             else if(dot < min2) min2 = dot;
-370         }
-371 
-372         if(min1 < min2){
-373             overlap = min2 - max1;
-374             normal.x = -normal.x;
-375             normal.y = -normal.y;
-376         }else{
-377             overlap = min1 - max2;
-378         }
-379 
-380         if(overlap >= 0){
-381             return false;
-382         }else if(overlap > result.overlap){
-383             result.overlap = overlap;
-384             result.normal.x = normal.x;
-385             result.normal.y = normal.y;
-386         }
-387     }
-388 
-389     return result;
-390 }
-391 
-392 })();
\ No newline at end of file