Action Script 3.0入门基本概念——IDE&编译与运行
【编写ActionScript代码的工具】
ActionScript代码是用纯文本编写的,所以ActionScript程序可以仅由简单的文本编辑器来创建,如Windows上的记事本或Macintosh上的TextEdit。然而,大多数ActionScript程序员都使用Adobe公司出品的两个商业软件之一(或两者都用):Flex Builder和Flash制作工具。
Flex Builder是集成开发环境,或者叫IDE。IDE是用来编写和管理代码的应用程序,就像字处理程序是来用创建和打印文档的程序一样。程序员用Flex Builder来创建软件应用和多媒体内容,使用ActionScript或MXML,或两者都用。MXML是基于XML的语言,用来描述用户界面。
相比之下,Flash制作工具是一个设计、动画和编程的杂合编辑器。程序员使用Flash制作工具,通过结合ActionScript代码和手工绘制的图形、动画和多媒体资源,来创建软件应用和多媒体内容。
ActionScript 3.0被Flex Builder 2或更高版本和Flash CS3(版本9的Flash制作工具)或更高版本所支持。要获得一个Flex Builder的拷贝,请访问http://www.adobe.com/products/flex/productinfo/overview/,要获得一个Flash制作工具的拷贝,请访问http://www.adobe.com/go/flash/。
本书的绝大部分集中于用纯ActionScript(即只用代码)来创建软件应用和多媒体内容。第29章包含了ActionScript在Flash制作工具中的用法。本书特别不包含MXML的内容,要了解MXML的有关内容,请参阅O'Reilly的《Flex2编程》(Kazoun和Lott合著,2007年)和Adobe的Flex Builder文档。
【Flash客户运行时环境】
ActionScript程序可以在三种不同的软件应用程序(都是Adobe出品)上执行:Flash播放器、Adobe AIR和Flash Lite。
Flash播放器在网页浏览器中或在桌面单机模式下执行ActionScript程序。Flash播放器几乎没有操作系统访问权(例如:它不能管理文件、控制窗口或访问大部分硬件)。
Adobe AIR在桌面上执行ActionScript程序并且和桌面操作系统完全集成(例如:它可以管理文件,控制窗口并访问硬件)。
Flash Lite在移动设备,如手机上执行ActionScript程序。本书出版时,Flash Lite可以执行ActionScript 2.0但不能执行ActionScript 3.0编写的ActionScript程序,而Flash播放器和Flash AIR可以执行ActionScript 3.0编写的程序。因此,本书讲授的技术适用于Flash播放器和Flash AIR但不适用于Flash Lite,除非它增加了对ActionScript 3.0的支持。
一般来说,Flash播放器、Adobe AIR和Flash Lite都被称为Flash客户运行时环境(或简称Flash运行时),因为当ActionScript程序被执行或“运行”时,它们管理着程序。Flash运行时在Windows、Macintosh和Linux以及多种不同的移动硬件设备上可用。因为ActionScript程序是被Flash运行时,而不是被特定的操作系统或硬件设备执行,每个ActionScript程序都被认为是可移植的,因为它可以在不同的硬件设备(手机,游戏控制台)和操作系统(Windows,Macintosh和Linux)上运行。
在非正式的讨论中,术语ActionScript虚拟机有时被用作Flash客户运行时环境的同义词。然而,这二者之间还是有差异,所以它们不应当被互换使用。ActionScript虚拟机(AVM)在技术上是在Flash播放器、Adobe AIR和Flash Lite内部执行ActionScript程序的软件模块。但是每个Flash运行时还负有其它责任,如显示内容到屏幕、播放视频音频以及和操作系统通信。运行ActionScript 3.0代码的ActionScript虚拟机的特定版本称为AVM2,运行ActionScript 1.0和ActionScript 2.0代码(本书未包含)的ActionScript虚拟机的特定版本称为AVM1。
【编译】
ActionScript程序在可被Flash运行时执行之前,必须从人可读的ActionScript 3.0代码转化为一种Flash运行时所理解的浓缩的二进制形式,称为ActionScript字节码,或ABC。然而,ActionScript字节码本身不能被Flash运行时执行;而必须被封装到一个称为.swf文件的二进制容器文件中,.swf文件把字节码和任何ActionScript程序所需的嵌入媒体资源都存储到Flash文件格式或称SWF中。将ActionScript程序转化为字节码的过程叫作编译该程序,生成.swf文件的过程叫作编译该.swf文件,有时也叫输出或发布该.swf文件。
要编译ActionScript 3.0程序和.swf文件,我们使用一个叫编译器的软件模块。编译ActionScript代码的编译器叫作ActionScript编译器;生成.swf文件的编译器叫作SWF编译器。任何声称完全支持Flash文件格式的SWF编译器都包括一个ActionScript编译器。自然,Flex Builder 2和Flash制作工具都包含一个SWF编译器(并额外包括一个ActionScript编译器)。Flex Builder 2和Flash制作工具共享同一个ActionScript编译器,但却有不同的SWF编译器——分别叫作Flex编译器和Flash编译器。Adobe还把Flex编译器作为一个单独的命令行程序提供,叫作mxmlc。mxmlc编译器包含在Adobe的免费开发者工具包Flex 2 SDK中,在http://www.adobe.com/go/flex2_sdk可以得到。
【即时编译(Just-In-Time Compilation)】
当ActionScript程序运行的时候,Flash运行时读取编译过的ActionScript字节码并将它翻译成本地机器码指令,在它所运行的特定的计算机硬件上执行。很多情况下,本地机器码指令被保存下来以便它们可以再次使用而不需要重新从ActionScript字节码翻译。
将ActionScript 3.0代码转化为字节码叫作编译,同样,将ActionScript字节码翻译成本地机器码并留待后续执行的过程也叫作编译。首先,程序员将人可读格式的代码编译成Flash运行时所理解的格式(ActionScript字节码),然后,Flash运行时自动将ActionScript字节码编译成运行程序的硬件所理解的格式(本地机器码),后面这种编译形式(字节码到机器码)被称为即时编译,或JIT,因为它就在程序需要特定的被编译的字节码之前立即发生。即时编译有时也叫动态翻译。有经验的程序员可能有兴趣了解,类定义的顶层不是即时编译的(因为它只被执行一次)。
【快速回顾】
前面几页覆盖了很多基础,让我们来回顾一下到现在为止都有些什么。
ActionScript程序是一个指令集,它被Flash运行时:Flash播放器、Adobe AIR或Flash Lite中的一个所执行。ActionScript程序可以用文本编辑器、Flex Builder或Flash制作工具来编写。要运行一个ActionScript程序,我们必须先用SWF编译器将它编译成.swf文件,如Flash制作工具中包含的Flash编译器,或Flex Builder 2和Flex 2 SDK中都包含的mxmlc。
Action Script 3.0入门基本概念——IDE&编译与运行的更多相关文章
- Android入门(创建、编译、运行、打包、安装)
一.创建Android项目 1.选择Emtpy Activity=>Next 2.配置项目 输入Name(名称) Package.name(包名) Save location(保存位置) Lan ...
- ASP.NET Core 1.0 入门——了解一个空项目
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- ASP.NET Core 3.0 入门
原文:ASP.NET Core 3.0 入门 课程简介 与2.x相比发生的一些变化,项目结构.Blazor.SignalR.gRPC等 课程预计结构 ASP.NET Core 3.0项目架构简介 AS ...
- ASP.NET Core 1.0 入门——Application Startup
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- Omnet++ 4.0 入门实例教程
http://blog.sina.com.cn/s/blog_8a2bb17d01018npf.html 在网上找到的一个讲解omnet++的实例, 是4.0下面实现的. 我在4.2上试了试,可以用. ...
- 《VC++ 6简明教程》即VC++ 6.0入门精讲 学习进度及笔记
VC++6.0入门→精讲 2013.06.09,目前,每一章的“自测题”和“小结”三个板块还没有看(备注:第一章的“实验”已经看完). 2013.06.16 第三章的“实验”.“自测题”.“小结”和“ ...
- MongoDB入门必读(概念与实战并重)
MongoDB入门必读(概念与实战并重) 一.概述 MongoDB是一个基于分布式文件存储的数据库开源项目.由C++语言编写.旨在为WEB应用提供可护展的高性能数据存储解决方案. MongoDB是一个 ...
- Struts 2.0 入门
1. Struts2.0 概述 Struts 2.0 是以 WebWork 为核心,采用拦截器的机制来处理用户的请求; Struts 2.0 是一个基于 MVC 设计模式的 Web 层框架; Stru ...
- Git 入门:概念、原理、使用
出处: git入门:概念.原理.使用 git和Github 概念 Git --- 版本控制工具(命令). git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.git ...
随机推荐
- java基础笔试题一
1.Vector和ArrayList的区别 答:Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影 ...
- centos7 nginx 代理
2019/06/05 15:00:23 [crit] 4332#4332: *1 connect() to 127.0.0.1:8080 failed (13: Permission denied) ...
- 通过实现接口runnable实现多线程
实现Runnable接口实现多线程的步骤(1)编写类实现Runnable接口(2)实现run(方法(3)通过Thread类的start(方法启动线程 静态代理模式Thread >代理 角色MyR ...
- 【Linux学习四】Linux下Vim命令操作
1.Vim介绍 Vim是一个类似于Vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性. 第一阶段通过vimtutor的学习,加强vim的熟练度 1.1光标移动 hjkl左 ...
- 用CSS创建分页的实例
总结介绍如何通过使用 CSS 来创建分页的实例. ㈠简单分页 如果你的网站有很多个页面,你就需要使用分页来为每个页面做导航. 以下实例演示了如何使用 HTML 和 CSS 来创建分页: <!DO ...
- Java多线程和并发(十一),CAS(Compare and Swap)
目录 1.CAS简介 2.CAS多数情况下对开发者来说是透明的 3.CAS缺点 十一.CAS(Compare and Swap) Synchronized直观意义上是一种悲观锁 cas则是乐观锁的一种 ...
- PDFtk:PDF文件处理
造冰箱的大熊猫@cnblogs 2018/9/12 使用PDFtk很多年了,今天得空把相关内容整理总结一下. 1.PDFtk能干什么 - 是否想把两个PDF文档合并到一起 - 是否想从PDF文档中摘出 ...
- CSP2019-S2参赛总结 暨 近期学习反思
前言 岁月不居,时节如流.眨眼间,2019的联赛就已经落下帷幕了,回忆这一年的学习,有许许多多的事情想写下来.趁联赛结果还未出来,赶紧写下这篇文章,以记录我这段时间的学习和生活. "你怎么又 ...
- sql 建立索引之前计算区分度
select cutomer_id,title,content from product_comment where audit_status=1 and product_id=1 and produ ...
- Spring Boot教程(三十)使用Spring-data-jpa(1)
在实际开发过程中,对数据库的操作无非就“增删改查”.就最为普遍的单表操作而言,除了表和字段不同外,语句都是类似的,开发人员需要写大量类似而枯燥的语句来完成业务逻辑. 为了解决这些大量枯燥的数据操作语句 ...