# Button

继承 Button View 模块 hilo/view/Button 依赖 hilo/core/Hilo, hilo/core/Class, hilo/view/View, hilo/view/Drawable, hilo/util/util 源码 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
| DOWN:String static 按钮按下状态的常量值，即：'down'。 | Button
| DISABLED:String static 按钮不可用状态的常量值，即：'disabled'。 | Button
| UP:String static 按钮弹起状态的常量值，即：'up'。 | Button
| 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

### 方法概览

显示继承方法

| 方法 | 定义于
--- | --- | ---
| Button(properties:Object) 构造函数 | Button
| setEnabled(enabled:Boolean):Button 设置按钮是否可用。 | Button
| setState(state:String):Button 设置按钮的状态。此方法由Button内部调用，一般无需使用此方法。 | Button
| 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

### 属性详情

[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 — 按钮本身。