本章简略介绍ActionScript3语言的历史、新增特色和开发工具,并讲解了各种开发环境设置,以及第一个ActionScript3程序。

本章导读

对于ActionScript3初学者,本章将带你了解整个Action Script语言的发展、变化和现状,让你有一个总体的印象。其中1.2节讲述新特色的部分,如果你暂时不理解,没有关系,可以跳过,并不影响后续学习。本书的目标就是为了在日后的学习过程中,让你一步步地掌握ActionScript3所有的强大功能。1.4节编译流程也可以暂时跳过不看。

对于ActionScript2开发人员,了解ActionScript3的发展历史,以及AVM2、Flash Player、AIR运行时、ABC bytecode、MXML等这些重要概念对日后的编程很有助益,请仔细阅读。本章中将介绍ActionScript3的新特色,笔者刚了解到其新特色时就兴奋不已,大多数人应该都会有同感吧。被ActionScript2折磨了这么多年,使用ActionScript3这些强大工具实在是太开心了。1.4节“编译流程”讲解了一些底层的编译知识,请留意。

对于其他OOP语言开发人员,了解ActionScript3的发展历史、市场现状和开源程度一定会让你对ActionScript3刮目相看。因为,ActionScript3比以前的ActionScript语言已经有了本质的飞跃。ActionScript3的新增特色中,有很多独有的强大功能,非常适合因特网应用程序开发。试问,《Thinking in Java》的作者Bruce Eckel 为何如此推崇Flex和ActionScript3?Mozilla为何使用ActionScrpt3的语言引擎来开发下一代浏览器的核心JavaScript引擎?Adobe AIR为何引起业界具体的震动和追赶?这些都说明了什么?你可能已经是一个熟练的程序员,本章的小小愿望便是:想勾起你学习这门崭新语言的强烈兴趣,与你分享技术飞速发展所带来的快乐。

1.1ActionScript3 介绍

ActionScript3,与ActionScript2和1有本质上的不同,是一门强大的、面向对象的、具有业界标准素质的编程语言。他是FlashPlayer运行时功能发展中的重要里程碑。ActionScript3是快速构建丰富互联网程序(Rich Internet Application,简称RIA)1的理想语言。

从2006年起,RIA的浪潮已经席卷而来。网络应用中对前端客户程序的复杂度、用户体验的要求已越来越高。RIA概念最先由Macromedia公司(现已并入Adobe公司)在数年前提出并致力推广。从2006年到2007年,业界巨头公司纷纷推出了自己的RIA技术追赶Flash,比如Sun公司的JavaFX技术、微软Sliverlight(前身为WPF/E)。目前,就这些追赶者的技术而言,不论是在市场占有率(Flash Player在全球电脑上的普及率达98.7%),还是在技术成熟、全球开发群体规模、开源项目、已有市场运用上,都无法和Flash Player应用程序相匹敌。而Adobe的RIA平台Flash Player占有绝对优势。

除了已经广被接受的RIA概念外,Adobe于2007年6月11日推出了Adobe Intergrated Runtime(AIR)Beta版,正式实现新一代的RIA概念——跨系统运行时(cross-operating system)的RIA程序。首次允许RIA程序访问本地资源并进行离线存储,跳出了浏览器的限制,模糊了浏览器和桌面程序的界限,以及在线(online)和离线(offline)的界限,AIR的前瞻视角时革命性的。

不论是Flash Player程序还是AIR程序,都真正支持跨系统应用,其核心语言都是Action Script 3。不仅如此,下一代Firefox浏览器核心JavaScript引擎也是基于Action Script 3 的虚拟机AVM2开发的。与此同时,Adobe推出的Action Script 3程序开发工具Flex也越来越受到广大的Java社区和其他OOP社区的关注和青睐。《Thinking In Java》的作者Bruce Eckel对Flex和Action Script 3 赞誉有加,并多次在公开的讨论会上推广。

Action Script 3 已经毫无疑问地成为目前和下一代因特网应用程序编程语言的主流。

1.1.1 ActionScript发展历史简述

