Flash&Flex大全

Flash&Flex大全

本文不再更新,详见: Goodbye, Flash!

目录

[TOC]

更新历史

  • 2010年11月29日更新:修改服务器软件部分,加入SmartFoxServer、QuickServer、Cindy、MINA的介绍。
  • 2010年11月24日更新:修改服务器软件部分,加入Wowza、ErlyVideo的介绍,修改Red5的介绍。
  • 2010年9月25日更新:修改编译与反编译器加密与混淆器部分。
  • 2010年9月18日更新:加入调试器
  • 2010年9月4日更新:删除数个无效的explorer
  • 2010年8月27日更新:加入数个Flash游戏、物理、3D引擎和UI组件,加入1个Flash开发框架。
  • 2010年8月25日更新:继续删除和修正链接,合并类别,加入了Flash游戏引擎,增加官方在线中文帮助。
  • 2010年8月24日更新:删除和修正了许多链接,修改了介绍,合并了类别,加入了Flash物理引擎类别。
  • 2011年5月15日更新:UI组件部分,加入几个轻量级纯AS组件的介绍。
  • 2011年5月13日更新:游戏引擎部分,修过多个引擎的介绍。
  • 2011年4月6日更新:游戏引擎部分,加入Flixel Power Tools等几个引擎的介绍。
  • 2011年3月3日更新:服务器部分,加入Openfire的介绍。
  • 2011年1月30日更新:混淆器部分,加入C Preprocessor for ActionScript的介绍。
  • 2011年1月7日更新:修改调试器部分,加入Kap Inspect的介绍。
  • 2012年2月25日更新:加入As3-Bloom的介绍。
  • 2012年3月12日更新:服务器部分,加入CRTMPServer和Mammoth Server的介绍。
  • 2013年9月10日更新:文章采用markdown重新排版,便于编辑;删除部分无效内容;从游戏引擎中拆分出2.5D引擎;在UI组件部分加入flexlite和morn UI。
  • 2013年11月28日更新:加入Nape引擎。

官方在线帮助(没标英文的都是中文)

Flash 3D(FlashPlayer11加入原生3D后的更多资料)

Flash物理引擎

Flash游戏引擎(参考来源:1|2)

  • PixelBlitz Engine这个引擎提供位图管理、碰撞检测、像素字体、游戏相关数学计算、键盘和鼠标管理等等功能。但它是一个未完成版本,它的开发者现在都去开发Flixel Power Tools了
  • flixel
    这是一个全位图引擎。所谓全位图,就是游戏场景中所有元件最终均绘制在一个位图对象上,在游戏过程中每帧进行重绘。也正因为如此,此引擎非常擅长处理同屏同时出现大量的游戏元件,其高效的渲染会让你激动不已。当你需要创建2D卷轴游戏或者场景中需要大量运动元素的游戏,Flixel引擎是你的首选。
    • 特性:
      • 采用QuadTree的对象链,高效的碰撞检测
      • 位图动画Sprite
      • 通过文本及图片创建Tiles地图
      • 简单易用的粒子系统
      • 高效的滚屏
      • 自定义的鼠标光标
      • 方便的debug显示终端
    • 典型案例:
  • Bold Pixel engine 以copyPixels方法写的位图引擎。里面实现了缓存BitmapData贴图管理等优化,不过没有对不在显示区域的对象进行过滤,以及其它优化。
  • FlashPunk(要翻墙才能访问)
    FlashPunk同样是个针对位图的开源引擎。它具有清晰的框架以及创建游戏需要的动画、碰撞等类库,让开发者更专注与游戏的设计与测试中。
    • 其主要特性包括:
      • 相对独立与固定的帧频时间步长控制
      • 像素、矩形区及网格的碰撞检测
      • 运动tweening
      • sorted的渲染列表,方便深度排序
      • 粒子系统
    • 典型案例:
  • pushbuttonengine
    简单介绍,Pushbutton引擎的特色有很多,包括建立游戏的模块片段,而不是整体式的应用;使用第三方类库更加容易;提供核心功能比如资源管理器、日志管理、调试检测、序列号、时间管理、全局命名对象等等;相关的组件包括基于Box2D的物理引擎、Rendering2D引擎、游戏常用的健康值组件、团队组件、状态机组件、贴图系统、路径查找类库、基本的网络联机和通讯服务; 将来会提供编辑器,以及网络联机组件,这两个组件都是收费组件; 该游戏引擎的官方网站还列出了组件商店的介绍,作为该组织出售组件和广大开发者出售组件的场所,这不失为一个好的商业模式。典型案例:
    • Social City这个在Facebook上月活跃用户超过一千万的游戏,采用了PushButton引擎。
    • The Incredible Machine Mega Pack不可思议的机器系列想必大家不陌生,这个版本的近400兆大小的单机游戏也出自该引擎。
  • mecheye-as3-libraries
    作者可能已经放弃开发了,zrong不推荐使用

2.5D引擎

下面是一些2.5D游戏引擎。所谓2.5D,我们也称之为Isometric,也就是游戏视角采取倾斜视角(如斜45度角等),以平面的方式展现固定视角的3D效果。目前很多网页游戏均采用2.5D的方式。需要注意的是,前面为大家介绍的位图2D引擎同样可以用来开发2.5D游戏。运用这些引擎,你可以把一些烦人的2.5D相关的坐标转换交给引擎处理,专注在你的游戏逻辑及设计上。

  • Pixas是一个开源ActionScript引擎,它能够使程序员利用纯粹的Actionscript3来构建等距像素Flash应用程序。利用Pixas你可以很容易的将等距像素元素,比如块、立方体、锥体和图层,添加到你的应用程序中。
  • AS3 ISO LIB
    As3isolib是一个基于ActionScript 3的 Isometric库,开发者运用它可以方便的开发2.5D的游戏或应用。
  • OpenSpace
    OpenSpace是一个非常不错的引擎,用户可以非常快速方便的创建2.5D游戏。配合该公司的另外一款通信服务器SmartFoxServer,可以搭建多人实时交互的虚拟场景。
    • 其特点包括:
      • 完善的地图编辑方式
      • 可缩放的场景
      • 自定义地图滚屏方式
      • 自定义的游戏角色
      • 地图自动寻径
    • 典型案例:
  • TheoWorlds
    TheoWorlds 除了包含Iso引擎之外,还包含聊天、地图编辑器等组件,可以帮助开发者快速的开发2.5D的虚拟世界。
    • 主要特性有:
      • 8方向的运动角色
      • 自定义角色形象
      • 自定义角色动作
      • 快速寻径及自动滚屏
      • 与SmartFox Server及ElectroServer等第三方即时通信服务器通信
      • 聊天历史、表情图标等
    • 相关演示:
  • FFlimation
    这个项目的主要目的是提供一个稳定的开发平台,这样游戏设计师就可以忘记游戏渲染引擎把精力集中在游戏内容的细节方面。从“关卡制作”的角度来看,这个引擎的可用性非常的高。
  • Citrus Engine
    Citrus 引擎是一种基于as3和box2d的flash滚屏平台游戏引擎。Cirus引擎能让设计师和开发者非常快速的容易的创建滚屏平台游戏(又叫横版过关游戏)象超级玛丽。团队可以用citrus引擎给游戏门户制作广告游戏,市场推广游戏,搏逸游戏等等。
  • Yogurt3D
    Yogurt3d的核心部分,swiftgl,是开源并且与opengl兼容。这意味着有opengl开发经验的开发者很容易的就可以开发出3d flash游戏和应用程序。他还可以轻易的将opengl代码转化成swiftgl并在flashplayer中运行。

UI组件与布局管理

  • flex
    原本是Adobe的商品,后来被捐献给Apache。
  • flex lite
    • FlexLite是一个为游戏而生的开源轻量级UI框架,旨在为游戏开发提供一个更加高效的UI工作流。
    • FlexLite Studio是针对FlexLite框架开发的所见即所得的可视化UI编辑软件,与传统纯AS游戏项目无缝集成。
  • Morn UI
    • 轻量级,可视化,高性能,易扩展的flash UI解决方案
    • Morn UI库以精简,直观为设计理念,代码轻量,能快速上手,减少学习成本,Morn UI全部库总大小不到30K
    • Morn UI提供强大的可视化编辑器,布局及属性均可在编辑器直观设置,实现UI和逻辑分离,让美术和程序轻松合作
    • Morn UI设计之初就以高性能为主要目标,以位图为基础,利用延迟渲染机制,实现了高性能
    • 无论UI组件还是编辑器插件,都非常易于扩展,编辑器支持即改即用,轻松实现个性化,甚至使用自己的UI库
  • Flash UI Component 基于Flash CS3的UI组件,可用于纯ActionScript项目。
  • AsWing
    AsWing是一套UI组件框架,纯ActionScript开发的组件框架(有ActionScript2和ActionScript3版本),也包含一些常用的工具类,目的是让Flash/Flex开发人员方便的开发出想要的应用程序界面。另外AsWing还提供SkinBuilder和GuiBuilder工具用于制作Skin和可视化编辑生成界面。目前AsWing团队专注于ActionScript3版本的开发和维护。AsWing以 BSD协议发布,不管你是商业还是非商业,都可以自由免费使用. zrong用过一段时间AsWing。看完AsWing的架构才发现,Flex4的spark组件引以为傲大肆宣传的layout,其实AsWing早就这么做了。 但zrong在使用AsWing开发的时候,碰到过许多莫名其妙的问题,找不到什么解决方案,目前已经放弃。
  • Gfl
    一个轻量级的基于纯AS的独立组件库,可以使用CSS语法。感谢smithfox的推荐。
  • Minimal Comps
    一套小巧可爱的纯AS组件,除AsWing外的又一选择。zrong发现纯AS的UI组件并不多,貌似除了AsWing也就只有这套了中文使用说明
  • As3-Bloom
    As-Bloom 是为开发者提供的一个轻量级用户界面。简要介绍其特性:
    • 主题编辑器
    • 边缘布局系统
    • 画刷皮肤系统,轻松改变组件风格
    • 类结构更为清晰,易于初学者上手
    • 保持短小精悍的文件尺寸,内存占用低
  • Skinnable Minimal Components
    MinimalComps的官方版本是不支持皮肤的,而这个就是它支持皮肤的版本。
  • razor components
    一套支持皮肤的纯AS组件。
  • MadCommponents
    一套轻量级的纯AS组件,适合用在移动设备上。
  • AS3Flobile
    这一套也是比较轻量级的
  • Base UI
    纯AS实现的布局框架,功能很全,配合Minimal Comps再好不过了。快速查看布局效果
  • miniui 这是一个开源的flash ui 框架。支持主流框架的skin和layout等功能,但是体积却非常小。
  • FlexLib
    一套包含很多FLEX高级组件的开源类库。包含这些组件:AdvancedForm, Base64Image,EnhancedButtonSkin, CanvasButton, ConvertibleTreeList, Draggable,Slider, Fire, Highlighter, HorizontalAxisDataSelector ImageMap,PromptingTextInput, Scrollable Menu Controls, SuperTabNavigator,Alternative Scrolling Canvases, Horizontal Accordion, TreeGrid,FlowBox, Docking ToolBar 。
  • FlexMDI
    是一个在Flex中轻松创建多窗口(MDI)的一个框架,提供了很多功能,包括拖拽,最大化,最小化,各种效果等。
    现在FlexMDI已经整合进入FlexLib组件,成为其中的一个包flexlib.mdi MDIManager介绍 flexmdi中的效果
  • vancura-AS3-libs
    提供纯AS3组件的皮肤和样式的集合。支持Scale9Bitmap
  • BrowserCanvas
    提供容易的方式动态修改Flash尺寸大小
  • senocular Layout class
    除了布局工具,还有其他许多有用的工具
  • Yahoo ASTRA: ActionScript Toolkit for Rich Applications
    这是Yahoo开发的一套RIA组件包,包含以下内容
  • EnFlash 仅支持AS2
  • XMCA 仅支持AS2
  • BIT Component Set 商业组件 $99
  • GhostWire Components 商业组件 标准版$149 精简版$99

Tween

ActionScript3.0 API

ActionScript编辑器

  • Flash Builder Adobe官方提供的编辑器,没什么好说的。
  • InteliJ IDEA
    据说是最好的JAVA IDE,Google的AndroidStudio也基于它开发。只有收费版才支持Flex和AS3开发。
  • FDT FDT是Flash Development Tool 的简称,是非常优秀的ActionScript编辑器。与FlashBuilder相同,它也是基于Eclipse开发。它支持高级的代码自动完成功能,具有强大的实时错误检测和除错功能,可以导入Flash的帮助文件,实现同Flash一样方便的帮助信息等等。有免费版。
  • FlashDevelop 小巧免费快速的AS编辑器,支持Flex和AIR开发,基于.NET,启动快速,免费。zrong在用这个。
  • SEPY ActionScript Editor 强大的开源AS编辑器,使用python开发。最近一次更新是在2007年2月10日,估计没戏了。

调试器 来自 评测

  • Kap Inspect如果你没用过spy工具,你可曾想实时监控swf application的的所有事件? 你可曾想查看swf有没有内存泄漏问题?你可曾想看看到底DisplayObject tree是什么样的?你可曾想查看所有控件的属性,甚至在运行时改一下?来自
  • ThunderBolt 是个面向ActionScript 2和3的Firebug轻量级记录器扩展,无法使用Firebug的AIR程序,ThunderBolt有ThunderBolt AS3 Console可以使用。
  • Arthropod 是个面向Flash和AIR开发的调试工具。其易用性非常好,下载后直接就可以使用, 开发者可以在运行期轻松调试应用。
  • Alcon是面向ActionScript开发者的一个轻量级调试工具,提供直接且快捷的方法来调试任何ActionScript 2或ActionScript 3应 用,无论这些ActionScript是来自于Web浏览器、独立的Flash Player还是AIR运行时都没有问题。
  • De MonsterDebugger 是个面向Flash、Flex及AIR项目的开源、轻量级的调试器,功能完善,完全使用Adobe AIR开发。
  • reflexutil是个Flex调试工具,可以在运行时时实改变控件的属性。

Flex Explorer

Flex开发框架

  • Cairngorm
    是为方便FLEX开发企业级应用而开发的一个微架构。假如项目比较复杂,需要3个开发员以上来共同开发,Cairngorm是一个最正统的选择(官方推 荐),虽然开始时有点难学。而做小型项目或项目是由你自己一个人开发的话,那就用PureMVC吧。 不过即使开发不使用它,也可以参考它的源码,毕竟Iteration:two的大量企业级应用的design patterns还是很值得学习的。
  • PureMVC zrong就用这个
  • ARP
  • MVCS
  • Flest
  • Model-Glue:Flex
  • ServerBox Foundry
  • Guasax
  • Slide
  • Luke Bayes
  • Ali Mills
  • SomaUI

编译与反编译器 部分转自

  • 硕思闪客精灵(商业软件)
  • imperator(商业软件)
  • Action Script Viewer(商业软件)
  • Flasm(自由软件)反编译swf成字节码(bytecode),将修改的字节码再编译成swf。理论上可以反编译任何加密方式的swf,用汇编语言来写ACTION SCRIPT,FLASM能帮你将SWF里面的AS转换成汇编语言,然后你要做的是优化这些代码,最后交由FLASM再把他转回SWF,FLASM的语法与汇编类似,但只能支持到Flash 8。
  • Flare(自由软件)Flare是一个免费的swf反编译器. 目前最高只支持Flash MX 2004 和Flash 8。
  • swfparser(开源软件)一个 Java 编写的简单的用来反编译 swf 的工具,只支持到Flash 8。
  • swftools是一个方便,易于使用的实用程序收集专门设计,使您与Adobe的Flash文件(SWF文件)工作变得更容易,目前支持Windows和Linux。
    • PDF2SWF是一个PDF格式到SWF格式转换器。每页生成一帧。使你有完整的格式化文本,包括表格,在你的Flash电影上。它基于PDF格式的解析器。结合FlexPaper可以实现类似Baidu文库/豆丁网的Flash文档阅读器,不过要达到上面两种一样应用还需要不少改进
    • SWFCombine工具插入一个对pdf2swf转成文件的显示封装。 (模板)例如见,包括在一些浏览SWF的排序pdf2swf。
    • SWFString搜索出SWF里的文本数据。
    • SWFDump列出有关swf文件里的各种信息如:Sprite, Shape, String等。
    • JPEG2SWF添加一个或多个JPEG图片,并产生一个SWF幻灯片。
    • PNG2SWF 同JPEG2SWF相似,支持png格式。
    • GIF2SWF转换的GIF到SWF。还能够处理GIF动画。
    • WAV2SWF WAV音频文件转换为SWF文件,使用的LAME MP3编码器库。
    • AVI2SWF的AVI动画文件转换为SWF。它支持Flash MX中的H.263压缩。有些例子可以找到examples.html。
    • Font2SWF转换字体成为SWF文件。
    • SWFBBox允许调整SWF的封装Viwer。
    • SWFC的工具,从简单的脚本文件创建的SWF文件。
    • SWFExtract允许提取影片剪辑,声音,图像等从SWF文件。
    • RFXSWF 一个功能齐全的Flash库,可用于独立的SWF。包括位图,按钮,形状,文字,字体,声音等的支持,也为ActionScript支持使用明ActionCompiler。
    • AS3Compile ActionScript 3.0编译器,与官方的Flex SDK 里的mxmlc相比功能很少,你可以输入as3compile –help查看参数
  • Ming可以用来生成swf文件,包括在swf文件内增加图片,声音,视频等素材,也可以在文件内增加代码,使用滤镜.可以使用php,perl,python,ruby,java生成swf文件,php5安装的时候自带,php5帮助里面用完整的函数说明。
    • swftophp - SWF to PHP converter
    • makefdb - Font Definition Ripper
    • listfdb - List Font Definition
    • listjpeg – List JPEGs
    • listswf - SWF Disassembler
    • listaction – Actions Script Disassembler
    • png2dbl - PNG convert
    • gif2dbl - GIF converter
    • gif2mask – GIF Mask extractor
    • raw2adpcm - Audio Converter
  • Swfmill是一个功能可靠使用方便的命令行工具,可以使用SWFML实现的xml和swf之间的转换,还可以利用xslt生成swf文件,也是FAMES生成SWF密不可分的一部分。SWFML是一种在SWF文件格式制定后制定的XML语言。
  • Nemo 440(免费软件)AIR编写的ActionScript 3/ABC2/Flex 2/Flex 3/Flex 4/AIR反编译器,并不能还原成AS文件,只是反编译成类似字节码的代码。
  • swfdump和swfutils.jar,包含在Flex4 SDK中,swfdump调用swfutils.jar工作,将swf编译成字节码。可以看看这篇文章的介绍。

加密与混淆器

外壳

视频

服务器软件

  • C++ RTMP Server(crtmpserver/rtmpd)
    一个C++实现的媒体服务器,支持RTMP,RTMPE, RTMPS, RTMPT, RTMPTE协议和易懂设备,支持MPEG-TS/RTSP/RTCP/RTP协议。
  • Mammoth Server
    也是一个C++实现的支持RTMP协议的流媒体服务器。
  • Red5
    使用Java编写的开源软件,可以用来替代Flash Media Server(原Flash Communication Server)
  • Wowza Media Server
    商业软件,又一个FMS替代品,除了RTMP外,还支持多种协议和多种客户端(Silverlight、QuickTime等等)
  • ErlyVideo一个使用Erlang语言编写的FMS替代品,支持HTTP MPEG-TS流、RTMP流和IPhone流。
  • SmartFoxServer
    商业软件。它是专门为Adobe Flash设计的跨平台socket服务器,让开发者高效地开发多人应用及游戏。服务器端可以使用Actionscript, Javascript, Python和Java语言进行扩展。自带数据库和HTTP服务器引擎。
    中文介绍 中文文档
  • Openfire
    使用Java开发聊天和IM服务器,实现了XMPP协议。据说Google Wave的协议也是基于它的,底层使用Apache MINA(下面有介绍)。
  • QuickServer 它是一个免费的开源Java库,用于快速创建健壮的多线程、多客户端TCP服务器应用程序。使用QuickServer,用户可以只集中处理应用程序的逻辑/协议。 中文开发指南
  • MINA
    Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中。
  • Cindy
    Cindy是一个强壮,可扩展,高效的异步I/O框架。支持TCP,SSL-TCP, UDP和Pipe。
  • OneTeam Media Server又一个使用Erlang语言编写的开源FMS替代品 来自
    1. 支持流式播放实时或已录制好的媒体内容
    2. 支持录制实时内容
    3. 支持AS3 SharedObject共享对象
    4. 支持Clustering集群
    5. 支持用Erlang/OTP编写应用程序模块
  • TightVNC
    并非Flash专用,提供远程控制服务
    参见FlashVNC
  • vnc2swf
    将VNC的内容保存成SWF

开发

应用

Flash Remoting

  • webORB
    包含.NET、JAVA、PHP和 Ruby on Rails版本的Remoting。
  • FluorineFx
    Flash Remoting for .NET,开源
  • Zend AMF
    Zend出品,算是官方支持了。Flash Builder自带了这套框架。
  • OpenAMF on sourceforge
    JAVA Flash Remoting
  • rubyamf
    RubyAMF is an open source flash remoting gateway for rails. It plugs?directly into your controllers with render :amf.
  • amfphp(不推荐)
    Flash Remoting for PHP,开源

ActionScript 1.0/2.0