`
bal1212
  • 浏览: 75917 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何动态更新simpleButton中的text内容

阅读更多

 

AS3SimpleButton 内加入文字后,该如何用程式修改文字呢 ? 还记得 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 来改变不同状态的文本显示

分享到:
评论

相关推荐

    SimpleButton-crx插件

    语言:English (UK) 一个极其简单的扩展,它创建浏览器操作以启动用户定义的URL。 如果您想要的只是简单的信息,则很有用。 一个极其简单的扩展,它创建浏览器操作以启动用户定义的URL。 如果只需要一个浏览器上的...

    android-simpleButton:elasticode 简单按钮示例(Android studio)

    android-simpleButton Elasticcode 简单按钮示例 概要 Elasticode 简单按钮示例可让您了解有关如何集成 elasticode SDK 的更多信息,并显示用于配置简单按钮 UI 的示例代码。 代码示例 设置环境很容易,您可以按照...

    DevExpress控件常用属性讲解

    本人开发Dev项目过程中对控件的常用属性整理。

    第三方控件(DevExpress)

    第三方控件(DevExpress)使用大全【个人开发过程中整理收集】,来自网络转载

    photoshop动态火山文字代码

     import flash.display.SimpleButton; import flash.text.TextField; import flash.display.Sprite; import flash.utils.getTimer; import flash.geom.Rectangle; /** * @author 寂寞火山:[url]...

    aether.swc

    //定义截屏的区域,并保存在bitmapData中 //false是位图是否有transparent项 var region:Rectangle= new Rectangle(0, 0, 100, 100); bitmapData= ScreenCapture.capture(stage,false, region); // 一个...

    simplebutton.io:我创建了此存储库以帮助任何人解决有关此主题的问题(简单按钮)

    simplebutton.io 我创建了此存储库以帮助任何人解决有关此主题的问题(简单按钮)

    MVVM在Winform应用实例

    MVVM在Winform应用实例,simpleButton1点击后,再点击simpleButton2显示textEdit1的值

    react-ui-components:用于React的UI组件的集合

    react-ui-components React组件库安装要安装最新版本: npm install react-ui-components 安装npm后,您将在src /...var SimpleButton = Components.SimpleButton;var LinkButton = Components.LinkButton;module.expor

    自定义按钮

    自己写的按钮类,简单易用,采用了SimpleButton,增加了灰色的按钮状态

    C#使用Aspose.Cells控件读取Excel

    我所用的是最基本的功能,读取Excel的数据并导入到Dataset或数据库中。读取Excel表格数据的代码如下: 首先要引入命名空间:using Aspose.Cells; 代码如下: Workbook workbook = new Workbook(); workbook.Open(“C...

    DevExpress第三方控件详细总结

    3.6 SimpleButton 36 3.7 CheckEdit 36 3.8 CheckedListBoxControl 37 3.9 RadioGroup 38 3.10 ComboBoxEdit 38 3.11 PanelControl、GroupControl、SplitterControl 39 3.12 PictureEdit 39 3.13 TimeEdit、DateEdit...

    C#最简单的关闭子窗体更新父窗体的实现方法

    主窗体Form1关键代码: 将子窗体最为对话框模式弹出,当窗体关闭或取消时更新主窗体 代码如下: private void simpleButton1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Owner = this; ...

    as3 纯代码按钮实现函数,参数自定义

    调用简单,纯代码实现按钮 var button01: SimpleButton = org.button.button.newButton({title: "按钮"});

    一组与 React、Ant Design 和 OpenLayers 结合使用的地理相关模块。

    要使用组件,只需像我们在示例中所做的那样导入它: import { CircleMenu, SimpleButton, MapComponent, MapProvider, mappify } from '@terrestris/react-geo'; 推荐使用 webpack 和 babel。 你需要在你的 webpack-...

    有动画、状态感知属性IOS按钮

    作者aloco,源码SimpleButton,SimpleButton 是一个 UIButton 子类,有动画、状态感知属性,设置子类和配置起来很简单。

    ActionScript开发技术大全

    11.6按钮对象SimpleButton 254 11.7文本框TextField 255 11.7.1文本类型 255 11.7.2外观控制 256 11.7.3设置文本 256 11.7.4处理HTML 258 11.7.5输入限制 260 11.7.6文本格式化 260 11.7.7多行模式 262 11.7.8适应与...

    用于更快地构建 redux/react 应用程序的自以为是的 CLI

    github 设置 ssh) blueprint init // 或配置当前项目以使用 CLI // 开始生成组件/测试并节省时间 \(• ◡ •)/ // (g 是 generate 的别名) blueprint g dual SimpleButton 目录 入门 配置现有项目命令 生成器 ...

Global site tag (gtag.js) - Google Analytics