ActionScript前身出现于Flash Player4中,用于控制Flash内容,并进行简单的交互性脚步编写。它并不复杂,其语法和语义与ECMAScript也不相同。ActionScript1是在Flash5的时代诞生的,这时的版本就已经具备了ECMAScript标准的语法格式和语义解释。随着Flash Player5/6的版本更新,越来越多的ECMA语法和语义被纳入到ActionScript1的API当中去。但是核心语言的编译处理及表现方式都是延续了Flash5的ActionScript1的标准。甚至于到后来的Flash7,它里面的ActionScript1的核心解释机制仍然与Flash Player 5 有着很多相同之处。2

Action Script 2 可以看成上Action Script 1 的面向对象编程包装版。Action Script 2 的代码编写引入面向对象编程的方式,有良好的类型声明,而且分离了运行时和编译时的异常处理。但是,Action Script 2 只是在编译阶段支持这些标准OOP语法,在运行时仍然使用是ActionScript1的模式。因此,ActionScript2和ActionScript1在性能上不会有本质的区别。虽然它们在格式上遵从了ECMA4的语言方案,但是并不真正ECMAScript标准。

ActionScript2对OOP语言的支持远远谈不上全面,但是它是首次将OOP编程概念引入到了Flash开发界。到FlashMX2004时,ActionScript2已经渐渐被广大Flash开发者所接受。在2005年9月,Macromedia引入了Flash Player8,此时,基于ActionScript2的RIA(Rich Internet Application,丰富互联网程序)开发开始进入新的热潮。Flash Player 8 提供革命性的新表现力和呈现性能,包括位图效果、滤镜、Alpha视频和一个用于Flash视频的新的视频编/解码器,扩展了运行时的功能,并改进了外部API之间的Flash至浏览器通信。除此之外,还支持综合的、复杂的应用程序的文件上传和下载功能,所有这些新功能都导致Flash8内容在Internet上快速衍生,推动了Flash Player在其历史中最快速地采用。诸多业界巨头相采用Flash做前端平台开发,比如Yahoo的Map、Youtube的视频、Google的Finance和analysis、Microsoft的RIA社区Wallop,等等。

这些功劳有不少要归功于AVM1,即ActionScript Virtual Machine1(ActionScript虚拟机1),这是用于执行ActionScript代码的虚拟机。它增强了FlashPlayer8以前播放器的功能,并使范围广泛的交互媒体和Rich Internet Application成为可能。

但是,随着RIA浪潮不断扩大,大型项目连接出现,新的需求不断生产,开发人员已开始将AVM1推至其极限。对ActionScript开发界来说,不管时语言还是在性能上,都亟需一个重大的突破。

1.1.2 Flash Player 9和AVM2

官方的Flash Player和ActionScript开发团队认识到发展现有引擎,将有着太多限制而无法继续。经过这些可敬的人们长期不断的努力后,Flash Player的历史转折点到来了。

Flash Player9 版本首次引入了ActionScript3和新一代的ActionScript引擎——ActionScript Virtual Machine 2 (AVM2)。ActionScript3基本上时ActionScript引擎的完全重写。AVM2是一个新的、高度优化的虚拟机(称为AVM2)。AVM2显著超越了使用AVM1可能达到的性能。ActionScript3在其中执行可以达到前所未有的高效率和高性能。结果,ActionScript3代码执行的速度最多可以比原有ActionScript代码快10倍。

除了提高的性能和更加有效的内存利用之外,ActionScript3还提供一个编程模型,该模型对于来自其他平台的开发人员来说将非常熟悉。ActionScript3不仅语言行为更加一致和标准,还拥有数百个新的API用于诸如E4X、正则表达式和二进制套接字等功能。这些新功能使开发者对内容和应用程序有了更好的控制。另外,还增加了类、界面、包、名称空间和强制类型化变量的可选编译模式,这使得ActionScript3对于大型应用程序开发更有吸引力。详细的特色介绍见下节。

这些新的语言功能是基于ECMAScript 4 Netscape Proposal【参考文献1】标准的。Adobe是开发ECMAScript Edition 4(ES4)标准的ECMA国际编程语言技术委员会(TC39-TG1)的积极参与者。ActionScript3的未来版本预期与新兴的ES4标准完全兼容。

