在我的ActionScript3类中,我可以拥有带getter和setter的属性吗?

时间:2008-09-29 22:27:31

标签: actionscript-3

在我的ActionScript3类中,我可以使用带有getter和setter的属性吗?

3 个答案:

答案 0 :(得分:20)

好的,您可以对AS3类的任何属性使用基本的getter / setter语法。例如

package {

    public class PropEG {

        private var _prop:String;

        public function get prop():String {
            return _prop;
        }

        public function set prop(value:String):void {
            _prop = value;
        }
    }
}

答案 1 :(得分:3)

是的,您可以在AS3类中创建getter和setter函数。

示例:


private var _foo:String = "";

public function get foo():String{
    return _foo;
}

public function set foo(value:String):void {
    _foo= value;
}

可以找到有关getter和setter的更多信息here

答案 2 :(得分:0)

getter是一个函数,其返回值取决于我们返回的内容。 setter总是有一个参数,因为我们通过参数给变量一个新值。

我们首先创建一个包含getter和setter的类的实例,在我们的例子中它是“a”。然后我们调用setter,如果我们想要更改变量并使用点语法我们称之为setter函数,并使用=运算符填充参数。为了解释变量的值,我们以与示例(a.myVar)中所示类似的方式使用getter。与常规函数调用不同,我们省略了括号。不要忘记添加返回类型,否则会出错。

包 {

import flash.display.Sprite;
import flash.text.TextField;

public class App extends Sprite 
{
       private var tsecField:TextField;
       private var tField:TextField;

       public function App() 
       {
               myTest();
       }

       private function myTest():void 
       {
               var a:Testvar = new Testvar();

               tField = new TextField();
               tField.autoSize = "left";
               tField.background = true;
               tField.border = true;
               a.mynewVar = "This is the new var.";
               tField.text = "Test is: "+a.myVar;
               addChild(tField);
       }
}

}

import flash.display.Sprite;

import flash.text.TextField;

类Testvar扩展了Sprite {     public var test:String;

public function Testvar() 
{
}
public function set mynewVar(newTest:String):void 
{
       test = newTest;
}
public function get myVar():String 
{
       return test;
}

}