您的位置:首页 > 其它

simpleButton的几种状态解析

2013-12-22 09:33 393 查看
可视化对象列表模型提供一种简单的方法通过 SimpleButton 类创建按钮。SimpleButton 类允许
用户用鼠标和可视化对象进行交互,通过各种状态定义交互方法,SimpleButton 按钮的状态有
以下这些:

upState
代表按钮默认"up"状态的对象,当鼠标不在按钮上,按钮就处于这个状态。

overState
当鼠标移动到按钮上时按钮的状态,鼠标离开时按钮又回到"up"状态。

downState
当鼠标按下左键时所处的状态

hitTestState
这个状态定义按钮的界限,只是用来跟踪鼠标的目的。

package {
import flash.display.*;
import flash.events.*;
public class SimpleButtonDemo extends Sprite {
public function SimpleButtonDemo( ) {
var button:SimpleButton = new SimpleButton( );
button.x = 20;
button.y = 20;
button.upState = createCircle( 0x00FF00, 15 );
button.overState = createCircle( 0xFFFFFF, 16 );
button.downState = createCircle( 0xCCCCCC, 15 )






button.hitTestState = button.upState;

button.addEventListener( MouseEvent.CLICK, handleClick );

addChild( button );

}

private function createCircle( color:uint, radius:Number ):Shape {

var circle:Shape = new Shape( );

circle.graphics.lineStyle( 1, 0x000000 );

circle.graphics.beginFill( color );

circle.graphics.drawCircle( 0, 0, radius );

circle.graphics.endFill( );

return circle;

}

private function handleClick( event:MouseEvent ):void {

trace( "Mouse clicked on the button" );

}

}

}
hitTestState 属性可能最有意思了,我们注意到上面的代码中把hitTestState 和upState设成了一样
的状态。也就说当鼠标进入upState 对象范围大小时就激活事件。
hitTestState 可以被设置成任何可显示的对象,像下面的代码那样把激活区域设大些:

button.hitTestState = createCircle( 0x000000, 50 );
再次运行你会发现,当鼠标还没靠近圆,over状态就激活了,这就是激活半径现在是50的缘故。hitTestState就是用来跟踪鼠标的目的的,也就是鼠标要做什么事。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息