为SimpleButton添加Disabled状态

默认下,SimpleButton只有四种状态,如何使SimpleButton像Button组件一样具有Disabled状态呢?下面代码扩展了SimpleButton类,使SimpleButton具有Disabled状态,并能添加标签文本。

package {
	import flash.display.DisplayObject;
	import flash.display.SimpleButton;
	public class DisabledSimpleButton extends SimpleButton 
	{
		protected var enabledState: DisplayObject;
		protected var disabledState: DisplayObject;
		/**
		 * DisabledSimpleButton构造函数
		 * 
		 * @param  label	标签文本
		 */		
		public function DisabledSimpleButton(label: String) 
		{
			enabledState = new ButtonDisplayState(label, 0);
			disabledState = new ButtonDisplayState(label, 3);			
			overState = new ButtonDisplayState(label, 1);
			downState = new ButtonDisplayState(label, 2);			
			upState = enabledState;											
			hitTestState = upState;
		}
		/**
		 * 覆盖enabled属性的setter方法
		 * @param  value  Boolean 指定按钮是否处于启用状态
		 */ 
		override public function set enabled(value: Boolean):void 
		{
			super.enabled = value;
			// 设置鼠标事件是否可用			
			this.mouseEnabled = enabled;
			// 按钮处于可用状态时,按钮弹起状态的显示对象不变,否则替换成不可用状态的显示对象,
			upState = (enabled) ? enabledState : disabledState;
		}	
	}
}

至于ButtonDisplayState类及使用方法,请参考源文件。点击此处下载。

上一篇上一篇: playerglobal.swc与apolloglobal.swc冲突
下一篇下一篇: 在AS中运用递归
来自文章来自: 本站原创
引用引用通告: 查看所有引用 | 我要引用此文章
标签Tags: Actionscript3
相关相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