`

ActionScript的setter/getter

    博客分类:
  • Flex
阅读更多
getter 和 setter 方法的语法如下所示:

    * getter 方法不能有任何参数,始终返回一个值。
    * setter 方法始终带一个参数,从不返回任何值。

类通常会定义 getter 方法和 setter 方法来分别提供对给定属性的读访问和写访问。例如,假设某个类包含一个名为 userName 的属性:

private var userName:String;

该类不允许其实例直接访问这个属性(例如 user.userName = "Buster"),而改为提供两个方法 getUserName 和 setUserName,其实现如下一个示例所示。
使用 getter 和 setter 方法:

   1. 选择"文件">"新建",再选择"ActionScript 文件",然后单击"确定"。
   2. 在"脚本"窗口中键入以下代码:

      class Login {
          private var __username:String;
          public function Login(username:String) {
              this.__username = username;
          }
          public function getUserName():String {
              return this.__username;
          }
          public function setUserName(value:String):Void {
              this.__username = value;
          }
      }

   3. 将 ActionScript 文档保存为 Login.as。

      您可以看到,getUserName() 返回 userName 的当前值,而 setUserName() 将 userName 的值设置为传递给该方法的字符串参数。
   4. 选择"文件">"新建",然后选择"Flash 文档",以创建一个新的 FLA,将其保存到与 Login.as 相同的目录下,文件名为 login_test.fla。
   5. 将下面的 ActionScript 添加到主时间轴中的第 1 帧:

      var user:Login = new Login("RickyM");

      // 调用 getUserName() 方法
      var userName:String = user.getUserName();
      trace(userName); // RickyM

      // 调用 setUserName() 方法
      user.setUserName("EnriqueI");
      trace(user.getUserName()); // EnriqueI

   6. 选择"控制">"测试影片"对文件进行测试。

      Flash 会将以下信息显示在"输出"面板中:

      RickyM
      EnriqueI

但是,如果要使用更简明的语法,可以使用隐式 getter 和 setter 方法。利用隐式 getter 和 setter 方法能够以直接访问的方式访问类属性,同时还可以保持良好的面向对象编程惯例。

若要定义这些方法,应使用 get 和 set 方法属性。首先应创建用于获取或设置属性值的方法,然后在方法名前面加上 get 或 set 关键字,如下一个示例所示。

注意




隐式 getter 和 setter 方法是对 ActionScript 1.0 中 Object.addProperty() 方法的句法简化。
使用隐式 getter 和 setter 方法:

   1. 选择"文件">"新建",再选择"ActionScript 文件",然后单击"确定"。
   2. 在"脚本"窗口中键入以下代码:

      class Login2 {
          private var __username:String;
          public function Login2(username:String) {
              this.__username = username;
          }
          public function get userName():String {
              return this.__username;
          }
          public function set userName(value:String):Void {
              this.__username = value;
          }
      }

   3. 将 ActionScript 文档保存为 Login2.as。

      切记,getter 方法不带任何参数。而 setter 方法必须正好有一个必要参数。setter 方法与同一作用域内的 getter 方法可以具有相同的名称。但 getter 和 setter 方法不能与其它属性同名。例如,在上面的示例代码中,您定义了名为 userName 的 getter 和 setter 方法;在此情况下,在同一个类中就不能再有名称也为 userName 的属性了。
   4. 选择"文件">"新建",然后选择"Flash 文档",以创建一个新的 FLA,将其保存到与 Login2.as 相同的目录下,文件名为 login2_test.fla。
   5. 将下面的 ActionScript 添加到主时间轴中的第 1 帧:

      var user:Login2 = new Login2("RickyM");

      // 调用"获取"方法
      var userNameStr:String = user.userName;
      trace(userNameStr); // RickyM

      // 调用"设置"方法
      user.userName = "EnriqueI";
      trace(user.userName); // EnriqueI

      与普通方法不同,调用 getter 和 setter 方法时,方法名后面不带任何括号或参量。调用 getter 和 setter 方法与调用同名属性类似。
   6. 保存 Flash 文档,然后选择"控制">"测试影片"对文件进行测试。

      Flash 会将以下信息显示在"输出"面板中:

      RickyM
      EnriqueI

分享到:
评论

相关推荐

    actionscript 3.0 get set 生成器

    actionscript 3.0 getter setter as3 代码生成,可自动生成get set 方法。增加了清屏功能。

    一步一步学ActionScript 3.0

    // 如果想要修改私有变量`s`,可以通过提供公共的getter和setter方法实现: public function get s():Number { return this.s; } public function set s(value:Number):void { this.s = value; } ``` 这样,就...

    MXML 基本语法和ActionScript 类的标签使用

    - Getter和Setter:使用get和set关键字自动创建访问器方法。 - 继承:支持类的继承,实现多态性。 - 访问控制:提供公共(public)和私有(private)成员,以及静态(static)成员。 - 类型转换:可以显式进行类型...

    as get set类生成工具

    "as get set类生成工具"是一个专门针对ActionScript开发的辅助工具,它旨在帮助开发者快速创建并管理具有getter和setter方法的类。在面向对象编程中,getter和setter方法用于获取(get)和设置(set)对象的属性值,...

    ActionScript3.0教程

    - 属性分为两种类型:读取器(getter)和写入器(setter)。例如: ```as public class SampleClass { private var _value:Number; public function get value():Number { return _value; } public ...

    Flex 处理服务器端传来的数据第1/2页

    VO对象是具有简单属性和setter/getter方法的普通ActionScript类,可以用来表示传输的数据。 在提供的内容中,`remoteObject`组件被配置了不同的方法,包括`hello`、`world`、`getMap`、`getList`和`getSet`。这些...

    ActionScript 3.0编译器编译错误大全

    `getter`和`setter`应分别用于获取和设置属性值。如果仅定义了`getter`而尝试设置属性值,或将`setter`用作获取方法,将导致错误。 ### 错误1061:属性未声明 每个类属性都必须在使用前声明。尝试访问未声明的属性...

    提升网页游戏性能浅谈——缓冲池

    // getter、setter属性 for each (var axml:XML in accessors) { variableArr.push(axml.@name); } propertyList.put(type, variableArr); } ``` #### 五、缓冲池的应用场景 1. **常用功能模块**:例如角色、...

    如何定义一个getter和seter设置的属性可以被绑定

    在编程语言如ActionScript(特别是在Adobe Flash、Flex框架中使用)中,getter和setter通常被用来控制数据的访问和修改。在这个上下文中,我们会探讨如何通过getter和setter来定义一个可绑定的属性。 首先,根据...

    Flex Bindable 的用法

    例如,`[Bindable]`元数据告诉Flex编译器,某个变量、属性或getter/setter方法需要支持数据绑定。这意味着当这些元素的值发生变化时,编译器会自动生成相应的事件处理代码,确保与之绑定的其他组件能实时反映这些...

    Flex4-in-a-day

    最后,文档介绍了Flash Builder 4的一些新特性,如状态编辑器、getter/setter/event handler代码生成器、性能分析器和调试器,这些新工具为Flex开发提供了更多便利。 作者介绍了自己是Adobe系统公司的一名平台布道...

    flash cs3 语言及其语法

    这里,`sampleGreeting` 属性使用 getter 和 setter 方法来提供对 `_sampleGreeting` 变量的安全访问。 #### 构造函数 类还可以包含构造函数,构造函数用于初始化新创建的对象实例。构造函数没有返回类型,并且...

    Adobe Flex编码指南[中文][PDF]

    - ActionScript文件结构必须包含开篇注释、定义包、声明命名空间、Import描述、use声明(命名空间)、元数据、定义包和接口、静态变量、未使用getter和setter的变量、构造函数及用getter和setter处理的变量和方法等...

    flex 性能,查看内存

    - **数据绑定优化**:减少不必要的数据绑定,使用ChangeObject类代替传统的setter和getter。 - **UI组件优化**:复用UI组件,避免频繁创建和销毁,使用虚拟布局来提升大量数据展示时的性能。 - **异步编程**:...

    flex试题打包面试题挺好的

    - **步骤三**:定义数据成员,并提供getter/setter方法。 - **步骤四**:重写`toString()`和`clone()`方法。 ### 13. 获取运行环境信息 - **示例**:获取操作系统信息。 ```actionscript flash.system....

    flex3 数据绑定 总结

    在 Flex 中,你可以通过访问器(getter 和 setter 方法)来创建动态属性,这些访问器可以执行额外的逻辑,如验证或转换数据。 ```actionscript public class MyComponent extends UIComponent { private var _...

    Flex与Java通过实体传递数据

    这个类包含了字段和getter/setter方法,用于存储和访问数据。 数据交换通常通过HTTP请求完成,Flex使用HTTPService发送请求到Java服务器,Java服务器处理请求,然后返回响应。响应可以是一个JSON或XML格式的数据,...

    Flash Builder 4 快速入门

    3.3 Getter & Setter 3.4 自动生成EventHandler 3.5 条件断点 第四章 Flex SDK 4 新特性 4.1 主题 4.2 布局 4.3 特效 4.4 样式 4.5 状态 4.6 双向绑定 4.7 ASDoc 4.8 SWFObject 与 HTML Template 第五章...

    as3人物行走动作组和

    这些属性可以通过构造函数初始化,并提供getter和setter方法以便于访问和修改。 ```actionscript public class Character { public var x:Number; public var y:Number; public var speed:Number = 5; // 行走...

Global site tag (gtag.js) - Google Analytics