在我的ActionScript3类中,我可以使用带有getter和setter的属性吗?
答案 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;
}
}