`
xwf55xwf
  • 浏览: 13898 次
社区版块
存档分类
最新评论

Flash游戏开发技术分析

 
阅读更多

Flash游戏开发技术分析
2010年12月31日
  1、与Flash游戏相关的文件类型
  与Flash游戏相关的文件类型有多种,最常用的有三种:.fla、.flv和.swf。
  1).FLA
  FLA文件是Flash项目文件,在创建Flash游戏时,首先会创建.FLA文件来建立游戏。然后会花大量时间编写FLA文件的内容。当Flash游戏开发完成,可以放到Web上时,需要创建.SWF文件。
  FLA文件包含了Flash应用的源文件。
  Flash Authoring软件可以编辑FLAsh文件,并编译生成SWF文件。
  2).SWF
  SWF是Small Web Format的缩写,SWF文件目前实际上主要用于Web上的动画矢量图,远远领先于W3C的开放标准SVG。.SWF文件可嵌入到HTML,因此可以被Web浏览器浏览,也可以被Flash Player播放。SWF还可用于应用程序,最常见的是用于游戏(会使用ActionScript)。
  SWF文件是完整的、编译后且已发布的文件。
  可使用Adobe Flash或Flex Builder等开发工具生成SWF文件。
  3).FLV文件
  FLV是Flash Video的简称,是一种流行的网络视频格式。
  FLV串流媒体格式是一种新的视频格式,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上有效使用等缺点。
  一般FLV文件包在SWF PLAYER的壳里,并且FLV可以很好的保护原始地址,不容易被下载,从而起到保护版权的作用。
  FLV文件可由Adobe Flash软件所创建。
  FLV文件的音视频数据的编码方式与其在SWF文件的编码方式相同。
  2、ActionScript 3.0语言
  ActionScript 3.0是一门脚本语言,可用于Flash游戏的开发。ActionScript语言与JavaScript语言类似,两者都遵循ECMA 262标准。
  ActionScript语言与JavaScript语言两者的区别在于:
  * ActionScript 不支持特定于浏览器的对象,例如 Document、Window 和 Anchor。
  * ActionScript 没有为所有 JavaScript 内置对象都提供支持。
  * ActionScript 不支持某些 JavaScript 语法构造,例如语句标签。
  * 在 ActionScript 中,eval() 函数只能执行变量引用。
  * ActionScript 2.0 支持 ECMA-262 规范中没有的一些功能,例如类和强类型。这些功能中的很多功能都取自 ECMAScript (ECMA-262) 第 3 版语言规范(请参见 www.ecma-international.org/publications/standards/ Ecma-262.htm)。
  * ActionScript 不支持使用 RegExp 对象的正则表达式。但是,Macromedia Central 却支持 RegExp 对象。有关 Macromedia Central 的更多信息,请访问 www.macromedia.com/software/central。 
  ActionScript语言调用JavaScript语言的方法:
  为了从JavaScript调用ActionScript的方法,你必须确认以下文件都需包含到文档内:
   
   
   
   
  
  3、ActionScript脚本放置的位置
  您可以将ActionScript脚本直接放在时间轴的关键帧的影片剪辑或按钮处,或是影片剪辑的关键帧处,或在外部文件中。不推荐把代码直接放在影片剪辑或按钮处,因为这种方式创建的代码往往难以维护。把代码放置在外部文件中,并在时间轴中置入是很好的做法。
  4、Adobe Flash CS 3提供的视频部署方式
  ?? Progressive download from a web server
  放置于Web服务器上,以进度条的方式加载到本地(浏览器)
  ?? Stream from Flash Video Streaming Service
  从Flash视频流服务串流
  ?? Stream from Flash Media Server
  从Flash媒体服务器串流
  ?? As mobile device video bundled in SWF
  ?? Embed video in SWF and play in timeline
  ?? Linked QuickTime video for publishing to QuickTime
  5、流行的、专业的视频编辑工具
  ?? Adobe Premiere Pro CS4
  ?? Adobe After Effects CS4
  ?? Apple Final Cut Pro 7
  还有两个免费工具:
  ?? Windows Movie Maker
  ?? Apple iMovie
  6、风险
  我们面对的真正问题是Adobe处在开源与闭源的夹缝中,比如Flash,它绝大部分是开源的,但并不彻底。Adobe的Ludwig说,我们尽可能让它开源,但有一些编码技术还存在着限制,我们将尽力而为。
  7、开源Flash开发工具
  (1) MTASC
  MTASC全称“Motion-Twin ActionScript 2 Compiler”,是第一个开源的 ActionScript 编译器。可使用它直接生成SWF字节码,无需任何Flash工具。
  (2) ASDT
  ASDT:是Eclipse插件,也是Actionscript开发工具。它是用Java开发的,提供一个具有语法着色显示、代码完成、代码折叠、语法检查、代码导航、调用MTASC进行编译、代码模板、内容辅助等功能的编辑器和其它一些用于创建ActionScript2.0和编译SWF文件所需要的所有辅助工具。构建器和日记功能可以用来调试和部署完全采用ActionScript2.0编写的项目。
  (3) FlashDevelop
  FlashDevelop是Windows平台上的可替代ASDT+Eclipse的开发环境。它支持ActionScript 2和ActionScript 3的开发,提供了与ASDT相同的特征以及版本控制功能。
  (4) haXe开发工具
  haXe是一种面向Web技术的高级编程语言,它可以运行在Flash Player,也可运行到JavaScript的Runtime或是Neko Runtime环境。
  也就是说,其它很多语言只能运行在它们自己的平台,比如Java运行在JVM,C#运行在.Net,ActionsScript运行在Flash Player,而haXe则是一个多平台语言。你可以使用haXe开发多个平台的程序:
  ?? 可以把一个haXe程序编译成单个的.js文件。
  ?? 可以把一个haXe程序编译成一个.swf文件。
  ?? 可以把一个haXe程序编译成NekoVM的二进制代码。
  注:Neko是一个本地系统Runtime环境(类似于JRE),它允许haXe程序在本地运行。
  (5) swfmill
  Swfmill是一个使用SWFML实现的从XML到swf或者从swf到XML转换的命令行工具。Swfmill也是一个具有XSLT能力的生成swf的工具。
  SWFML是一个在SWF文件格式制定后制定的XML方言。
  (6) SWFObject
  SWFObject是一套JavaScript库,是嵌入Flash内容到HTML页面的最佳实践技术。
  SWFObject可以在HTML中插入Adobe Flash媒体资源模块(*.swf文件),这些模块是相互独立的、JavaScript模块。模块中的JavaScript脚本能够自动检测PC、 Mac机器上各种浏览器对Flash插件的支持情况。它使得插入的Flash媒体资源尽可能简捷、安全。而且它是符合搜索引擎优化原则的。此外,它能够避免HTML、XHTML中出现Object、Embed等非标准标签,从而使页面更加符合标准。
  (7) Sprouts
  Sprouts是一个开源项目,目前是使建立和维护Flash开发环境变得更容易。Sprouts能够创建和管理ActionScript 2、ActionScript 3以及基于Flex的项目的配置。
  8、开源Libraries和Toolkits
  (1) Fuse Kit
  Fuse Kit,常常也叫Fuse,是Moses Gunesch开发的一个库,它结合了渐变引擎和定序器,提供了强大的基于ActionScript 2代码的动画解决方案。使用Fuse可以轻松地建立动画,无需回调函数、定时器,或Tween类的扩展调用。
  Fuse Kit其实就是一堆AS文件,可以帮助你利用ActionScript来实现逼真的缓动效果,可以用来动态地添加滤镜效果,还可以生成一些基于时间的事件。
  (2) Papervision3D
  Papervision3D是一个开源、基于MIT许可证的、为Flash开发且使用ActionScript 3.0语言编写的3D引擎。
  Papervision3D的目标在于实现更加炫丽美观、功能强大的Flash 3D Web应用程序。自动ActionScript 3发布后,ActionScript的效率得到了大幅度提升,基于ActionScript 3的Papervision3D无论是在效率、功能上也有很大提高。随着现在 Web 2.0、Web-Game及休闲类竞技网络游戏的发展,相信Papervision3D的应用将会越来越广泛。
  (3) Screenweaver HX
  Screenweaver用于建立交叉平台的RIDAs(Rich Interfaced Desktop Applications)的软件。它分离了应用程序逻辑和应用程序接口的联系。Screenweaver软件在Neko和Flash这两个 Runtime环境之间建立了一个桥。
  Neko VM:运行haXe应用程序;
  Flash Player:运行Flash应用。
  9、开源Flash服务器端的技术
  (1) AMFPHP
  AMF:Action Message Format,是Flash平台的一种二进制数据交换格式。
  AMFPHP是AMF格式在服务器端的实现之一,AMFPHP提供了远程过程调用(RPC)功能,允许Flash应用调用服务器端的功能。
  另外,AMFPHP支持AMF格式,他能通过JSON和XML-RPC进行通信。
  AMFPHP是基于PHP语言的RPC工具,它可以使PHP与下述技术无缝通信:
  * Flash 和 Flex Remoting
  * JavaScript JSON 和 Ajax JSON
  * XML 和XML-RPC
  AMFPHP广泛用于各种便宜的Web主机环境。它无需任何特定的PHP扩展。
  (2) Red5
  Red5是一个采用Java开发的开源Flash流媒体服务器,与AMFPHP类似,它提供了AMF之上的RPC功能。Red5提供了流媒体和服务器端共享对象支持。视频和音频媒体可以串流到客户端,实现了Flash Media Server(FMS)的很多功能。视频和音频还可以用客户端的webcam和麦克风录制,并发送会服务器进行更多的处理或分发。
  Red5的主要功能:
  ?? 把音频(MP3)和视频(FLV)转换成播放流;
  ?? 录制客户端播放流(只支持FLV);
  ?? 共享对象;现场直播流发布;
  ?? 远程调用。
  Red5使用RSTP作为流媒体传输协议,在其自带的一些示例中演示了在线录制,flash流媒体播放,在线聊天,视频会议等一些基本功能。
  (3) SWX
  SWX是由Aral Balkan开发的服务器端的新技术。它使用SWF格式进行数据交换,还提供了比其它传输机制更好的几个优势:
  ?? 支持Flash Lite开发
  ?? 原生支持Flash Player,播放器处理时间最短
  ?? 非常易于使用
  SWX提供了RPC机制,允许Flash直接调用服务器内容。与AMFPHP或Red5不同,SWX提供了服务器端的多种实现:
  ?? SWX PHP
  ?? SWX Ruby
  ?? SWX Java
  10、Adobe提供的开源工具
  (1) Flex 3 SDK
  支持ActionScript 3开发,使用Flex框架,目标是Flash Player 9以上。
  (2) BlazeDS
  BlazeDS是基于Java的服务器解决方案,提供了Flash平台的实时通信服务。它由三个主要组件组成:
  ?? 访问服务器端的方法和对象的远程服务
  ?? 支持发布/订阅消息的消息服务
  ?? 允许Flash应用访问Flash安全沙盒禁止的数据类型的代理服务
  (3) ActionScript 3库
  Adobe提供了多个ActionScript 3库,如下:
  ?? as3ebaylib:通过ActionScript访问eBay的XML API。
  ?? as3corelib:ActionScript开发的类和工具集。
  ?? as3flexunitlib:Flex开发的单元测试框架。
  ?? as3odeolib:从Odeo服务中检索podcasts的ActionScript库。
  ?? as3youtubelib:访问YouTube data API的库。
  ?? as3syndicationlib:提供了处理RSS和Atom订阅的单个接口。
  ?? as3flickrlib:使用Flickr API的库。
  ?? as3mapprlib:提供了对Mappr API的访问。
  ?? Cairngorm:开发基于Flex的RIA应用的框架。
  11、其它的工具及库
  ?? AlivePDF:生成PDF的ActionScript库。
  ?? ARP:轻量级的开发框架。
  ?? AsWing:一个GUI框架,带ActionScript组件集。
  ?? Degrafa:一个Flex库,用于在MXML中创建绘画API。
  ?? FlexLib:一套基于Flex的组件集,带火的动画效果。
  ?? GoASAP:一个轻量级框架,建立ActionScript 3动画的工具。
  ?? ObjectHandles:一个Flex库,辅助建立界面,允许用户在屏幕上移动对象和调整对象的大小。
  ?? Pulse Particle System:是一款ActionScript 3.0粒子系统. 可以使用它自定义多种酷炫的粒子效果。
  ?? Sandy:AstionScript 2.0和3.0的3D显示引擎。
  ?? Prana:IoC容器的应用框架。
  ?? Tweener:ActionScript 3的渐变引擎,用于创建简单和复杂的动画。
  ?? http://spicefactory.org上还有数个项目。 
  
分享到:
评论

相关推荐

    Flash游戏开发技术分析.pdf

    Flash游戏开发技术分析.pdf

    FLASH游戏渲染技术

    FLASH游戏渲染技术 as 游戏开发必备 Flash游戏渲染方法分析 Flash渲染效率提高 Flash游戏素材保存与优化

    HTML5 Canvas游戏开发实战.pdf

    《HTML5 Canvas游戏开发实战》在介绍每个游戏开发的过程时,都会包括游戏分析、开发过程、代码解析和小结等相关内容,以帮助读者了解每种类型游戏开发的详细步骤,让读者彻底掌握各种类型游戏的开发思想。...

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    《C#开发实例大全(基础卷)》筛选、汇集了C#开发从基础知识到高级应用各个层面约600个实例及源代码,每个实例都按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析解读。全书分6篇共25章,主要...

    Flash教育资源内容分析与管理平台的开发研究 (2010年)

    Flash动画作为网络上流行的多媒体表现形式,在师生与数字环境及媒体的相互作用中发挥着越来越重要的作用,被广泛应用于课堂教学、精品课程网站建设、教育游戏、产品展示等领域,Flash教育资源的开发与获取技术已经成为...

    基于java的手机游戏毕业设计论文

    其是移动通信设备的飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品 的应用上,对设备的智能化、多样化,提供了革命性的解决方案,并因其“Write Once, run anywhere”的 Java 特性而提高开发的效率。 ...

    AS3雪球游戏

    但是一直以来,运行效率一直是Flash的核心问题与技术瓶颈。这篇文章会通过一个雪球粒子的例子来给大家介绍一个开发思路,一个如何使用位图来高效实现运算的思路。 需求 我们现在要做一个比较好玩儿的雪球效果,在...

    Google Android SDK开发范例大全(第3版) 1/5

    余志龙、陈昱勋、郑名杰、陈小风,分别来自手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及12EE、JSP、Servlet、Java Bean、PHP、C#等程序语言...

    Google Android SDK开发范例大全(第3版) 4/5

    余志龙、陈昱勋、郑名杰、陈小风,分别来自手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及12EE、JSP、Servlet、Java Bean、PHP、C#等程序语言...

    Google Android SDK开发范例大全(第3版) 3/5

    余志龙、陈昱勋、郑名杰、陈小风,分别来自手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及12EE、JSP、Servlet、Java Bean、PHP、C#等程序语言...

    Google Android SDK开发范例大全(第3版) 5/5

    余志龙、陈昱勋、郑名杰、陈小风,分别来自手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及12EE、JSP、Servlet、Java Bean、PHP、C#等程序语言...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    1.2.4 Android移动Web项目开发的三种解决方案:Native, Web和Hybrid优缺陷分析 4 1.2.5国内外应用现状 6 1.2.6 研究现状总结 7 1.3研究目标与内容 7 1.3.1多窗口浏览器模式的实现机制 7 1.3.2跨域交互即缓存处理方法...

    Visual C++程序开发范例宝典(PDF扫描版).part3

     cc实例120 透明的Flash动画   cc实例121 播放GIF动画   cc实例122 播放AVI动画   cc实例123 播放VCD   4.2 制作与播放音频   cc实例124 可以选择播放曲目的CD播放器   cc实例125 MP3播放器  ...

    Visual C++ 程序开发范例宝典 源码 光盘 part2

    cc实例201 设置“蜘蛛纸牌”游戏 cc实例202 修改“扫雷”游戏的设置 7.5 应用软件设置 cc实例203 设置Wordc2000文档及图片的保存路径 cc实例204 更改Photoshop安装时的登记信息 第8章 数据库技术 ...

    Visual C++程序开发范例宝典(PDF扫描版).part2

     cc实例120 透明的Flash动画   cc实例121 播放GIF动画   cc实例122 播放AVI动画   cc实例123 播放VCD   4.2 制作与播放音频   cc实例124 可以选择播放曲目的CD播放器   cc实例125 MP3播放器  ...

Global site tag (gtag.js) - Google Analytics