加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flash平台基本介绍

发布时间:2020-12-15 18:40:14 所属栏目:百科 来源:网络整理
导读:这是我从很多地方的来素材经过整理的最后版本,讲的是flash平台最基础内容 1.ActionScript ActionScript简称AS,是Flash平台的编程语言。通过AS编写的程序,最终会编译成SWF、SWC文件。SWF就是我们通常所说的Flash动画。但是现在SWF已经不仅仅是动画,而且是

这是我从很多地方的来素材经过整理的最后版本,讲的是flash平台最基础内容

1.ActionScript

ActionScript简称AS,是Flash平台的编程语言。通过AS编写的程序,最终会编译成SWF、SWC文件。SWF就是我们通常所说的Flash动画。但是现在SWF已经不仅仅是动画,而且是RIA的载体。

ActionScript有3个版本,AS1、AS2、AS3。这三个版本之间差别很大,现在最流行的是AS3,只有FlashPlayer9及以上播放器才支持AS3编译的SWF。

2.Flex

因为在开发RIA的时候,需要很多常用的功能,例如控件(Button、ComboBox、List等)、布局(VGroup、VBox等),Adobe就开发了一套官方的框架集来实现这些功能,这套框架集就叫做Flex。

3.Flash

现在Adobe已经把Flash定义为一个平台,包括Flash?cs、Flash?Builder、AIR、Flash?Player以及更多。但通常我们所讲的Flash有两个意思:一个就是我们最常见的Flash动画,也就是那些扩展名为.swf的动画文件,另一个就是Flash?cs,Flash动画的制作软件。

4.Flash?Builder和Flex?Builder

AS发展到3.0之后,语法和Java很像,再加上增强的性能和强类型,可以完全脱离Fla文件,使用纯文本编码。但是Flash?cs是一个动画制作工具,虽然可以写一些代码嵌入到动画里面,但使用起来不方便。于是Adobe公司有发布了Flex?Builder,一个基于Eclipse的IDE,并发布了Flex?SDK。

用Flex?Builder可以开发纯AS代码项目。Flex?Builder从4.0开始,改名为Flash?Builder。

5.Flash?cs

Flash?cs是Flash动画制作工具软件。制作好的动画以.fla文件保存,经到处后得到.swf文件.

6.Flash?Player

(1)独立版和插件版

Flash?Player分为独立版和插件版,插件版安装后,让浏览器可以播放swf文件,这也是现在大多数网站的做法。独立版安装后,则可以直接在本地双击swf文件打开一个窗口来播放,无须播放器。

(2)调试版和普通版

通过Adobe更新程序更新的均为普通版,该版适合普通用户。调试版(Debug)在swf发生运行时错误的时候会弹出对话框,而普通版不会。开发人员应该安装调试版。

(3)下载最新的独立版和调试版

访问http://www.adobe.com/support/flashplayer/downloads.html?

ActiveX?control?content?debugger(for?IE)?针对IE的调试插件版

Plugin?content?debugger(for?Netspace-compatibel?browers)?针对其他浏览器的调试插件版

Projector?content?debugger?独立调试版

Projector独立普通版

4)如果要下载普通版,则访问http://get.adobe.com/flashplayer,该地址会根据浏览器自动下载对应的普通插件版。

5)下载的文件,文件名中带_sa_字样的为独立版播放器,否则为插件版。

文件名中带有_debug字样的为调试版,否则为非调试版。

文件名中带有_ax_字样的是针对IE浏览器的版本。

文件名中带有_plugin字样的针对其他浏览器版本。

6)关于独立Flash?Player播放器

如果要播放swf文件,一定不要使用暴风影音、QQ影音。垃圾影音等软件的文件自动那个关联。。。。

正确的做法是:

1.?复制独立调试版Flash?Player到你的C:Program?Files文件夹(其他文件夹也行,建议是路径为全英文),双击运行一次,即可与swf文件自动关联(Win7/Vista用户右击,选择以管理员身份运行

2.?没有2,如果你一定要找2,那你就很2.。。。。。。。。。。

7.AIR

Flash?Player再强大,也要运行在浏览器中,受浏览器的约束。为了摆脱浏览器,Adobe有发布了RIA。RIA是一个Runtime,可以理解为JVM。有了它,就可以使用AS3开发桌面软件,而且开发出的软件和Java软件一样跨平台运行(一次编译,遍地运行)。例如:新浪微博的AIR客户端

8.SWF?SWC?SWZ

入门级讲解

(1)SWF

Swf是我们见到的最多的Flash平台文件了。是的,它就是Flash平台的最终表现形式。前面说到的无论是Flex、Flash?cs还是纯AS,最终编译出来的文件都是swf格式,浏览器中的Flash?Player插件和独立的Flash?Player,也只能打开swf文件进行播放。即使AIR,其本质也是运行时+swf而已。

但是并不是所有的swf都可以直接播放。Swf有3种:

1.?程序SWF(application?swf):可以直接在Flash?Player种运行的swf

2.?库SWF(library?swf):swc文件种的library.swf

3.?模块SWF(module?swf):Flex?Module产生的swf文件

最终用户碰到的大多是“程序swf”,而程序猿碰到后两者的可能性比较大

(2)SWC

SWC是一种库文件,通常用来发布非开源的类。程序猿们将源码编译成SWC文件,并发布API文档,使用者就可以使用这些SWC提供的类库进行自己的开发了。SWC不是运行时共享的,而是在编译的时候直接加入了程序SWF中。最终的SWF可以脱离SWC运行。

SWC本质上是一个Zip文档,其中包含一个library.swf文件和一个用于描述的xml文件,你可以zip管理器打开查看

(3)SWZ

从TLF(Text?Layout?Framework)出现以来,Flex?SDK中多了一个flashx包,这个包中的功能,就是用SWZ实现的。SWZ是在运行时共享的库,你可以将其看做一个可以放在外部的SWC。而且SWZ的共享是平台级的(Module?SWF的共享是浏览器级别的),存在与操作系统缓存中(Module?SWF存在浏览器缓存中),只要下载过一次SWZ,你的操作系统中所有用到这些SWZ的地方都不用重新下载

程序猿专版

只要做Flex项目,终究有一天会涉及到RSLs,要和swf、swc、swz打交道。

RSLs全称是Runtime?Shared?Libraries,也就是“库”的意思。它是Adobe?Flash平台的二进制模块化技术,目的类似于动态链接库(Dll),但实现的技术细节完全不一样。

(1)?swz文件

从flash?player?9.0.115以后,Adobe支持的一种RSLs,称之为“signed?framework?RSLs”。

ADOBE的解释:签名的RSLs(也就是swz)会优先缓存在flash?player中,而且可以被任何应用程序访问,即使是和原先程序不同的domain也能。Swz文件只需下载一次,就算是浏览器缓存被清空,swz也可以从disk重新读出。而未签名的RSLs(会以swf形式存在)只能缓存在各个浏览器中,如果浏览器缓存清空,就需要再次下载,而且被限定为只能在Application同一domain内访问。

Adobe将swz文件cache存在PC的固定文件夹下:

Windows?7:?C:Users${username}AppDataRoamingAdobeFlash?PlayerAssetCache

Windows?XP:?C:Documents?and?Settings${username}Application?DataAdobeFlash?PlayerAssetCache.

只有Adobe公司自己才能创建swz文件。尽管有人建议开放给合作的第三方,但迄今为止还没有。

Swz文件是一种未知加密(?)文件格式,flash?player?内部会对swz文件进行签名认证

(2)?swc文件

swc文件和swz、swf文件最大的区别在于:它是用在编译期,而不是运行期。RSLs指的是swf和swz,swc不算是RSLs,它俩之间有间接关系。

在编译时,swc可以被静态链接,也可以被动态链接,这是有编译参数决定的

Swc文件是一个zip格式文件,打开后有两个文件:library.swf和catalog.xml.其中library.swf?和?catalog.xml名字是固定的,?catalog.xml是对library.swf的描述.

需要对动态链接的情况作一点说明:只有带有摘要信息的swc文件才能被动态链接,否则运行时会出错,让你重新编译。Swc文件中的catalog.xml中的信息会编译到app.swf中,而app.swf运行时会找原swc中的library.swf文件(需要更名),并且会校验RSL(原library.swf文件)的摘要信息.

如果你遇到过?"Flex?Error?#1001:?Digest?mismatch?with?RSL?..."之类的错误,?这是因为:运行时的rsl?swf不是编译时swc中的libray.swf.

如果你只拿到一个test.swc文件,?你需要将这个swc中的library.swf用unzip提取出来,?并且更名为test.swf

大部分同学不用做这个步骤,?是因为Flash?Builder已经自动帮我们做过了,??如果你作手动编译,?就需要自己手动做.

(3)?swf文件

app?swf是指可以直接在flash?player中运行的,?而library?swf是指swc文件中的library.swf

文件,module?swf指Flex?Module产生的swf文件

(4)?有关RSL的编译参数

(5)?mxmlc和compc是Flex?SDK自带的编译命令,?可以用下面的形式来查看其自带的帮助:

(6)?#mxmlc?-help?list?advanced?details

(7)?#compc?-help?list?advanced?details

(8)?compc默认debugtrue,?所以当用compc编译时,?最终的release版本需要指定?debug?为?false,

(9)?相反mxmlc默认debug是false.

(10)?默认值还需要考虑{FLEX_HOME}/frameworks/flex_config.xml文件,?这个文件配置了很多的默认值.

(11)?因为很多的编译参数都有别名(alias),?所以在网上查找这些资料时,?为了不至于搞糊涂,?可以对应上面的两个命令的help来看.

(12)?static-link-runtime-shared-libraries:??是否用动态链接

(13)?runtime-shared-library-path:?RSL配置,?可以有多个

(14)?external-library-path:?编译时不要将指定的swc中的类带入,?可以指定多个

(15)?optimize:?编译时是否优化

keep-as3-metadata:?通过指定metadata,?将未指定的metadata的相关代码清除,?以减少size.?可以指定多个

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读