`
kino
  • 浏览: 103032 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

as3备忘七-动态类(摘书)

    博客分类:
  • flex
阅读更多

    看了动态类,内容不多,也就不总结了,偷赖,把《ActionScript3.0 编程》一书中的内容摘录如下,博客类型写了原创,原创摘录^_^

-----------------------------------------我是华丽的分隔线---------------------------------------------------

 

动态类
“动态”类定义在运行时可通过添加/ 更改属性和方法来改变的对象。 非动态类(如 String类)是“密封”类。您不能在运行时向密封类中添加属性或方法。


在声明类时,可以通过使用 dynamic 属性来创建动态类 。例如,下面的代码创建一个名为
Protean 的动态类:

dynamic class Protean
{
    private var privateGreeting:String = "hi";
    public var publicGreeting:String = "hello";
    function Protean()
    {
        trace("Protean instance created");
    }
}

 


如果要在以后实例化 Protean 类的实例,则可以在类定义的外部向该类中添加属性或方法
例如,下面的代码创建 Protean 类的一个实例,并向该实例中添加两个名称分别为 aString和 aNumber 的属性:

var myProtean:Protean = new Protean();
myProtean.aString = "testing";
myProtean.aNumber = 3;
trace(myProtean.aString, myProtean.aNumber); // 测试 3

 


添加到动态类实例中的属性是运行时实体,因此会在运行时完成所有类型检查。不能向以这种方式添加的属性中添加类型注释。

 

您还可以定义一个函数并将该函数附加到 myProtean 实例的某个属性,从而向 myProtean实例中添加方法。下面的代码将 trace 语句移到一个名为 traceProtean() 的方法中:

var myProtean:Protean = new Protean();
myProtean.aString = "testing";
myProtean.aNumber = 3;

myProtean.traceProtean = function ()
{
    trace(this.aString, this.aNumber);
};

myProtean.traceProtean(); // 测试 3

 


但是,以这种方式创建的方法对于 Protean 类的任何私有属性或方法都不具有访问权限。而且,即使对 Protean 类的公共属性或方法的引用也必须用 this 关键字或类名进行限定。 下面的示例说明了 traceProtean() 方法,该方法尝试访问 Protean 类的私有变量和公共变量。

myProtean.traceProtean = function ()
{
trace(myProtean.privateGreeting); // undefined
trace(myProtean.publicGreeting); // hello
};
myProtean.traceProtean();

 

 

 -----------------------------------------我,华丽的分隔线,再次出现-------------------------------------

 

这其实和javascript中的机制类似,不同的是在javascript中,可以对任意对象,在任何时候,任意的添加属性和方法。而as3对此做了很大的限制,它们本来也是基于同一标准实现的。但as3已经有些接近强类型语言了。

 

最后,鄙视一下自己抄书的行为!!-_^

 

分享到:
评论

相关推荐

    Java.in.a.Nutshell 5thED 读书摘要 打印版

    Java.in.a.Nutshell 5thED 英文原版1000多页,是Java 1.5 的即基础又深入的教材。 读完后,摘书要点,编出100页 doc 打印版文件,用一面两页,双面打印,可制成20几页 随身带资料,复习用。

    课程设计基于python+mediapipe+opencv开发的手势识别系统源码(含超详细注释).zip

    课程设计基于python+mediapipe+opencv开发的手势识别系统源码(含超详细注释).zip个人经导师指导并认可通过的98分大作业设计项目,适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计,作为“参考资料”使用。 课程设计基于python+mediapipe+opencv开发的手势识别系统源码(含超详细注释).zip个人经导师指导并认可通过的98分大作业设计项目,适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计,作为“参考资料”使用。 课程设计基于python+mediapipe+opencv开发的手势识别系统源码(含超详细注释).zip个人经导师指导并认可通过的98分大作业设计项目,适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计,作为“参考资料”使用。 课程设计基于python+mediapipe+opencv开发的手势识别系统源码(含超详细注释).zip个人经导师指导并认可通过的98分大作业设计项目,适用人群:计算机,电子信息工程、数学等专业的大学生课程设计。

    yolov7 车牌检测 车牌识别 中文车牌识别 检测 支持双层车牌 支持12种中文车牌

    yolov7

    基于MQTT的智能宠物投喂系统.zip

    基于MQTT的智能宠物投喂系统:STM32、ESP8266、LCDST7789、压力传感器、按键中断修改定时投喂时间、云平台

    Qt进阶:优秀QT开源项目

    详细说明:https://blog.csdn.net/u010168781/article/details/138924179 1、Krita 2、QGIS 3、Kdenlive 4、Clementine 5、Syncthing 6、KDevelop

    2023-04-06-项目笔记 - 第一百三十四阶段 - 4.4.2.132全局变量的作用域-132 -2024.05.15

    2023-04-06-项目笔记-第一百三十四阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.132全局变量的作用域_132 - 2024-05-15

    matlab基于区间知识的大脑情绪学习算法.zip

    matlab基于区间知识的大脑情绪学习算法.zip

    Scrapy-0.8.win32.exe

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    setuptools-34.1.0-py2.py3-none-any.whl

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    基于python+PyQt5开发的智能照明控制系统上位机软件源码.zip

    基于python+PyQt5开发的智能照明控制系统上位机软件源码.zip

    pytest-4.6.3.tar.gz

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    麦肯锡战略咨询经验.ppt

    麦肯锡战略咨询经验.ppt

    Redis入门基础篇+源码(springboot、maven)

    Redis入门基础篇-源码

    基于Python+flask+echarts实现的天气展示系统源码.zip

    基于Python+flask+echarts实现的天气展示系统源码.zip

    人工水母优化算法JS MATLAB源码, 应用案例为函数极值求解以及优化svm进行分类,代码注释详细,可结合自身需求进行应用

    人工水母优化算法JS MATLAB源码, 应用案例为函数极值求解以及优化svm进行分类,代码注释详细,可结合自身需求进行应用

    pytest-3.2.5.tar.gz

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    四旋翼双环pid控制matlab版本R2020b源码.zip

    四旋翼双环pid控制matlab版本R2020b源码.zip

    1-3.py

    1-3

    基于YOLOV5部署性能比较 opencvDNN、ONNX onnxruntime Openvion源码.zip

    基于YOLOV5部署性能比较 opencvDNN、ONNX onnxruntime Openvion源码.zip

Global site tag (gtag.js) - Google Analytics