labelbutton.as

来自「《Flash AS3殿堂之路》光盘源码 学习ActionScript 3.0」· AS 代码 · 共 62 行

AS
62
字号
package org.kingda.book.display
{
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
	import flash.text.TextField;
	//自定义的标签按钮类
	public class LabelButton extends MovieClip
	{
		private var _labelName:String;
		private var _label:TextField;
		//通过构造函数传入按钮的标签文字
		public function LabelButton(name:String = "默认按钮") {
			super();
			_labelName = name;
			initBtnLabel();
			initBtnFunc();
		}
		//生成标签
		private function initBtnLabel():void {
			_label = new TextField();
			_label.selectable = false;
			_label.htmlText = "<b>"+ _labelName + "</b>";
			addChild(_label);
			_label.x = 10;
			_label.y = 10;
			_label.autoSize = "left";
		}
		//初始化按钮的互动事件
		private function initBtnFunc():void {
			this.stop();//此句让影片一上来就停止,不要自动播放
			this.buttonMode = true;
			this.addEventListener(MouseEvent.ROLL_OVER, 	rollOver);
			this.addEventListener(MouseEvent.ROLL_OUT, 		rollOut);
			this.addEventListener(MouseEvent.MOUSE_DOWN, 	onPress);			
			this.addEventListener(MouseEvent.MOUSE_UP, 		onRelease);			
		}
		//悬停时,文字变橙色,绑定的影片跳到“over”帧标签并停止
		private function rollOver(evt:MouseEvent):void {
			this.gotoAndStop("over");
			_label.htmlText = "<font color='#ff9900'><b>"
							  	+ _labelName + "</font></b>";
		}
		//移开时,文字变黑色,绑定的影片跳到第一帧并停止
		private function rollOut(evt:MouseEvent):void {
			this.gotoAndStop(1);
			_label.htmlText = "<font color='#000000'><b>"
								+ _labelName + "</font></b>";
		}
		//按下时,文字变白色,绑定的影片跳到“down”帧标签并停止
		private function onPress(evt:MouseEvent):void {
			this.gotoAndStop("down");			
			_label.htmlText = "<font color='#ffffff'><b>"
								+_labelName+"</font></b>";
		}
		//松开时,文字变黑色,绑定的影片跳到第一帧并停止
		private function onRelease(evt:MouseEvent):void {
			this.gotoAndStop(1);
			_label.htmlText = "<font color='#000000'><b>"
								+ _labelName + "</font></b>";
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?