分享
 
 
 

关于Flash AS2.0中的 Intrinsic 类

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

关于Flash AS2.0中的 Intrinsic 类

作者: senocular 翻译:LeeFJ

原文地址:http://www.kirupa.com/developer/oop2/AS2OOPindex.htm

在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 类,并且罗列出已经使用的那些数据类型

screen.width-333)this.width=screen.width-333" border=0

[ 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类只是一些定义,并没有一些实质性的代码。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有