- Etthink.as
- package
- {
- //想一下这意味着什么
- import Examples.ToggledButtonBasedSprite;
-
- import Flash.display.Sprite;
-
- //编译器指令,设置swf文件的宽为100px高25px,背景色#aaaaaa
- [SWF(width=100,height=25,backgroundColor="#AAAAAA")]
- public class Etthink extends Sprite
- {
-
- public function Etthink()
- {
- //添加鼠标按钮
- var tg:ToggledButtonBasedSprite=new ToggledButtonBasedSprite();
- this.addChild(tg);
- }
- }
- }
复制代码 ToggledButtonBasedSprite.as
- package Examples
- {
- import flash.display.Sprite;
- import flash.events.MouseEvent;
- import flash.text.TextField;
-
- public class ToggledButtonBasedSprite extends Sprite
- {
- //声明 标签文本
- private var _lbl:TextField;//在具体的方法中进行实例化。
- //用来控制 标签文本显示的关键通过取反!操作来实现状态反转
- private var _flag:Boolean=true;
- //类的构造函数
- public function ToggledButtonBasedSprite()
- {
- //调用父类的构造函数由flash builder自动生成可不加
- super();
- init();
- }
- //写init函数只是一种惯例,使得构造函数看上去尽量简洁
- private function init():void{
-
- //初始化标签,实例化
- this._lbl=new TextField();
- //设置文本的初始状态
- this._lbl.text="On-click me turn off";
- //把标签添加到本按钮
- this.addChild(this._lbl);
-
- //mouseEnabled属性是设置文本不响应鼠标事件
- this._lbl.mouseEnabled=false;
-
-
- //设置基于sprite类的开关按钮的 按钮模式buttonMode为真
- this.buttonMode=true;
- //使用手型鼠标指针
- this.useHandCursor=true;
-
- //为本按钮添加鼠标单击事件
- this.addEventListener(MouseEvent.CLICK,onSelfClickHandler);
- }
-
- //鼠标事件响应函数
- private function onSelfClickHandler(e:MouseEvent):void{
-
- //根据_flag的值来设置标签文本
- if(!this._flag){
- this._lbl.text="On-click me turn off";
- }else{
- this._lbl.text="Off-click me turn on";
- }
-
- //实现开关按钮的核心代码
- this._flag=!_flag;
-
- }
-
-
- }
- }
复制代码 |