actionscript3 getter,setter函数
发布:Coamy | 发布时间: 2009年9月15日存取器可以让外部类访问到类的私有属性
package {
import flash.display.Sprite;
public class A extends Sprite {
private var a:Number;
public function A():void {
a=2;
}
public function get aa():Number {
return a;
}
public function set aa(s:Number):void {
a=s;
}
}
}
在时间轴上写入
var p:A=new A();
p.aa=8;
trace(p.aa);//输出8;
若在时间轴上输入:
var p:A=new A();
p.aa+=8;
trace(p.aa);//输出10;
其中getter、setter存取器函数的名称可以不同,所以我做了以下实验:
package {
import flash.display.Sprite;
public class A extends Sprite {
private var a:Number;
public function A():void {
a=2;
}
public function get aa():Number {
return a;
}
public function set bb(s:Number):void {
a=s;
}
}
}
在时间轴上输入:
var p:A=new A();
p.bb=8;
trace(p.aa);//输出8;
若在时间轴上输入:
var p:A=new A();
p.bb+=8;
trace(p.aa);
输出:1119: 访问可能未定义的属性 bb (通过 static 类型 A 引用)。
所以虽然存取器的名称可以不同,但是不同后的很多用法就没办法用了,
另外存取器函数名与类中的变量名不能相同,和函数中的形参也不能相同。
(即上面例子中的a和aa,a和s)。
PS:p.bb+=8 相当于 p.bb=p.bb+8 由于p.bb没有 get访问器 所以报错..
发布:Coamy | 分类:AS3 | 评论:0 | 引用:0 | 浏览:
| TrackBack引用地址
- 相关文章:
ActionScript3实用小技巧 (2009-9-15 15:13:23)
as3使用外部加载类库 (2009-9-15 15:8:38)
Actionscript 3.0基础教程-类的编写 (2009-9-14 20:1:29)
flash接收外部参数的问题 (2009-9-12 16:28:25)
Ubuntu-Firefox中Flash播放器乱码解决 (2009-5-10 10:41:8)
发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。





