AS3 的 SimpleButton 内加入文字后,该如何用程式修改文字呢 ? 还记得 AS2 的程式写法是
myBtn.label.text = "button",非常简易的存取方式。而 AS3 程式存取写法是完全不一样的,因为跟 AS2 的按钮设计
方法完全不一样。若是在 AS3 中用 myBtn.label 会发现不能存取。
假设您了解 SimpleButton 的类别用法,SimpleButton 有三个状态,upState、overState、
downState。
要存取文字应该要这样写
(((myBtn.upState as Sprite).getChildAt(1)) as TextField).text = "1";
(((myBtn.overState as Sprite).getChildAt(1)) as TextField).text = "2";
(((myBtn.downState as Sprite).getChildAt(1)) as TextField).text = "3";
getChildAt(1) 是存取上图参考图片 label 图层的动态文字物件
getChildAt(0) 是存取上图参考图片 graphic 图层的 Shape 物件
AS3有了按钮类:SimpleButton ,可以为四种状态分别指定不同的 DisplayObject 。但是 SimpleButton 没有继承 DisplayObjectContainer 类,也就是不能给它添加其他的 child 。如果要创建一个带文字的 Button 怎么办?两种方案:
- 方案一:把文字加到每种 state 里。因为 Shape 也没有继承 DisplayObjectContainer 类,要添加文字 state 就要用 Sprite 。优点是每种状态可以有不同的文字颜色、大小、位置等。缺点是不方便改文字内容。
- 方案二:把 SimpleButton 和 TextField 一起放到一个 Sprite 里。这样 SimpleButton 的 state 可以用 Shape 以节省内存空间。优缺点和方案一相反。[feel_good]
看看 代码 和演示:
创建一个按钮很简单,为它的四种状态分别指定一个 DisplayObject 就可以了:
btn = new SimpleButton();
btn.name = "btn";
btn.downState = new BtnStatusShape2(downColor,w,h);
btn.overState = new BtnStatusShape2(overColor,w,h);
btn.upState = new BtnStatusShape2(upColor,w,h);
btn.hitTestState = btn.upState;
addChild(btn);
注意必须指定 hitTestState ,就是Flash IDE里创建 Button 时的 hit 帧,响应鼠标事件的区域,如果没有它按钮就失去作用了。一般设置它和 upState 一样就可以了。
第二种方案的每种 state 都是一个 Shape(→ DisplayObject → EventDispatcher → Object):
internal class BtnStatusShape2 extends Shape{
public function BtnStatusShape2(bgColor:uint,w:uint,h:uint) {
graphics.lineStyle(1,0x000000,0.8)
graphics.beginFill(bgColor,0.8);
graphics.drawRoundRect(0,0,w,h,8);
graphics.endFill();
}
}
方案一没有什么好说的。方案二如果想让 btn 响应鼠标事件可以重写装载它的 Sprite 的 addEventListener 方法:
public override function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void{
btn.addEventListener(type,listener);
}
要重写继承自父类的方法必须使用 override 关键字。而且重写的方法必须有父类方法完全相同的参数名称、数量和类型。
当然方案二也可以通过监听 MOUSE_OVER、MOUSE_OUT、CLICK 等 MouseEvent 来改变不同状态的文本显示
分享到:
相关推荐
总的来说,这个实例展示了AS3中加载XML的基本步骤,以及如何利用加载的数据来创建动态内容,比如文本和链接,从而增强用户的交互体验。这在开发富互联网应用程序(RIA)或Flash游戏时非常常见,能够帮助开发者构建...
2. 将SimpleButton类移动到新创建的包中,更新XML布局文件中的类路径。 通过以上步骤,你将能够熟练地在Android Studio项目中自定义类和包,并有效地引用它们。自定义类和包的使用不仅可以提高代码的可读性,还能...
这个项目对于学习AS3与XML的交互、字符串处理以及动态界面更新具有很好的实践价值。 首先,我们要了解AS3中的XML类,它是处理XML文档的基础。在"as3 简单上海地图"项目中,`valus.xml`文件是数据源,包含了与地图...
- **复杂数据类型**:MovieClip(影片剪辑)、TextField(动态或输入文本字段)、SimpleButton(按钮元件)、Date(日期和时间)等。 **动态文本** 在Flash中,文本字段分为动态文本、输入文本和静态文本。动态文本...
此外,你还可以用JavaScript动态修改按钮的文本、禁用按钮或触发其他行为。 综上所述,"simplebutton.io"项目可能涵盖了HTML基础,特别是关于如何创建和定制按钮的实践。通过学习这些基本概念,你可以创建交互性更...
//定义截屏的区域,并保存在bitmapData中 //false是位图是否有transparent项 var region:Rectangle= new Rectangle(0, 0, 100, 100); bitmapData= ScreenCapture.capture(stage,false, region); // 一个...
在标签“源码 工具”中,“源码”暗示我们将讨论与编写代码相关的内容,而“工具”可能是指用于辅助创建或演示这些按钮的软件或在线资源。例如,开发者可能会使用代码编辑器(如Visual Studio Code或Sublime Text)...
在AS3中,原生的提示框功能主要通过`flash.display.MovieClip`类的`addChild()`和`removeChild()`方法以及`flash.text.TextField`类来实现。但是,这样的基本实现可能功能有限,不够灵活,因此开发者通常会创建...
- `EditValueChanged`事件在文本内容变化时触发。 - `KeyPress`事件在按键按下时触发。 2. **MemoEdit**: - 提供多行文本编辑功能。 - 同TestEdit,拥有`Name`、`Text`、`Enabled`、`Visible`属性,但`...
- 然后,我们创建一个`Rectangle`,并为其分配一个ID(如`simplebutton`),以便在代码中引用它。通过设置`width`和`height`属性,我们可以指定按钮的尺寸。接着,通过`color`属性定义按钮的颜色,例如`"grey"`。 ...
这里以Windows Form为例,主要用到的控件包括SimpleButton、DocumentViewer、SplitContainerControl等。这些控件的布局相对简单,主要是设置控件的位置、大小等属性。 - **DocumentViewer控件**:用于预览和展示...
ActionScript 3.0的开发得到了Adobe®Flash®Player 9以及Adobe®Flex™ SDK的支持,可以用于创建Flash内容,并在Adobe Flash Player中运行。 在ActionScript中,基本的数据类型包括String、数值类型(Number、int...
- **StaticText**:在Flash CS3中创建的静态文本字段,不可在代码中创建。 - **Video**:用于播放视频文件。 显示对象具有许多重要的属性和方法,用于控制它们的外观和行为: - `x` 和 `y`:分别代表对象的横纵...
e.Info.DisplayText = (int.Parse(e.RowHandle.ToString()) + 1).ToString(); } } ``` - 效果展示:左侧成功显示了行号。 #### 三、总结 通过上述步骤,我们可以看到DevExpress GridControl控件的强大之处...
本篇内容主要解析一个Flash字母游戏的源代码,该游戏旨在帮助用户通过键盘控制的方式加强对字母的熟悉度。通过该程序,用户可以练习字母识别和反应速度,从而提高打字技能。 #### 二、关键类与方法详解 ##### 1. `...
- **TextControl**:用于显示纯文本内容。主要通过 `Text` 属性来设定显示的文本。 - **BaseButton**: - **SimpleButton**:简单的按钮控件,通常用于触发某个操作。支持 `Click` 事件。 - **CheckEdit**:带有...
我们可以利用 `flash.display.MovieClip` 或 `flash.display.SimpleButton` 等组件来构建对话框的视觉效果,并使用 `addChild()` 和 `removeChild()` 方法来控制对话框的显示和隐藏。对话框的样式可以通过设置组件的...
- **`BaseLabel`** — 显示文本内容,通过`Text`属性设置显示的文本。 - **`BaseButton`** — 按钮控件,具有不同的风格,例如: - **`SimpleButton`** — 简单按钮,通过触发`Click`事件响应用户的点击操作。 - *...