Flash AS3教程:类属性的属性
它。在 ActionScript 3.0 中,这种情况不复存在。标记为 private 的属性在编译时和运行时都不可用。
例如,下面的代码创建了名为 PrivateExample 的简单类,其中包含一个私有变量,然后尝试从该类的外部访问该私有变量。在 ActionScript 2.0 中,编译时访问被禁止,但是使用属性访问运算符 ([]) 可以很容易地避开禁止,属性访问运算符在运行时(而不是编译时)执行属性查找。 class PrivateExample { private var privVar:String = "private variable"; } var myExample:PrivateExample = new PrivateExample(); trace(myExample.privVar);// compile-time error in strict mode trace(myExample["privVar"]); // ActionScript 2.0 allows access, but in ActionScript 3.0, this is a run-time error. 在 ActionScript 3.0 中使用严格模式时,尝试使用点运算符 (myExample.privVar) 访问私有属性会导致编译时错误。否则,会在运行时报告错误,就像使用属性访问运算符 (myExample["privVar"]) 时一样。 下表汇总了试图访问属于密封(非动态)类的 private 属性的结果:
在使用 dynamic 属性声明的类中尝试访问私有变量时,不会导致运行时错误。只是变量不可见,所以 Flash Player or Adobe® AIR™ 返回值 undefined。但是,如果在严格模式下使用点运算符,则会发生编译时错误。下面的示例与上一个示例相同,只是 PrivateExample 类被声明为动态类: dynamic class PrivateExample { private var privVar:String = "private variable"; } var myExample:PrivateExample = new PrivateExample(); trace(myExample.privVar);// compile-time error in strict mode trace(myExample["privVar"]); // ou |
|||||||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |