快速业务通道

Flash AS3教程:类属性的属性

作者 凌众技术 来源 网页制作 浏览 发布时间 2012-03-09
它。在 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号