关闭

关闭

关闭

封号提示

内容

首页 Flash_ActionScript3殿堂之路.pdf

Flash_ActionScript3殿堂之路.pdf

Flash_ActionScript3殿堂之路.pdf

上传者: xianbozhang 2011-10-10 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《Flash_ActionScript3殿堂之路pdf》,可适用于IT/计算机领域,主题内容包含本电子书仅供学习交流之用不得用于商业目的。前言ActionScript与RIA时代的到来具有高度互动性、丰富用户体验及功能强大的客户端是目前网络开发符等。

本电子书仅供学习交流之用不得用于商业目的。前言ActionScript与RIA时代的到来具有高度互动性、丰富用户体验及功能强大的客户端是目前网络开发的迫切需求。Adobe公司的FlashPlayer凭借其全球的桌面电脑占有率和跨平台的优势成为了事实上的下一代的RIA(RichInternetApplication丰富因特网程序)主力。Adobe公司于年年中推出了强大的ActionScript语言和支持ActionScript的新一代的虚拟机AVM。经测试AVM执行ActionScript代码比以前的ActionScript代码执行效率要快倍以上。ActionScript与ActionScript和有本质上的不同是一门功能强大的、面向对象的、具有业界标准素质的编程语言。它是FlashPlayer运行时功能发展中的重要里程碑。ActionScript是快速构建RichInternetApplication的理想语言。由于Adobe的Flex和Flash的成功在业界已经掀起了RIA应用新浪潮!雅虎(Yahoo!)、eBay、Google都相继推出基于ActionScript的RIA应用程序和ActionScriptAPI库。著名的应用案例有YahooMaps、eBayAIR拍卖程序、GoogleAnalytics和GoogleFinance、微软的Wallop社区等等。ActionScript有以下优势:对面向对象编程(OOP)语言的完全支持。核心语言基于ECMAScript(ECMA)标准对OOP架构深层优化。彻底更新的显示对象系统架构。采用了先进的EX使XML成为ActionScript语言的内建数据类型(nativesupport)。操作直白、简单。与ActionScript比较极大地减轻了XML数据处理工作量。全面支持正则表达式。正则表达式也成了ActionScript的内建数据类型ActionScript对字符串的处理能力空前增强。标准的DOM事件实现。FlashAPI全面支持事件机制。前言异常处理机制。异常包括信息全面、易于调试和处理。FlashAPI全面支持异常处理机制。此外ActionScript积极迈向开源赢得开源社区的欢迎。包括AVM虚拟机开源源码赠送与Mozilla的Tamarin项目。Tamarin项目的开源意味着ActionScript虚拟机的开源。从而ActionScript也将成为智慧无穷的开源社区的首选!年月日推出了AdobeIntergratedRuntime(AIR)Beta版正式实现新一代的RIA概念跨系统运行时(crossoperatingsystem)的RIA程序。首次允许RIA程序访问本地资源并进行离线存储跳出了浏览器的限制模糊了浏览器和桌面程序的界限在线和离线的界限。AIR具有革命性的前瞻视角被业界誉为RIA的第二次革命。而ActionScript就是用于开发AIR程序的主要核心语言。ActionScript的时代已经到来!我们正在迎接它的辉煌!本书的目标与特色本书目标ActionScript开发界缺少一本真正的以面向对象思想来讲解的书籍缺少从ActionScript语言架构上来分析的书籍。无论国内还是国外目前都缺少这样一本书。很多ActionScript开发人员都只停留在知道OOP语法、会熟练运用ActionScript提供的类库API阶段而对OOP思想和ActionScript整个系统架构脉络一知半解。买椟还珠这是很可惜的。本书尝试以系统架构师的眼光以面向对象思想为主轴讲述ActionScript中面向对象的精髓和应用。从ActionScript系统架构的高度清楚明白地讲解ActionScript的API设计原因、原理和应用。面向对象思想和ActionScript系统架构就是RIA开发的任督二脉打通之后你就会觉得所有ActionScript知识都是共通共融、浑然一体的从而再学习广阔的ActionScript开源世界中的其他东西时也会觉得高屋建瓴、势如破竹、轻松如意。在本书中对于ActionScript中的面向对象讲解的广度和深度都远超过目前言前所有书籍。从广度上说涵盖了OOP语法、重要API的运用、核心类包的结构……从深度上说详细地解释了面向对象实现上的重大变化和实现细节透彻地阐述了新一代的显示编程架构及应用。比如ActionScript的几大新特色、重要的OOP法则、ActionScript语言本身在哪些地方使用了设计模式。从实用上说每一个重要的应用都有实际的代码例子相结合例如有类绑定的种种实际做法和UIMovieClip类与Flex结合应用等。本书不仅仅介绍相关语法和运用更重要的是解释如何设计与怎样使用。本书希望把你真正带往ActionScript编程的殿堂。本书特色本书是一本“面向原因式”的书籍(WhyOrientedBook)。让你对所有细节的设计用意和原因清清楚楚。以ActionScript语言设计的本意和思路深浅结合讲解各个部分。尽可能使读者在了解ActionScript语言的同时更好地把握ActionScript语言的思想。重视实际运用例子丰富。不算文中代码片段仅完整类文件就近两百个为编程提供实际的指导。本书在撰写所有部分时力求达到两点:与实际的代码例子结合讲述ActionScript语言关于该部分的内部实现和技术细节。以面向对象思想(OOP)为重点例子和比喻结合。系统讲述了OOP思想及其在ActionScript中的运用。并结合ActionScript本身的语言架构加以详细的分析。横向比较其他优秀OOP语言。本书中有大量涉及到ActionScript和Java、C#等语言相比较的地方使得已有其他OOP语言基础的读者可以快速了解ActionScript的独特之处快速上手。清楚地阐述ActionScript和ActionScript的不同及原因。对于ActionScript大部分相对于ActionScript的改动本书不但一一指出还从理论上解释为何改变以及相关的实现使ActionScript程序员快速上手ActionScript并对ActionScript代码移植有相当大的帮助。本书为何而写前言长时间以来国内ActionScript方面的书籍总是落后国外同类书籍一年到两年很大程度上影响了ActionScript在国内的推广和国内爱好者水平的提高。本书作者从事大型ActionScriptRIA项目开发已有数年经验在FlashPlayer出现、ActionScript推出测试版开始就已开始研究其架构积累了丰富的第一手开发笔记。因此本书的写作与国际ActionScript的研究发展是完全同步的。笔者在电子工业出版社的大力协助下以严谨的学术态度撰写本书。笔者衷心期望本书出版时不仅是国内ActionScript界第一本与国际同步的书籍也能抛砖引玉加速推动国内ActionScript的研究开发步伐。本书为谁而写本书所讲的知识用于Flash、Flex下的ActionScript应用程序开发。本书的读者应具有基本的编程知识(不限语言)至少应理解变量、循环、函数等基本编程概念。写一本从ActionScript初学者、ActionScript中级爱好者到其他OOP语言(如C#、Java)开发者都能看的书是一件很有野心的事事实上也难以完全做到。但据笔者观察国内ActionScript爱好者水平参差不齐。有部分ActionScript高手但更多的是ActionScript或中级爱好者以及准备从FlashDesigner(Flash设计)转向ActionScript的新手。更有广大的其他OOP语言的读者比如C#、Java等拥有良好的OOP基础准备转向ActionScript。随着RIA革命的到来未来还有更多的、潜在的ActionScript爱好者。这样的现状促使我向这个不可能的任务做一些力所能及的努力。经过分析这几个群体有比较明显的特征使得我可以在讲述的同时有所侧重择善结合。对初学者你可能喜欢比较浅显的比喻和详细的讲解。有时告诉你原因比简单罗列代码告诉你怎么做可以更快让你理解根本进入状态。本书正是这样一本WhyOrientedBook。本书与其他书的一个最大不同就是“面向原因”(WhyOrientedBook)的讲述方式让你对每部分内容的由来清清楚楚。前言如果你对ActionScript一点都不熟那么恭喜你你赶上好时候了。ActionScript比以往的ActionScript或ActionScript要好学很多好记很多。原因就是ActionScript的结构更加标准和统一。不信举个小例子在ActionScript中创建一个视觉元件的实例有attachMovie()、createChildAtDepth()、createClassObject()……等八九种方法每种方法都有自己的参数而且要手动管理元件深度。而在ActionScript中一切都统一为new元件名()就可以了。深度统一且自动管理。这样的改进实在太多了!所以抛开相对混乱的ActionScript和ActionScript放心大胆地学习ActionScript吧。能直接学习ActionScript绝对是新手的福气!对于ActionScript中级爱好者你往往具有一定水平和能力ActionScript各个方面都有涉猎但都不深。你需要有针对性的细节点拨和思路指导。你往往不喜欢婆婆妈妈的讲解最喜爱具体的代码例子。但往往对自己掌握的程度估计不足对自己知道的东西不加以深究和高手的差距就在这里。本书用章节“*”号(有相当数量)和进阶知识这两个部分来针对这个群体。众所周知知识的讲解应当是一个整体不能每个知识点都有初级、中级、高级之分。你清楚的东西对你而言就是初级。你不清楚的东西往往就是高级。你知道并了解但是不知道细节的东西那就是中级。因此对于中级爱好者我建议在你快速翻完了本书所有“*”号和进阶知识之后有空时你最好从头详细读一下其他章节。我相信你绝对不虚此“读”。很多有用的知识点和ActionScript技术上的实现细节你可能还不清楚。举个小例子比如“加Label的continue、break的用法”不少读者可能就不太清楚。加油高手的称号指日可待!ActionScript高级爱好者你有一定的开发经验和知识水平知道很多ActionScript细节。但是ActionScript和ActionScript区别如此之大你会感觉到有点沮丧。但沮丧不久你就会被ActionScript标准的架构、优雅的实现和无限的潜能所吸引。你甚至发现ActionScript其实比ActionScript、ActionScript要好学很前言多好记很多。再过不了多久你会发现ActionScript是如此好用如此方便如此先进以致于不可能再转回ActionScript了。这时候就逼你的老板用ActionScript开发产品吧。It’syourtime。本书中有大量地方标注了和ActionScript不同的地方可以让你快速地进入ActionScript的工作状态。并且提供了很多ActionScript中独有的技术细节和小技巧为你日后的开发扫清很多小地雷。对C#、Java爱好者和开发者恭喜你其实ActionScript比它前辈的任何一个版本都接近C#、Java这两种语言。你学习ActionScript将是真正的事半功倍。你真正想要知道的是ActionScript和C#、Java有哪些不同点?ActionScript编程有哪些部分需要重点学习?API有哪些不同哪些是重点?在ActionScript中哪些细节需要注意?在本书中对大部分涉及到语言差异的地方都做了标注。你要做的是看一下每章前面的导读抓住重点快速浏览章节。融会贯通这些基本的不同点之后重点掌握ActionScript视觉编程部分和熟悉一些关键的API。当然我特别建议你有空时能从头详细读一遍本书很多ActionScript独有的技术细节和小技巧可能是你需要了解的。你会发现ActionScript编程是这么的方便和美妙!ActionScript这个标准的OOP语言用起来是这么熟悉和顺手!和Flash合作编出的界面是这么漂亮优雅易于拓展!强烈推荐你花点时间看一看第章。本书结构第部分:ActionScript语言基础第部分:ActionScript面向对象编程第部分:ActionScript核心类第部分:ActionScript主要的FlashPlayerAPI第部分:ActionScript视觉编程如何使用本书本书建议按照章节顺序阅读。初级爱好者读到带“*”号的章节时如有不前言明白的地方可以暂时跳过以后有时间时回头再读。每章都有“本章导读”读者可根据具体的“章节导读”来进行阅读。全书共分个部分。目录第部分:ActionScript语言基础第部分:ActionScript面向对象编程第部分:ActionScript核心类第部分:ActionScript主要的FlashPlayerAPI第部分:ActionScript视觉编程。附书光盘内容为书中实例源文件和本书中重点操作视频演示教程。本书适合有基础编程知识(不限语言)的Flash、Flex、AIR爱好者和开发人员尤其适合ActionScript读者。本书还为Java、c#等其他OOP语言爱好者学习ActionScript提供了专门的导读和一定的横向比较。目录Summaryofcontents第部分ActionScript语言基础第章ActionScript语言介绍与开发环境第章ActionScript语言基本元素第章ActionScript流程控制第章ActionScript中的函数及高级使用技巧第部分ActionScript面向对象编程第章类和对象从定义到原理第章ActionScript中的封装:类的成员、类、包与访问控制第章命名空间第章复合与继承第章多态第章抽象类和接口第部分ActionScript核心类第章ActionScript核心类和全局函数第章数组:Array第章字符串:String第章强大的正则表达式:RegExp第章XML数据处理第章异常和错误的捕捉与处理第部分ActionScript主要的。FlashPlayerAPI第章ActionScript目前主要的API概览第章事件发送和处理第章网络通信基础第部分ActionScript视觉编程第章ActionScript视觉编程精要第章DisplayObject类与矢量图、位图第章容器DisplayObjectContainer与Sprite、MovieClip第章FlashCS:库元件的类绑定与Stage、文档类第章显示编程与事件、人机交互第章ActionScript动画编程第章Flash创作工具和Flex协作开发组件第部分ActionScript语言基础第章ActionScript语言介绍与开发环境本章简略介绍ActionScript语言的历史、新增特色和开发工具并讲解了各种开发环境设置以及第一个ActionScript程序。本章导读对于ActionScript初学者本章将带你了解整个ActionScript语言的发展、变化和现状让你有一个总体的印象。其中节讲述新特色的部分如果你暂时不理解没有关系可以跳过并不影响后续学习。本书的目标就是为了在日后的学习过程中让你一步步地掌握ActionScript所有的强大功能。节编译流程也可以暂时跳过不看。对于ActionScript开发人员了解ActionScript的发展历史以及AVM、FlashPlayer、AIR运行时、ABCbytecode、MXML等这些重要概念对日后的编程很有助益请仔细阅读。本章中将介绍ActionScript的新特色笔者刚了解到其新特色时就兴奋不已大多数人应该都会有同感吧。被ActionScript折磨了这么多年使用ActionScript这些强大工具实在是太开心了。节“编译流程”讲解了一些底层的编译知识请留意。对于其他OOP语言开发人员了解ActionScript的发展历史、市场现状和开源程度一定会让你对ActionScript刮目相看。因为ActionScript比以前的ActionScript语言已经有了本质的飞跃。ActionScript的新增特色中有很多独有的强大功能非常适合因特网应用程序开发。试问《ThinkinginJava》的作者BruceEckel为何如此推崇Flex和ActionScript?Mozilla为何使用ActionScrpt的语言引擎来开发下一代浏览器的核心JavaScript引擎?AdobeAIR为何引起业界具体的震动和追赶?这些都说明了什么?你可能已经是一个熟练的程序员本章的小小愿望便是:想勾起你学习这门崭新语言的强烈兴趣与你分享技术飞速发展所带来的快乐。第章ActionScript语言介绍与开发环境ActionScript介绍ActionScript与ActionScript和有本质上的不同是一门强大的、面向对象的、具有业界标准素质的编程语言。他是FlashPlayer运行时功能发展中的重要里程碑。ActionScript是快速构建丰富互联网程序(RichInternetApplication简称RIA)的理想语言。从年起RIA的浪潮已经席卷而来。网络应用中对前端客户程序的复杂度、用户体验的要求已越来越高。RIA概念最先由Macromedia公司(现已并入Adobe公司)在数年前提出并致力推广。从年到年业界巨头公司纷纷推出了自己的RIA技术追赶Flash比如Sun公司的JavaFX技术、微软Sliverlight(前身为WPFE)。目前就这些追赶者的技术而言不论是在市场占有率(FlashPlayer在全球电脑上的普及率达)还是在技术成熟、全球开发群体规模、开源项目、已有市场运用上都无法和FlashPlayer应用程序相匹敌。而Adobe的RIA平台FlashPlayer占有绝对优势。除了已经广被接受的RIA概念外Adobe于年月日推出了AdobeIntergratedRuntime(AIR)Beta版正式实现新一代的RIA概念跨系统运行时(crossoperatingsystem)的RIA程序。首次允许RIA程序访问本地资源并进行离线存储跳出了浏览器的限制模糊了浏览器和桌面程序的界限以及在线(online)和离线(offline)的界限AIR的前瞻视角时革命性的。不论是FlashPlayer程序还是AIR程序都真正支持跨系统应用其核心语言都是ActionScript。不仅如此下一代Firefox浏览器核心JavaScript引擎也是基于ActionScript的虚拟机AVM开发的。与此同时Adobe推出的ActionScript程序开发工具Flex也越来越受到广大的Java社区和其他OOP社区的关注和青睐。《ThinkingInJava》的作者BruceEckel对Flex和ActionScript赞誉有加并多次在公开的讨论会上推广。ActionScript已经毫无疑问地成为目前和下一代因特网应用程序编程语言的主流。第章ActionScript语言介绍与开发环境ActionScript发展历史简述ActionScript前身出现于FlashPlayer中用于控制Flash内容并进行简单的交互性脚步编写。它并不复杂其语法和语义与ECMAScript也不相同。ActionScript是在Flash的时代诞生的这时的版本就已经具备了ECMAScript标准的语法格式和语义解释。随着FlashPlayer的版本更新越来越多的ECMA语法和语义被纳入到ActionScript的API当中去。但是核心语言的编译处理及表现方式都是延续了Flash的ActionScript的标准。甚至于到后来的Flash它里面的ActionScript的核心解释机制仍然与FlashPlayer有着很多相同之处。ActionScript可以看成上ActionScript的面向对象编程包装版。ActionScript的代码编写引入面向对象编程的方式有良好的类型声明而且分离了运行时和编译时的异常处理。但是ActionScript只是在编译阶段支持这些标准OOP语法在运行时仍然使用是ActionScript的模式。因此ActionScript和ActionScript在性能上不会有本质的区别。虽然它们在格式上遵从了ECMA的语言方案但是并不真正ECMAScript标准。ActionScript对OOP语言的支持远远谈不上全面但是它是首次将OOP编程概念引入到了Flash开发界。到FlashMX时ActionScript已经渐渐被广大Flash开发者所接受。在年月Macromedia引入了FlashPlayer此时基于ActionScript的RIA(RichInternetApplication丰富互联网程序)开发开始进入新的热潮。FlashPlayer提供革命性的新表现力和呈现性能包括位图效果、滤镜、Alpha视频和一个用于Flash视频的新的视频编解码器扩展了运行时的功能并改进了外部API之间的Flash至浏览器通信。除此之外还支持综合的、复杂的应用程序的文件上传和下载功能所有这些新功能都导致Flash内容在Internet上快速衍生推动了FlashPlayer在其历史中最快速地采用。诸多业界巨头争相采用Flash做前端平台开发比如Yahoo的Map、Youtube的视频、Google的Finance和analysis、Microsoft的RIA社区Wallop等等。这些功劳有不少要归功于AVM即ActionScriptVirtualMachine(Action第章ActionScript语言介绍与开发环境Script虚拟机)这是用于执行ActionScript代码的虚拟机。它增强了FlashPlayer以前播放器的功能并使范围广泛的交互媒体和RichInternetApplication成为可能。但是随着RIA浪潮不断扩大大型项目连接出现新的需求不断生产开发人员已开始将AVM推至其极限。对ActionScript开发界来说不管时语言还是在性能上都亟需一个重大的突破。FlashPlayer和AVM官方的FlashPlayer和ActionScript开发团队认识到发展现有引擎将有着太多限制而无法继续。经过这些可敬的人们长期不断的努力后FlashPlayer的历史转折点到来了。FlashPlayer版本首次引入了ActionScript和新一代的ActionScript引擎ActionScriptVirtualMachine(AVM)。ActionScript基本上是ActionScript引擎的完全重写。AVM是一个新的、高度优化的虚拟机(称为AVM)。AVM显著超越了使用AVM可能达到的性能。ActionScript在其中执行可以达到前所未有的高效率和高性能。结果ActionScript代码执行的速度最多可以比原有ActionScript代码快倍。除了提高的性能和更加有效的内存利用之外ActionScript还提供一个编程模型该模型对于来自其他平台的开发人员来说将非常熟悉。ActionScript不仅语言行为更加一致和标准还拥有数百个新的API用于诸如EX、正则表达式和二进制套接字等功能。这些新功能使开发者对内容和应用程序有了更好的控制。另外还增加了类、界面、包、名称空间和强制类型化变量的可选编译模式这使得ActionScript对于大型应用程序开发更有吸引力。详细的特色介绍见下节。这些新的语言功能是基于ECMAScriptNetscapeProposal【参考文献】标准的。Adobe是开发ECMAScriptEdition(ES)标准的ECMA国际编程语言技术委员会(TCTG)的积极参与者。ActionScript的未来版本预期与新兴的ES标准完全兼容。ActionScript的语法对其他主流OOP语言开发者来说将更加熟悉和一致。第章ActionScript语言介绍与开发环境支持ActionScript的AVM成为ActionScript执行的主要虚拟机。为了向后兼容考虑FlashPlayer将继续支持较旧的AVM。目前FlashPlayer中就有两套虚拟机:AVM和AVM。Macromedia和Adobe的合并年首次引入ActionScript语言的FlashPlayer版本推出不久Macromedia被Adobe收购。两家都是成功的公司进行了一次成功的联姻。年月日Flash创作工具Flash正式发布并且命名为FlashCS成为了AdobeCreativeStudio中的一个成员。从此Flash创作与Adobe公司的矢量图形软件Illustrator、业界标准的位图图像处理软件Photoshop完美地结合在一起。互相之间的文件转换和导入支持更加完美。ActionScript与开源世界不论是语言还是技术只有开源并获得广大开源社区的智慧才会有超强的生命力和号召力。ActionScript也一样。值得高兴的是Adobe一直在往开源的方向大步迈进。年月日Adobe宣布将ActionScriptVirtualMachine(AVM)的代码捐献给MozillaFoundation。因此Mozilla启动了一个新的开发源码项目Tamarin。Adobe和Mozilla希望以此促进这种创建Web应用程序的标准化语言的推广。Tamarin项目的目标是实现一个高性能的开放源码的ECMAScript第四版(ES)语言规范实现。Mozilla在SpiderMonkey中使用TamarinVirtualMachine。优秀的开源浏览器Firefox和其他基于Mozilla的产品将嵌入SpiderMonkey作为核心JavaScript引擎。Adobe将继续在AdobeFlashPlayer的ActionScriptVirtualMachine中使用这些代码。下一代的JavaScript也将全面兼容ES标准因此和ActionScript异曲同工。学习ActionScript后再学习JavaScript基本上没有什么障碍。除了AVM源码开源外Adobe还致力于Flex的开源。Adobe计划在年底将几乎整个Flex平台组件在MozillaPublicLicense下发布包括以下部分:Flex编译器Flex命令行调试工具源代码查看工具测试框架Flex核心组件库(包括AIR组件)封装脚步FlexAjaxBridge(将会改用MPL协议发布)。第章ActionScript语言介绍与开发环境目前民间基于ActionScript的开源项目数量飞速增长涉及到各个方面比如D应用的PapervisionD、开源物理引擎类库APE、Flex高级组件类库FlexLib等等。http:wwwosflashorg、http:codegooglecom、http:wwwriaforgeorg有诸多ActionScript开源项目。著名的sfnet上也有一定数量。ActionScript的特色ActionScript由两个部分组成:核心语言和FlashPlayerAPI。核心语言定义编程语言的基本构建块如语句、表达式、条件、循环和类型。FlashPlayerAPI是由代表FlashPlayer特定功能提供对FlashPlayer特定功能访问的类组成的。因此分两部分讲述ActionScript的新特色。核心语言新特色ActionScript核心语言与ECMAScript标准兼容并引入了一些其他领域新的或更强的功能。所有这些功能在本书第部分和第部分中有专门论述。以下是部分新功能的摘要介绍。运行时异常(RuntimeException)处理机制在ActionScript及之前版本中许多运行时错误都是静默失败(SilentFailure)。这样做虽然有些时候可以确保FlashPlayer继续运行用户不被打扰。但是这样做的后果是缺少错误反馈。当发生运行时异常的时候还可以提供使用含有批注的堆栈跟踪批注中包含源文件和行信号帮助开发人员快速找出错误及时得到反馈改进了调试效率并利用处理机制使应用程序更加健壮(Robust)。运行时类型(RuntimeTypes)在ActionScript中类型检查只停留在编译阶段在运行时所有值的类型都是动态指定的并没有类型信息。也就是说ActionScript的类型检查并没有运行时支持。在ActionScript中类型信息在运行时仍然保留有很多实际用途。FlashPlayer支持运行时类型检查增强了系统的类型安全性。类型第章ActionScript语言介绍与开发环境信息还可用于以本机形式表示变量(nativemachinerepresentation)从而提高了性能并减少内存使用量。密封类(SealedClasses)ActionScript中在运行时所有的对象都可以动态添加属性和方法。ActionScript支持密封类的概念。密封类只拥有在编译时定义的固定属性和方法集无法在运行时添加其他属性和方法。密封类对象实例没有内部哈希表从而提高内存使用效率和访问性能。密封类的支持使得更加严格的编译时检查成为可能从而帮助开发人员写出更加可靠的程序。动态类也可能通过使用动态关键词dyanmic得到。闭包方法(MethodClosure)这是针对ActionScript及之前版本的改进以前函数中this关键字无法记住自身指向的原始对象给事件运用带来了不少困扰只能使用mxutilsDelegate类来解决。现在ActionScript使用闭包方法可以自动记起它的原始对象实例。此功能对于事件处理非常有用。使用EX理论处理XML数据ActionScript完全支持先进的ECMAScriptforXML(EX)【参考文献】。这使得XML就像ActionScript语言的一种内建数据类型(nativedatatype)而不是传统的XML解析API。EX使得XML数据处理自然简单成倍降低所需要的代码数量显著提高了开发效率。正则表达式ActionScript实现了ECMAScript语言规范(ECMA)中定义的正则表达式拥有强大的字符串处理功能。ActionScript从内部支持(nativesupport)正则表达式帮助开发人员快速搜索和处理字符串。命名空间ActionScript中的命名空间是独有的一种访问控制机制其概念不同于其他OOP语言中的定义而是来源于XML语言中命名空间的概念。ActionScript中所有访问控制说明符public、private、internal、protected其本质都是通过内建命名空间实现的。用户也可以自定义命名空间定义出不同的访问控制权限。第章ActionScript语言介绍与开发环境新基元数据类型ActionScript中数值类型只有一种双精度浮点类型Number。ActionScript新增了int型和uint型整数数值类型。新整数类型的引入使ActionScript可以更好地利用CPU的快速整数数学功能。FlashPlayerAPI功能的新特色FlashPlayerAPI是提供给ActionScript语言的一组类和函数用于使用FlashPlayer的功能。通过这些类和函数开发人员可以使用ActionScript代码访问到FlashPlayer运行时(Runtime)的许多功能。FlashAPI对于核心语言是一个非常重要的补充。FlashPlayerAPI的架构是全新的并且更加直观。它包含了很多的新类允许开发人员进行更低层的对象操作。本节不可能涵盖所有新增类但将扼要介绍FlashAPI中新增的几个主要特色。DOM事件模型ActionScript中已经初步应用了这个模型ActionScript中事件系统更加清晰、更加有效地模仿了WCDOM事件规范模型。该事件模型提供了生成和处理事件消息的一种标准方法从而应用程序内的对象可以交互和通信保持状态并对更改做出响应。显示列表API这是ActionScript对显示编程的重大更新。显示构架彻底改变取而代之的是一个清晰、稳健、高效的视觉抽象结构。三大概念显示对象、可交互对象、容器对象清晰划分了抽象层次。新的Spring类是一个轻型的容器犹如去掉时间轴的MovieClip对象更适合作为编程是所需要的基本容器。新的Shape类代表原始矢量图形。这些类可以使用新的操作符自然地进行实例化并可以在任何时候动态地重定义父级。深度已经可以由显示列表API自动管理不需手工分配了。另外由于有了显示列表的概念遍历了对象更加轻松简单。除了这两个重大特色之外文本显示的改进和二进制的支持也可以算是可圈可点的两个特色。文本显示由专门的flashtext包负责新的动态文本类TextField中提供了更多的底层控制API使完美能更加精确地控制文本。二进制的支持主第章ActionScript语言介绍与开发环境要由ByteArray来实现ByteArray对象实现了二进制数据的读取、写入和处理从而使FlashAPI拥有更加强大的数据处理能力。ActionScript程序开发工具开发ActionScript程序的工具目前主要有Flash创作工具AdobeFlashCSMXML语言和ActionScript相结合的IDEAdobeFlexBuilder以及FlexSDK。目前推出的AIR运行时程序可以使用上述任何一种工具开发。本书的所有代码示例都在FlashCS、Flex和FlexMoxieBeta中编译通过。FlashCSFlashCS是Macromedia和Adobe合并后推出的第一款Flash创作工具并入了AdobeCreativeSuite中称为FlashCS。FlashCS是目前唯一可以创作基于ActionScript的SWF的创作工具。Flash及之前的版本都不能创作基于ActionScript的SWF。FlashCS中有一套自己的FlashCS组件处于fl*包大部分位于flcontrols*中但是数量少、架构简单、功能不多不适合开发常规的大型RIA程序。FlashCS主要用于设计Flash美工、动画以及利用类绑定来开发ActionScript高级组件。Flex、Flex及FlexSDKFlex技术是Adobe的又一得意之作。Flex技术允许开发者使用直观地基于XML的MXML语言来定义客户端应用程序。编译的程序可以在拥有FlashPlayer版本的FlashPlayer运行时环境中运行。运用Flex技术可以在企业内部或在Web上创建并交付丰富互联网程序(RIA)是目前主流的RIA开发解决方案之一。Flex框架是基于组件的开发框架用于开发可由FlashPlayer运行的丰富互联网程序。Flex框架的类都包括在mx*包中种类丰富功能齐全尤其是组件框架的设计非常见功力。使用Flex开发RIA确实可以事半功倍。第章ActionScript语言介绍与开发环境MXML语言本质依然是构建于ActionScript语言之上的编译时会转换成相应的ActionScript代码。MXML的标签就相当于ActionScript的一个类。可以使用FlexSDK、FlexBulider或FlexBuilder进行ActionScript程序开发。FlexSDK是免费的开发工具包包含Flex类库、MXML和ActionScript编译器。FlexBuilder和FlexBuilder都是基于Eclipse的IDE可以跨系统使用。FlexBuilder和FlexBuilder都是针对ActionScript和FlashPlayer平台的。FlexBuilder与FlexBuilder最大的不同在于FlexBuilder集成了对AIR(AdobeIntergradedRuntime)的支持可以直接开发AIR项目。FlexBuilder必须要通过下载一些扩展组件才可以开发AIR程序。此外FlexBuilder中集成了FlexComponentKitforFlashCS的一些核心类文件使得和FlashCS的协作更加方便。FlexComponentKitforFlashCS可以单独下载并安装也可以和FlexBuilder协作。*ActionScript程序的编译流程ActionScript代码将被编译成FlashPlayer运行时可以理解的ActionScriptbytecode(字节码)简称为ABC文件。但是ABC文件不可以单独运行必须放入SWF(swf)文件中才可以被FlashPlayer执行。SWF文件是Flash文件格式它里面放着一堆可以被FlashPlayer所理解的标签容纳着媒体资源(如图形、音频等)和ABC字节码。FlashCS工具使用的源文件后缀名是“fla”fla文件中包含元件库里面有创作的图形、动画元件以及嵌入的媒体资源等。fla文件中记录着元件里面的ActionScript代码以及要使用到的外部ActionScript代码文件连接在编译时将所有ActionScript代码编译成ABC文件并和用到的库元件一起编译成SWF文件。第章ActionScript语言介绍与开发环境如果是FlexBuilder且使用了MXML语言那么Flex编译器(mxmlc)会先将MXML语言转换成相应的ActionScript代码再从ActionScript代码编译成ABC字节码最好放入其他嵌入的媒体资源编译成SWF文件。熟悉开发环境和第一个“Helloworld”例子本节分FlashCS和FlexBuilder两部分讲述。为了节省本书篇幅FlexBuilder的安装不再赘述请读者参看

用户评论(1)

0/200
  • csanycall 2012-07-15 08:11:36

    毛线,只有1-16章的,不全,汗死

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/49
仅支持在线阅读

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部