數位媒體。筆記

站內搜尋

Sunday, 26 July 2009

AS3: Getter and Setter

setter和getter的妙用
A、setter或者getter一个不是普通的成员变量,假定某类中有一个sprite,我们总是要在类内部获取该sprite的高、宽,每次都***.width, ***.height岂不是很累,我们可以

private function get XXX():Number{return ***.width};

以后直接XXX即可,代码看起来也要舒服很多。

B、setter不一定要和某成员变量联系起来,譬如

public function set data(...)...

我们可以在set中做很多工作,譬如把data转换为我们需要的数据,根据数据刷新显示等等,不一定是要有一个data属性与之相对应!

其实用private+ getter setter是为了增强封装性!
你想,如果把变量暴露给外部使用,假如后期,需求
上要对这个变量先进行些处理,那你就得改N个你
调用它的地方,而如果是用了getter和setter,那你
只要改这两个方法就可以 ...

from: 学AS3的那些破事


example:
package
{
import flash.display.Sprite;
import flash.text.TextField;

public class Starter_13 extends Sprite
{
private var tsecField:TextField;
private var tField:TextField;
public function Starter_13 ()
{
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;
class Testvar extends Sprite
{
public var test:String;
public function Testvar()
{
}
public function set mynewVar(newTest:String):void
{
test = newTest;
}
public function get myVar():String
{
return test;
}
}


from: flashscript.biz

No comments:

Post a Comment