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 ...
随机推荐
- react浏览器回退按钮的时候传递参数
本来是有这个需求的,但是后来发现回退不也是到某个页面吗?接下来就使用了redux,真香啊,不管用户怎么操作,你到这个界面都给他一个值就完事了,没有就不给他这个值. 哈哈哈,公司框架使用umi.上代码 ...
- zTree 节点展开
var treeObj = $("#treeDemo"); $.fn.zTree.init(treeObj, setting, Znode1); zTree_Menu = $.fn ...
- 将springboot jar应用打包成镜像并在docker运行成容器
先看一下我的Dockerfile内容与服务器中的目录结构 上面 yibai-0.0.1-SNAPSHOT.jar 为springboot应用打成的jar包,Dockerfile为将应用打成镜像的配置文 ...
- jquery password选择器 语法
jquery password选择器 语法 作用::password 选择器选取类型为 password 的 <input> 元素.大理石平台精度等级 语法:$(":passwo ...
- 【HDOJ5447】Good Numbers(数论)
题意: 思路:From https://blog.csdn.net/qq_36553623/article/details/76683438 大概就是把1e6里面的质因子能除的都除光之后借助两者gcd ...
- ubuntu16.04和vim的配置与美化
目录 ubuntu16.04配置 ubuntu16.04 美化 vim配置 vim美化 ubuntu16.04配置 安装vim sudo apt-get install vim-gnome 换源 su ...
- [LOJ3120][CTS2019|CTSC2019]珍珠:生成函数+NTT
分析 容易发现\(D \leq n - 2m\)时,任意数列都满足要求,直接判掉,下文所讨论的均为\(D > n - 2m\)的情况. 考虑把两个数列合并,显然可以认为是两个带标号对象的合并,可 ...
- [CSP-S模拟测试]:字符交换(贪心+模拟)
题目传送门(内部题136) 输入格式 输入文件第一行为两个正整数$n,k$,第二行为一个长度为$n$的小写字母字符串$s$. 输出格式 输出一个整数,为对字符串$s$进行至多$k$次交换相邻字符的操作 ...
- 用node批量压缩html页面
最近在写一个用了layui的后台管理系统.因为某些原因,html,css,js都写在.html里,并且没有用到别的打包工具.所以写了一个用node命令批量压缩页面并且混淆js的小工具.node安装ht ...
- windows管理员权限激活
第一步:计算机-右键--管理--选择用户,选择administrator用户--取消勾选:账户禁用 第二步:alt+ctrl+delete,快捷键调出资源管理器--点击切换用户 第三步:显示出现adm ...