ActionScript学习一
一、什么是AcionScript? 随手翻开一本技术类书籍,第一章第一节多半以“What's xxxx”做标题,要学习学一样技术,当然最先要弄清它是什么。用最简单的一句话定义:AS是一种脚本语言。 这句话里有两个关键词: 可能有朋友注意到,刚才谈到Flash的源代码外露的问题时,有这样一句话“很多著名的反编译软件....”,即曰“解释”,又何以“反编译”?并非是我出尔反尔,Flash AS的的确确是通过解释执行的,而用来解释+执行的工具,就是大名鼎鼎、拥有98%浏览器占有率的Flash Player。然而,在你把源程序放心交给Flash Player去执行之前,必须要经过一个“编译”的过程,它将源代码转换成一种可以被FP识别的标签(tag)。而这些标签被以ZIP方式压缩存储在.swf格式的文件中。当然,一个.swf文件中除了包含AS,还有图形、声音等资源。在“解释”之前先进行“编译”并非是多此一举,编译的好处主要有三个: 一、经过编译后的源代码,以标签(称为“目标代码”)的形式存在,更容易被Flash Player识别,因而可以提高解释速度。 这么说来,把AS称为一种纯粹的解释型语言就有失妥当了,我们可以把它归类为一种“混合型”语言。混合型语言的特点是,源代码先经过编译,生成一种“中间代码”,在由相应的平台(Flash Player)去解释执行中间代码。混合型语言中的佼佼者当属现在同样火热的Java语言:Java语言的源代码(.java)经过编译,得到字节码(.class),在由平台(JVM)去解释执行字节码。不幸的是,混合型语言的这种这种“编译”过程通常是可逆的,无论是java还是flash,都可以根据其中间代码,反编译得到源代码。而且,反编译swf的难度要远远低于class,而在编译过程中加密要复杂的多,这也就是为什么如今flash反编译软件横行的原因。 Flash Player的另一个优势是提供了跨平台性,无论何种平台,只要拥有内嵌Flash Player的浏览器或是独立的Flash Player播放器,就可以欣赏Flash,而swf文件本身不需要任何的改变,不同的只是Flash Player在各个平台的实现方式而已。这一点也是它能够广泛应用于互联网的原因之一。 可能有的朋友想到Flash的另一种播放方式,即Projector方式,通常我们所见到的是一个.exe文件。然而需要注意的是,以Projector方式发布的Flash,是不具备跨平台能力的。只要明白了Projector的原理,就可以很容易理解这一点,其实Projector仅仅是简单的将一个独立的Flash Player播放器和swf文件整合,前面提到,不同平台的Flash Player实现不同,因此,被整合到Projector中的swf无法使用不同的Flash Player播放,自然也就失去了其跨平台性。Projector真正的好处在于,可以让原本没有Flash Player的机器,在不安装FP的情况下,浏览Flash。其效果大致相当于你去买DVD光碟,但是你没有DVD机,因此卖光碟的小贩免费送了你一台DVD机一样。当然,现实中不可能有这样的好事。:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |