Flash游戏开发技术分析(下)

    技术2022-05-11  1

    Flash游戏开发技术分析(下)

    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上还有数个项目。


    最新回复(0)