# View

模块 hilo/view/View 依赖 hilo/core/Hilo, hilo/core/Class, hilo/event/EventMixin, hilo/geom/Matrix, hilo/util/util 源码 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
| tint:Number 可视对象的附加颜色，默认0xFFFFFF，只支持WebGL模式。 | View
| transform:Matrix 可视对象的transform属性，如果设置将忽略x, y, scaleX, scaleY, rotation. | 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
| fire(type:String, detail:Object):Boolean 发送事件。当第一个参数类型为Object时，则把它作为一个整体事件对象。 | 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
| off(type:String, listener:Function):Object 删除一个事件监听。如果不传入任何参数，则删除所有的事件监听；如果不传入第二个参数，则删除指定类型的所有事件监听。 | View
| on(type:String, listener:Function, once:Boolean):Object 增加一个事件监听。 | View
| removeFromParent():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。
tint:Number
可视对象的附加颜色，默认0xFFFFFF，只支持WebGL模式。
transform:Matrix
可视对象的transform属性，如果设置将忽略x, y, scaleX, scaleY, rotation. pivotX, pivotY 属性。默认null。
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 — 可视对象本身。

fire(type:String, detail:Object):Boolean
发送事件。当第一个参数类型为Object时，则把它作为一个整体事件对象。

parameters
type:String — 要发送的事件类型。
detail:Object — 要发送的事件的具体信息，即事件随带参数。

return
  Boolean — 是否成功调度事件。

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 — 点是否在可视对象之内。

off(type:String, listener:Function):Object
删除一个事件监听。如果不传入任何参数，则删除所有的事件监听；如果不传入第二个参数，则删除指定类型的所有事件监听。

parameters
type:String — 要删除监听的事件类型。
listener:Function — 要删除监听的回调函数。

return
  Object — 对象本身。链式调用支持。

on(type:String, listener:Function, once:Boolean):Object
增加一个事件监听。

parameters
type:String — 要监听的事件类型。
listener:Function — 事件监听回调函数。
once:Boolean — 是否是一次性监听，即回调函数响应一次后即删除，不再响应。

return
  Object — 对象本身。链式调用支持。

removeFromParent():View
从父容器里删除此对象。

return
  View — 可视对象本身。

render(renderer:Renderer, delta:Number)
可视对象的具体渲染逻辑。子类可通过覆盖此方法实现自己的渲染。

parameters
renderer:Renderer — 渲染器。
delta:Number — 渲染时时间偏移量。

toString():String
返回可视对象的字符串表示。

return
  String — 可视对象的字符串表示。