ActionScript3的语法对其他主流OOP语言开发者来说,将更加熟悉和一致。

支持ActionScript3的AVM2成为ActionScript执行的主要虚拟机。为了向后兼容考虑,Flash Player将继续支持较旧的AVM1。目前Flash Player 9中就有两套虚拟机:AVM1和AVM2。

1.1.3 Macromedia和Adobe的合并

2006年,首次引入ActionScript3语言的Flash Player8.5版本推出不久,Macromedia被Adobe收购。两家都是成功的公司,进行了一次成功的联姻。2007年3月27日Flash创作工具Flash 9 正式发布,并且命名为Flash CS3,成为了Adobe Creative Studio 3.0 中的一个成员。从此,Flash创作与Adobe公司的矢量图形软件Illustrator、业界标准的位图图像处理软件Photoshop完美地结合在一起。互相之间的文件转换和导入支持更加完美。

1.1.4 ActionScript3与开源世界

不论是语言还是技术,只有开源并获得广大开源社区的智慧,才会有超强的生命力和号召力。ActionScript3也一样。

值得高兴的是,Adobe一直在往开源的方向大步迈进。2006年11月7日,Adobe宣布将ActionScript Virtual Machine2(AVM2)的代码捐献给Mozilla Foundation。因此,Mozilla启动了一个新的开发源码项目Tamarin3。Adobe和Mozilla希望以此促进这种创建Web应用程序的标准化语言的推广。Tamarin项目的目标是实现一个高性能的开放源码的ECMAScript第四版(ES4)语言规范实现。Mozilla在SpiderMonkey中使用Tamarin Virtual Machine。优秀的开源浏览器Firefox和其他基于Mozilla的产品将嵌入SpiderMonkey作为核心JavaScript引擎。Adobe将继续在Adobe Flash Player的ActionScript Virtual Machine中使用这些代码。下一代的JavaScript2也将全面兼容ES4标准,因此和ActionScript3异曲同工。学习ActionScript3后再学习JavaScript2,基本上没有什么障碍。

除了AVM2源码开源外,Adobe还致力于Flex的开源4。Adobe计划在2007年底将几乎整个Flex平台组件在Mozilla Public License下发布,包括以下部分:Flex编译器;Flex命令行调试工具;源代码查看工具;测试框架;Flex核心组件库(包括AIR组件);封装脚步;Flex-Ajax Bridge(将会改用MPL协议发布)。

目前,民间基于ActionScript3的开源项目数量飞速增长,涉及到各个方面,比如3D应用的Papervision3D、开源物理引擎类库APE、Flex高级组件类库FlexLib,等等。http://www.osflash.org、http://code.google.com/、http://www.riaforge.org有诸多ActionScript3开源项目。著名的sf.net上也有一定数量。

1.2 ActionScript3的特色

ActionScript3由两个部分组成:核心语言和Flash Player API。核心语言定义编程语言的基本构建块,如语句、表达式、条件、循环和类型。Flash Player API是由代表Flash Player特定功能提供对Flash Player特定功能访问的类组成的。

因此,分两部分讲述ActionScript3的新特色。

1.2.1 核心语言新特色

ActionScript3核心语言与ECMAScript标准兼容,并引入了一些其他领域新的或更强的功能。所有这些功能在本书第2部分和第3部分中有专门论述。以下是部分新功能的摘要介绍。

1.       运行时异常(Runtime Exception)处理机制

在ActionScript2及之前版本中,许多运行时错误都是静默失败(SilentFailure

这样做,虽然有些时候可以确保Flash Player继续运行,用户不被打扰。但是,这样做的后果是缺少错误反馈。当发生运行时异常的时候,还可以提供使用含有批注的堆栈跟踪,批注中包含源文件和行信号,帮助开发人员快速找出错误,及时得到反馈,改进了调试效率,并利用处理机制使应用程序更加健壮(Robust)。

2.       运行时类型(Runtime Types

在ActionScript2中,类型检查只停留在编译阶段;在运行时,所有值的类型都

是动态指定的,并没有类型信息。也就是说,ActionScript2的类型检查并没有运行时支持。在ActionScript3中,类型信息在运行时仍然保留,有很多实际用途。Flash Player 9支持运行时类型检查,增强了系统的类型安全性。类型信息还可用于以本机形式表示变量(native machine representation),从而提高了性能并减少内存使用量。

3.       密封类(Sealed Classes

ActionScript2中在运行时所有的对象都可以动态添加属性和方法。ActionScript3

支持密封类的概念。密封类只拥有在编译时定义的固定属性和方法集,无法在运行

时添加其他属性和方法。密封类对象实例没有内部哈希表,从而提高内存使用效率和访问性能。密封类的支持使得更加严格的编译时检查成为可能,从而帮助开发人员写出更加可靠的程序。动态类也可能通过使用动态关键词dyanmic得到。

4.       闭包方法(Method Closure

这是针对ActionScript2及之前版本的改进,以前函数中this关键字无法记住自身指向的原始对象,给事件运用带来了不少困扰,只能使用mx.utils.Delegate类来解决。现在,ActionScript3使用闭包方法可以自动记起它的原始对象实例。此功能对于事件处理非常有用。

5.       使用E4X理论处理XML数据

ActionScript3完全支持先进的ECMAScript for XML(E4X)【参考文献2】。这使得XML就像ActionScript3语言的一种内建数据类型(native data type,而不是传统的XML解析API。E4X使得XML数据处理自然简单,成倍降低所需要的代码数量,显著提高了开发效率。

6.       正则表达式

ActionScript3实现了ECMAScript语言规范(ECMA-262)中定义的正则表达式,拥有强大的字符串处理功能。ActionScript3从内部支持(native support)正则表达式,帮助开发人员快速搜索和处理字符串。

7.       命名空间

ActionScript3中的命名空间是独有的一种访问控制机制,其概念不同于其他OOP语言中的定义,而是来源于XML语言中命名空间的概念。ActionScript3中所有访问控制说明符public、private、internal、protected,其本质都是通过内建命名空间实现的。用户也可以自定义命名空间,定义出不同的访问控制权限。

8.       新基元数据类型

ActionScript2中数值类型只有一种双精度浮点类型——Number。ActionScript3新增了int型和uint型整数数值类型。新整数类型的引入使ActionScript3可以更好地利用CPU的快速整数数学功能。

1.2.2 Flash Player API功能的新特色

Flash Player API是提供给ActionScript语言的一组类和函数,用于使用Flash Player的功能。通过这些类和函数,开发人员可以使用ActionScript3代码访问到Flash Player运行时(Runtime)的许多功能。Flash API对于核心语言是一个非常重要的补充。

Flash Player API的架构是全新的,并且更加直观。它包含了很多的新类,允许开发人员进行更低层的对象操作。本节不可能涵盖所有新增类,但将扼要介绍Flash API中新增的几个主要特色。

1.       DOM3事件模型

ActionScript2中已经初步应用了这个模型,ActionScript3中事件系统更加清晰、更加有效地模仿了W3C DOM3事件规范模型。该事件模型提供了生成和处理事件消息的一种标准方法,从而应用程序内的对象可以交互和通信,保持状态并对更改做出响应。

2.       显示列表API

这是ActionScript3对显示编程的重大更新。显示构架彻底改变,取而代之的是一个清晰、稳健、高效的视觉抽象结构。三大概念——显示对象、可交互对象、容器对象清晰划分了抽象层次。新的Spring类是一个轻型的容器,犹如去掉时间轴的MovieClip对象,更适合作为编程是所需要的基本容器。新的Shape类代表原始矢量图形。这些类可以使用新的操作符自然地进行实例化,并可以在任何时候动态地重定义父级。深度已经可以由显示列表API自动管理,不需手工分配了。另外,由于有了显示列表的概念,遍历了对象更加轻松简单。

除了这两个重大特色之外,文本显示的改进和二进制的支持也可以算是可圈可点的两个特色。文本显示由专门的flash.text包负责,新的动态文本类TextField中提供了更多的底层控制API,使完美能更加精确地控制文本。二进制的支持主要由ByteArray来实现,ByteArray对象实现了二进制数据的读取、写入和处理,从而使FlashAPI拥有更加强大的数据处理能力。

1.3 ActionScript3程序开发工具

开发ActionScript3程序的工具目前主要有Flash创作工具——Adobe Flash CS3,MXML语言和ActionScript3相结合的IDE5 ——Adobe Flex Builder,以及Flex SDK。目前推出的AIR运行时程序,可以使用上述任何一种工具开发。

本书的所有代码示例都在Flash CS3、Flex2和Flex 3 Moxie Beta 1中编译通过。

1.3.1 Flash CS3

Flash CS3是Macromedia和Adobe合并后推出的第一款Flash创作工具,并入了Adobe Creative Suite中,称为Flash CS3。Flash CS3是目前唯一可以创作基于ActionScript3的SWF的创作工具。Flash 8 及之前的版本都不能创作基于ActionScript3的SWF。

Flash CS3中有一套自己的Flash CS3组件,处于fl.*包,大部分位于fl.controls.*中,但是数量少、架构简单、功能不多,不适合开发常规的大型RIA程序。Flash CS3主要用于设计Flash美工、动画,以及利用类绑定来开发ActionScript3高级组件。

可以在以下地址下载Flash CS3的试用版本:http://www.adobe.com/go/tryflash_cn。

1.3.2 Flex2、Flex3及Flex SDK

Flex技术是Adobe的又一得意之作。Flex技术允许开发者使用直观地基于XML的MXML语言来定义客户端应用程序。编译的程序可以在拥有Flash Player9版本的Flash Player运行时环境中运行。运用Flex技术可以在企业内部或在Web上创建并交付丰富互联网程序(RIA),是目前主流的RIA开发解决方案之一。

Flex框架是基于组件的开发框架,用于开发可由Flash Player运行的丰富互联网程序。Flex框架的类都包括在mx.*包中,种类丰富,功能齐全,尤其是组件框架的设计非常见功力。使用Flex开发RIA确实可以事半功倍。

MXML语言本质依然是构建于ActionScript3语言之上的,编译时会转换成相应的ActionScript3代码。MXML的标签就相当于ActionScript3的一个类。

可以使用Flex SDK、Flex Bulider2或Flex Builder 3 进行ActionScript3程序开发。

Flex SDK是免费的开发工具包,包含Flex类库、MXML和ActionScript3编译器。

Flex Builder 2 和 Flex Builder 3 都是基于Eclipse的IDE,可以跨系统使用。

Flex Builder 2 和 Flex Builder 3 都是针对ActionScript3和Flash Player 9平台的。Flex Builder 3与Flex Builder 2 最大的不同在于,Flex Builder 3集成了对AIR(Adobe Intergraded Runtime)的支持,可以直接开发AIR项目。Flex Builder 2 必须要通过下载一些扩展组件才可以开发AIR程序。

此外,Flex Builder 3中集成了Flex Component Kit for Flash CS3的一些核心类文件,使得和Flash CS3的协作更加方便。Flex Component Kit for Flash CS3可以单独下载并安装,也可以和Flex Builder2协作。

Flex SDK及Flex Builder2试用版可在http://www.adobe.com/cn/products/flex/下载。

Flex Builder 3 beta版可以在http://labs.adobe.com/technologies/flex/下载。

1.4 *ActionScript3程序的编译流程

ActionScript3代码将被编译成Flash Player运行时可以理解的ActionScript bytecode(字节码),简称为ABC文件。但是ABC文件不可以单独运行,必须放入SWF(.swf)文件中才可以被Flash Player执行。

SWF文件是Flash文件格式,它里面放着一堆可以被Flash Player所理解的标签,容纳着媒体资源(如图形、音频等)和ABC字节码。

Flash CS3工具使用的源文件后缀名是“.fla”,fla文件中包含元件库,里面有创作的图形、动画元件,以及嵌入的媒体资源等。fla文件中记录着元件里面的ActionScript3代码,以及要使用到的外部ActionScript3代码文件连接,在编译时将所有ActionScript3代码编译成ABC文件,并和用到的库元件一起编译成SWF文件。

如果是Flex Builder,且使用了MXML语言,那么Flex编译器(mxmlc)会先将MXML语言转换成相应的ActionScript3代码,再从ActionScript3代码编译成ABC字节码,最好放入其他嵌入的媒体资源,编译成SWF文件。

1.5 熟悉开发环境和第一个“Hello,world”例子

本节分Flash CS3和Flex Builder两部分讲述。

为了节省本书篇幅,Flex Builder的安装不再赘述,请读者参看随书光盘的视频教程目录下的“FlexBuilder3安装.swf”。Flash CS3的安装非常简单,不予赘述。

另外,本书也不会放入大量界面截图来讲解操作,一方面有些操作过于简单,不必赘述,没有理由占用本书宝贵的篇幅;另一方面,使用图片加文字讲解界面操作,不如使用视频演示来得直观。本书随书光盘中视频教程目录下有本节相关的视频演示,既直观方便,又可满足不同层次读者需要,还不占用本书篇幅,一举多得。

1.5.1 在Flash CS3中创建“Hello,world”

在Flash CS3中有两种写入ActionScript3代码的方法:一种是时间轴的关键帧中写入ActionScript3代码;一种是在外面写成单独的ActionScript3类文件再和Flash库元件进行绑定,或者直接和fla文件绑定。使用ActionScript3开发程序,并不推荐将代码写入到关键帧中,而应当尽量把代码从fla文件中分离出来,详细知识请参见23.1.3节“帧代码和类绑定的角色比较”。

读者对本节中描述的界面操作如有不清楚的地方,请观看随书视频教程目录下的“HelloWorld_FlashCS3.swf”文件,视频讲解更加直观。

1.       在时间轴中写入代码

先看第一种在时间轴中写入代码,产生“Hello,world”的效果。

打开Flash CS3,新建一个Flash文件(ActionScript3),这就是fla文件。建好后,单击主时间轴选中第一帧,按【F9】键弹出动作面板,在其中写入如下ActionScript3代码:

trace (“Hello,world”);

trace()是最常见的函数之一,它的功能是将括号的内容从输出面板(Output Panel)中输出。输出面板可以按【F2】键随时打开或关闭。

按【Ctrl+Enter】组合键,测试影片,此时开始编译fla文件,并运行生产的.swf文件。读者可以看到一个新弹出的Flash Player窗口和一个输出面板,面板中写着“Hello,world”。

我们的第一个Flash Player程序成功了。

2.       文档类新特色:和fla文件绑定

ActionScript3有一个新的特色,那就是可以将外部的ActionScript3类文件和fla文件绑定,编译时将SWF看成是这个类的一个实例。不了解“类是什么”的读者,可以暂时想象成,在编译时,Flash CS3自动将这个类文件包含的ActionScript3代码写在了主时间轴上。虽然这个比喻有很大的毛病,但可以暂时帮你理解绑定的含义。关于文档类和类绑定的详细知识,可以参看第23章“Flash CS3:库元件的类绑定与Stage、文档类”。

与其他语言对比

对于其他语言的读者来说,也用一个不太恰当的比方来帮助理解;文档类就好比一个程序执行入口(Entry),它的构造函数就相当于main函数。

下面,打开Flash CS3,新建一个Flash文件(ActionScript3),即fla文件,存为First.fla。

新建一个ActionScript文件,存为HelloWorld.as,和first.fla放在同一个目录中。在HelloWorld.as中写入以下代码(见示例1-1):

示例1-1 第一个ActionScript3文档类:Hello,world

Flash ActionScript3 殿堂之路 第一章:ActionScript3语言介绍与开发环境相关推荐

  1. 关于java是最好的语言的段子_疯狂java——第一章 java语言概述与开发环境

    J2ME: 主要用于控制移动设备和信息家电等有限存储的设备. J2SE: 整个java技术的核心和基础,它是J2ME和J2EE编程的基础. J2EE: Java技术中应用最广泛的部分,J2EE提供了企 ...

  2. R语言学习笔记——入门篇:第一章-R语言介绍

    R语言 R语言学习笔记--入门篇:第一章-R语言介绍 文章目录 R语言 一.R语言简介 1.1.R语言的应用方向 1.2.R语言的特点 二.R软件的安装 2.1.Windows/Mac 2.2.Lin ...

  3. geany搭建python环境_第一章:搭建Python的开发环境

    第一步: 我们在Python的官网上下载Python的安装包,此安装包内含有Python解释器.Python运行的基础库,以及交互式运行工具--Python Shell 第二步: 安装时弹出下面对话框 ...

  4. 《R语言实战》读书笔记--第一章 R语言介绍

    1.典型的数据分析过程可以总结为一下图形: 注意,在模型建立和验证的过程中,可能需要重新进行数据清理和模型建立. 2.R语言一般用 <- 作为赋值运算符,一般不用 = ,原因待考证.用-> ...

  5. r语言glmnet包系数显示不全_第一章: R语言介绍

    1:R语言的用途 R也是一种为统计计算和绘图而生的语言和环境,R是一个全面的统计研究平台,提供了各式各样的数据分析技术. 2:R语言的使用 R语句由函数和赋值构成,命令提示符为 > ⑴赋值: R ...

  6. 第一章 安装OpenResty(Nginx+Lua)开发环境

    首先我们选择使用OpenResty,其是由Nginx核心加很多第三方模块组成,其最大的亮点是默认集成了Lua开发环境,使得Nginx可以作为一个Web Server使用.借助于Nginx的事件驱动模型 ...

  7. Cyclone V SoC FPGA学习之路第一章:综述

    Cyclone V SoC FPGA学习之路第一章:总体了解 关键词: adaptive logic modules – ALM 自适应逻辑模块 logic array block --LAB 逻辑阵 ...

  8. FCF中文指南-第一章--FusionCharts Free介绍

    第一章--FusionCharts Free介绍 FusionCharts是InfoSoft Global公司的一个产品,InfoSoft Global 公司是专业的Flash图形方案提供商,他们还有 ...

  9. 山西农业大学c语言答案,第一章C语言及程序设计概述-东北农业大学教务处.doc...

    全国高等农林院校"十一五"规划教材 C语言程序设计 孙力 主编 中国农业出版社 内容简介 本书是全国高等农林院校"十一五"规划教材之一. 全书共11章,分别介绍 ...

最新文章

  1. nas挂载windows_在windows2012上挂载NAS文件系统
  2. 2021湖南高考艺考成绩查询,2021届湖南艺考生联考成绩查询时间安排
  3. laraver 用户认证auth、数据迁移和填充
  4. 大数据时代 如何让用户上网更放心
  5. android activity解耦,Android与设计模式:用单一职责原则为Activity解耦
  6. apache pdfbox_Apache PDFBox 2
  7. Taro+react开发(85):taro路由参数
  8. fileinputstream_Java I/O 流之 FileInputStream
  9. python的框架django_Python框架Django高级内容,python
  10. 防火墙状态检测及会话表技术
  11. flex blazeds java_Flex使用Blazeds与Java交互及自定义对象转换详解
  12. AR as a civil right
  13. python中pyecharts 柱状图 折线图混用_pyecharts折线图和柱状图
  14. word没有标题3和标题4的解决方式
  15. 网站建设中如何打造最优seo优化页面
  16. php h m s 转为秒,将m³/s换算为m³/h (立方米每秒换算为立方米每小时)
  17. 2014下半年成长总结
  18. 【Hive】Hive 查询
  19. cocos2dx系列--颜色混合BlendFunc
  20. 百度员工猝死 是否过劳死引发争论

热门文章

  1. C#软件winform程序安装包制作
  2. 服务器配置https
  3. 基于JSP仓储物资管理系统
  4. 语言-英语-英国英语:英国英语
  5. 商标TM和R有什么区别
  6. Python项目 外星人入侵游戏
  7. 如何基于 Nacos 和 Sentinel ,实现灰度路由和流量防护一体化
  8. HTML 视频播放代码
  9. C++ Armadillo矩阵库的安装与基本用法
  10. [翻译] 在 Overleaf 中追踪修订