应用思考-教育技术论坛

标题: 完全Actionscript 3.0实现的开关按钮 [打印本页]

作者: 想换个名字可以吗    时间: 2012-11-7 21:54
标题: 完全Actionscript 3.0实现的开关按钮
本帖最后由 郎咸蒙 于 2012-11-8 08:16 编辑

这个例子用as类实现了开关按钮,并且涉及到了继承extends和包package的概念,也涉及到利用boolean类型位运算控制状态的小技巧。
代码文件。 (, 下载次数: 7) 大家如果不用flex或者flash builder的话,可以把Etthink类作为fla文档的文档类。什么是文档类?去百度!{:soso__8961432591078930798_3:}
http://qdydh.sinaapp.com/Etthink.swf
Etthink.as

  1. package
  2. {
  3. //想一下这意味着什么
  4. import Examples.ToggledButtonBasedSprite;

  5. import flash.display.Sprite;

  6. public class Etthink extends Sprite
  7. {
  8.   
  9.   public function Etthink()
  10.   {
  11.    var tg:ToggledButtonBasedSprite=new ToggledButtonBasedSprite();
  12.    this.addChild(tg);
  13.   }
  14. }
  15. }
复制代码
位于Examples包下的ToggledButtonBasedSprite类ToggledButtonBasedSprite.as。代码没有详细的注释,大家先读,回复超过30添加注释,欢迎大家提问

  1. package Examples
  2. {
  3. import flash.display.Sprite;
  4. import flash.events.MouseEvent;
  5. import flash.text.TextField;

  6. public class ToggledButtonBasedSprite extends Sprite
  7. {
  8.   //声明 标签文本
  9.   private var _lbl:TextField;//在具体的方法中进行实例化。
  10.   
  11.   private var _flag:Boolean=true;
  12.   
  13.   public function ToggledButtonBasedSprite()
  14.   {
  15.    super();
  16.    init();
  17.   }
  18.   //写init函数只是一种惯例,使得构造函数看上去尽量简洁
  19.   private function init():void{
  20.    this._lbl=new TextField();
  21.    this._lbl.text="On";
  22.    this.addChild(this._lbl);
  23.    
  24.    this._lbl.mouseEnabled=false;
  25.    
  26.    this.buttonMode=true;
  27.    this.useHandCursor=true;
  28.    
  29.    this.addEventListener(MouseEvent.CLICK,onSelfClickHandler);
  30.   }
  31.   
  32.   private function onSelfClickHandler(e:MouseEvent):void{
  33.    if(!this._flag){
  34.     this._lbl.text="On";
  35.    }else{
  36.     this._lbl.text="Off";
  37.    }
  38.    this._flag=!_flag;
  39.    
  40.   }
  41.   
  42.   
  43. }
  44. }
复制代码
大家思考下,如何通过控制_lbl的格式来使得开关按钮的外观更加漂亮,如off的时候文字红色。文字的大小等等。


作者: 想换个名字可以吗    时间: 2012-11-7 22:07
http://qdydh.sinaapp.com/Etthink2.swf
对代码做了改动,想一下修改了哪里呢
作者: 想换个名字可以吗    时间: 2012-11-7 22:11
还有就是访问控制关键词的合理使用 想想为什么是private为什么是public呢?




欢迎光临 应用思考-教育技术论坛 (http://www.etthink.com/) Powered by Discuz! X3.4