Flash平台基本介绍
这是我从很多地方的来素材经过整理的最后版本,讲的是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默认debug是true,?所以当用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.?可以指定多个 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c# – 使用List更好,更干净的方法
- 关于postgresql的种种恶心问题
- Oracle执行计划突变诊断之统计信息收集问题
- 记录一下,Sqlite,用GB系列编码排序时是按拼音,UTF-8排序
- ruby-on-rails – Rails – 如何选择表中的最后日期?
- fastjson过滤属性,重点在于PropertyFilter 这个东西(应用
- 如何使用Ruby将对象推送到数组x次?
- cocos2d-x-3.4 无法打开包含文件extensions/ExtensionExpor
- ruby-on-rails – Rails 4:不兼容的字符编码:UTF-8和ASCI
- 学习react-native之Navigator