关于 AS2.0 的 Intrinsic 类
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-12
在ActionScript 2.0中,还存在另外一种类,那就是Intrinsic 类,但是事实上它却不是真正的类。它更像是与类相关的一些指导,它只有一个目的,那就是为已存在的类提供严格数据类型定义。Macromedia 用intrinsic类来为 在Flash内部的类和对象定义数据类型(你可以在Flash MX 2004的安装目录下的Classes文件夹下找到这些定义文件)。包括Array, MovieClip和Math等对象。但是,我们什么时候会去使用他们,我们什么时候需要去定义这样数据类型的类呢? 最有可能的情况是,当你作为一个开发者,并且正在开发一个基于ActionScript 2.0的Movie,这个时候你要在你的Movie中使用ActionScript 1.0,那么你就必须亲自定义一个intrinsic类了。 正如我们所知道的,ActionScript 1.0中是没有严格数据类型的。这也并不那么糟糕,但它也不是什么好事。在MX 2004及其后来的版本中,你需要这些数据类型定义来帮助你维护工程的有效性和高效性。这就是intrinsic类出现的原因。 我们假设你有一个非常完美的类,它可以帮助你完成现在新的工程中的大量任务,但可惜的是,这个类使用ActionScript 1.0,Ok, no problem,你可以把ActionScript 2.0和ActionScript 1.0无缝的结合。你不需要用ActionScript 2.0来重新写一遍你的类,你唯一所要做的事情是写一个instrinsic 类,并且罗列出已经使用的那些数据类型 [ intrinsic 类是一个已存在类的类型定义 ] 所有你需要做的事情就是去创建一个与原先类同名的ActionScript 2.0类,并且标记为instrinsic,就像你把类标记为dymanic(如果需要的话,也可以把它们两个同时加上)。在这个文件中,正确输入原先类所有的属性和方法,但不需要定义。这样,你就不需要完全重写一遍类,因为在新类中不许要包含方法和属性的定义。这里有一个这样的例子,代码如下: //在 Wonderful.as 中可以使用如下代码: intrinsic class Wonderful { var msg:String; function DosomethingWonderful(allow:Boolean):Void; } // ActionScript 1.0 class in main Flash movie var Wonderful = function(msg) { this.message = msg; }; Wonderful.prototype.doSomethingWonderful = function(allow) { if (allow) { trace(this.message +" is Wonderful!"); } }; var ItsA:Wonderful = new Wonderful("Life"); ItsA.doSomethingWonderful("yes"); // 错误: 类型不匹配; ItsA.doSomethingWonderful(true); // 正确 虽然这个类是用ActionScript 1.0来定义的,编译器仍旧可以辨别出数据类型不匹配的情况,比如在刚才的doSomethingWonderful方法中传入一个String类型的参数,这要归功于在Wonderful.as文件中定义的同名instrinsic类。有一件事情须要清楚的是,如果使用instrinsic类这种方式的话,在你原有类的定义中必须使用var关键字。否则就会有错误出现,因为编译器会认为你事实上正在使用一个已经存在的instrinsic类,而不是正在创建一个新的类。 MX 2004的组建也需要Intrinsic 类,因为新一代的组建在他们使用之前已经被编译。Intrinsic类给编译器一些信息,它需要一些组件内部已经包含的信息,这样当你在你的Movie中使用了一个组件时它可以检查它的用法已经数据类型是否匹配。instrinsic类并没有被编译到swc文件中,instrinsic类只是一些定义,并没有一些实质性的代码。 关键词: |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 圆形分格统计图表下一篇: 如何在powerpoint中使用高版本的swf文件
关于关于 AS2.0 的 Intrinsic 类的所有评论