1 .Flash Builder 4和Flash Catalyst视频top
作者:郭少瑞

本周为大家带来三个RIA相关的视频,第一个视频是关于Flash Builder4的简介,由RIAMeeting翻译小组翻译自Adobe Labs网站。

点击这里观看介绍Flash Builder 4的视频[中文字幕]

然后是两个介绍Flash Catalyst的视频,由RIAMeeting整理并制作发布。

视频:介绍Flash Catalyst及制作实例[中文]

视频地址:http://www.riameeting.com/node/256

2 .为什么说HTML5不是Flash的终结者 top
作者:郭少瑞

最近关于HTML5的话题非常的火,大家讨论激烈,莫衷一是,那么来看看这篇文章,原文在: http://www.jadbox.com/2009/06/why-html-5-is-not-a-flash-killer/

在作者看来,HTML5定义的新特性,需要很长的时间来实施。画布绘图和视频播放的功能,应该在10年前就已经开始实施了,如果W3C动作再快一点,我们现在可能已经在使用HTML9了。值得注意的一点是,Flash或任何其它的富媒体插件都不会受到HTML5的威胁,视频播放和简单的画布支持只是Flash开发中的很小一部分。

人们有一个很大的误解,就是认为之所以在网页上使用Flash技术很大一部分原因是为了播放视频。甚至认为正是由于视频播放技术才使Flash生存至今(包括数字加密,动态缓冲,视频控制),并与其它技术相区别。现在看起来好像宣传HTML5的大都是HTML开发人员,似乎他们不喜欢Flash,当然作者本人没有指责任何人的意思,只是“HTML5将干掉Flash,Silverlight,Unity3D,O3D,或者任何其它的富媒体插件”这个说法,很明显忽略了一个事实,即:这些工具实际上已经创建了很多大型的应用,游戏,3D多媒体开发。或许你会说有人会基于Canvas写一个3D引擎,但是它的速度将难以抗衡浏览器插件,而且难以使用硬件加速。

作者想说的是,应该使用正确的工具做正确的事情。Silverlight是一个多媒体工具,用于和.NET协作开发;Flash是一个多媒体工具,适用于非编程人员和Java类别的开发人员。HTML是一个伟大的网页标记语言,适合介绍内容。使用不合适的工具达到目的是滥用平台。挑选最合适的工具才是对项目最重要的。

3 .Adobe AIR现在的安装量已经超过了2亿次 top
作者:郭少瑞

这是一篇来自Adobe开发团队的信息(也是非常鼓舞AIR开发者的一条信息),原文地址: http://blogs.adobe.com/air/2009/06/adobe_air_now_installed_over_2.html

在几周之前的一次公开会议中,Adobe CTO Kevin Lynch提及AIR的安装量已经超过了2亿次,然后很多的开发者开始关心这个数字是不是正确的,现在我们(Adobe AIR Team)可以证实,截止到2009年6月1日,AIR已经在世界各地的超过2亿台计算机中被安装了。

其中1亿次在AIR推出的10个月内就被安装了,而整个2亿次的安装量也随着更多的AIR应用进入市场,在短短16个月内完成。

最受欢迎的AIR应用包括:

  1. Acrobat.com Desktop
  2. TweenDeck
  3. eBay Desktop
  4. BBC iPlayer Downloader ( 只对英国可见)
  5. New York Times Reader
  6. Time 100 Application

除了这些大公司,很多小公司也在积极推出他们的AIR应用,其中 Seesmic Desktop 说他们的应用已经获得了一万次的下载量(他们的应用提供了Facebook和Twitter的整合)。许多独立的软件开发商也开始使用AIR技术做应用,比如:

  1. Socialtext Desktop
  2. Demandbase Streams
  3. Yammer Desktop
  4. FedEx Desktop

点击这里查看详细信息

4 .Flash Builder 4 beta - 导出ASDoc文档top
作者:郭少瑞

这是来自Peter Elst's Blog的一篇文章,原文地址在:http://www.peterelst.com/blog/2009/06/08/flash-builder-4-beta-exporting-asdoc-documentation/

作者认为,虽然Flash Builder 4 beta增强了对ASDoc的支持,但它看起来还是没有提供一个简单的方式来导出HTML,所以如果要在Flash Builder 4 beta中实现这个功能,你需要使用扩展工具配置(external tool configuration)。

ASDoc是用于将你的项目代码中的注释提取出来并按照类,变量,方法等形式组织起来的一个帮助文档,可以导出为HTML格式,如果你的桌面上正好有一个AS3的语法手册,那就很容易理解ASDoc导出的格式是怎样的。

下面的步骤介绍了如何在Flash Builder 4 Beta中使用ASDoc功能:

  1. 选择菜单栏的 Run > External Tools > External Tools Configurations
  2. 选择 Program (在左侧) 并且点击 New 按钮创建一个新的配置
  3. 新配置命名为 “ASDoc”
  4. 选择文件目录到“/Applications/Adobe Flash Builder Beta/sdks/4.0.0/bin/asdoc” (苹果系统) ,Windows系统默认的是 “你的程序安装路径\Adobe Flash Builder Beta\sdks\4.0.0\bin\asdoc.exe”
  5. 设置“Working Directory” 为 ${project_loc}, 这是一个变量,指向你当前的项目
  6. 设置以下的参数,含义是默认的源码目录是src:
    -source-path src
    -doc-sources src

配置完成后,应该是如下图所示的样子:

要运行ASDoc并把文档导出到HTML,请选择菜单中的 Run > External Tools > ASDoc,当输出完成后,你可以在项目目录下的“asdoc-output”中找到导出的文档。

快试试吧!

5 .关于完美的Flex应用框架的思考(Part 1 of 2) top
作者:李文智

自Flex技术开始广泛应用以来,对于企业级Flex应用开发框架的讨论就从未停止过,这篇文章是对于构成完美Flex框架要素的思考的第一部分,其中评价了主流的一些Flex框架,相信对于广大开发者来说有很大的参考价值。

在过去的十几年中,大多数企业开发的web框架看起来都关注于问题的结构部分,它们实际上为解决问题而构建的应用只提供了很小的价值。看看那些大多数的JAVA框架,它们甚至不去提供一个内置的组件集。此外,在Flex生态圈,事实上所有的主流第三方Flex框架的诞生,看起来主要的目标是为了增强或者允许使用MVC模式,而唯一例外的是Clear Toolkit,它提供了一些有趣的企业特色;Flex带来了一场革命因为它的出现最主要的意义是让开发者大大提高了构建酷绚应用的效率,因此,Flex是一个完整的平台,而且常常是建立理想应用所需的唯一框架。它提供在MVC架构内建立应用的基础设施,和一系列完整的组件来满足企业应用中的各种需求。当审视应用开发的各个组成部分,工程师们应该只带上能满足核心功能和非功能性需求的工具,或者专注于解决项目中存在的风险就够了。有了Flex平台的帮助,你不应该带着这样的假设去做事情:可能还需要加入第三方框架的支持。

话又说回来,Flex确实有缺点而且可以被改进或者用有趣的和有用的方式扩展它,而且,有一个基础设施来帮助开发者进行合理的分离应用代码中的关注点是有意义的事情。坦率的讲,如果采用第三方框架来获取这种基础设施的成本低的话,那么就没有理由来反对引入一个第三方的解决方案。让我们看看几个Flex框架在这个方面的表现如何:

Cairngorm: 采用和长期所有权的成本太高,有大量必须的代码来实现即使是最微小的功能,对于单个开发者来说,需要认真考虑它是不是该值得采用,这种情况下它的作用不是那么明显(The leverage just is not here)。

Mate: Mate解决了分离关注的问题,通过提供给开发者一个全局的事件总线来处理事件,这个方法非常适合构建Flex应用的理想方式。尽管我趋于相信不是所有的事件是全局的,而且可能根本不需要外部化,但是这肯定是迷题(开发任务)的一个重要部分,有一个合理的方法来关联事件,总的采用成本是低的;

Swiz: Swiz跟Mate比较像,它有个有限的外围接口来供开发者学习,它分离事物的主要机制是使用依赖注入,它在语法和易用性上相当的优雅。

以上三个框架中的两个采用成本是底的,他们也只限于解决Flex开发者的几个问题,这就是这篇文章要讲的关于什么是,应该,可能,将会是完美的Flex框架,在第二部分,我将会做一个尝试,提出我对完美的第三方框架的需求。

6 .Flex modules 与 PureMVC pipes 结合的简单例子top
作者:李文智

做过大型Flex开发的人都会遇到处理多个Modules之间通讯,以及Module加载卸载的问题,这个问题处理不当,会引起很大的内存泄漏问题,本文利用PureMVC的pipes utility框架,并做了进一步的改进以解决性能上的问题,值得我们好好研究。

笔者为了演示这种多模块交互的场景,特地做了个demo来说明原理,点击"add hello module"按钮后稍等片刻,就会加载一个带按钮和表格的模块,然后继续点击"add hello module"来复制多个实例,随后点击模块或者主应用的按钮来进行通讯操作,可以看到不同模块之间,以及主应用之间都可以进行交互。那么这个例子是要达到什么样的目的呢:

  • 添加和加载Flex module(以文件的形式加载);
  • 移除模块和他们所有的连接,使得他们可以被垃圾回收;
  • 一个模块可以发送消息到其他的模块;
  • 一个模块可以发送消息仅到特定类型的模块(使用pipes过滤器);
  • 一个模块可以发送消息到外壳中;
  • 一个模块可以接收消息从外壳中;

这个项目(例子)的主要问题是让模块之间互相通讯,如果你跟随Pipe utility的指导,你可以做些改动来让每个插件(模块mediator)有个TeeSplit(输出端)和TeeMerge(输入端)来连接其他模块。这样可以以一种非常简单而且漂亮的方式,而且代码不超过20几行的ModuleMediator来实现。但是如果有很多模块的话,会变得在运行时沉重(主要是内存消耗大),当从一个模块中移除另一个模块中时,会妨碍正常的从中移除outputpipes(这是一种引用关系)。

因此我选择创建一个ModuleJunctionMediator致力于连接所有的模块,这个ModuleJunctionMediator非常的简单,它可以连接每一个新的模块,用TeeMerge和TeeSplit。因为它维护着一个对唯一Junction实例的引用,它在任何需要的时候都可以通过Junciton.disconnectFiting方法,恰当的切断与任何模块的连接,它最后的而且是主要的角色是转发从一个模块到其他模块的消息。

编者注:PureMVC对Flex中的模块的处理引入了特别的机制和概念,本文只是简单做了介绍,后面的专题会做详细介绍。

7 .OAuth在ActionScript中的使用步骤 top
作者:Meaglith

OAuth协议是现在众多网站提供API服务所选择的认证方式,它为API服务提供一个安全、统一和开放的标准。众多知名的互联网公司选择了OAuth协议,如:Twitter、Google和MySpace等;或者采用类似的认证方式,如flickr等。

Twitter.com的API在初期使用了Basic Auth的认证方式,第三方应用只要把用户名和密码进行BASE64加密,加入到HTTP的Header中就可以使用访问受限资源的API。随着用户和第三方应用越来越多,把用户名和密码交给第三方应用的方式越来越不安全;如果修改了密码,要在众多的第三方程序间同步密码也变得非常麻烦。

最终Twitter的开发团队终于下决心采用OAuth协议对第三方应用进行授权,用户可以随时在设置里取消授权,就算修改了密码也不必为修改授权应用的密码操心。因为OAuth协议的安全性和可靠性,在当今流行的网络服务提供商中绝大多数选择了它。

在Twitter的众第三方多应用中,AIR类占了很大比例。其中最知名的就是Twhirl了,可惜的是它目前还不支持OAuth认证。要想为Twhirl加入OAuth其实很容易,看完下面的例子你也可以轻松做到在Flex/AIR的应用里面实现OAuth。

访问地址:http://blog.douhua.im/2009/06/18/actionscript-for-oauth-step-by-step/

8 .Cynergy.Congress - 基于Flex 4 & Catalyst开发的新案例介绍 top
作者:李文智

知名的RIA咨询公司CynergySystems最近宣布了一个基于Flex4/FlashBuilder4/Flash Catalyst工作流开发的应用:Cynergy.Congress,通过该应用来展示美国议会538个议员(包括当前执政的和退休的)的资料情况。这个项目是Adobe为了获得用户对Flex4和Catalyst的使用情况和评价,以及用户对这个工作流程的适应情况、感官情况,反馈使用新工具能创建什么样的实际项目而建立的。

整个应用界面组织比较简单,两种模式表格模式和缩略图模式可以查看所有的成员,通过顶部的过滤条件可以筛选符合条件的议员,每条记录都可以点进去查看细节;最精彩的莫过于查看单个议员界面设计,左边是半圆形议员菜单,中间是围绕在议员周围环形排列的相关视频,右边是折叠菜单的分类资料,这些资料与议员头像通过类似于注释方式的连线连接起来,而且会动画显示,这个设计非常新颖,非常吸引人。

那么这么酷的应用,究竟花了多少时间来完成呢?这个项目总共花了160人小时的工作,由两人在两周的时间内完成。采用工作流Catalyst->Flex4 ,使用ColdFusion8为后端服务。这个项目的部分源码不久会由Adobe放出。这个应用的设计工作开始是在Fireworks中制作,随后导入FlashCatalyst,在Catalyst中,设计人员将其中的内容转为组件,以便开发者在Flex4项目中继续工作。当服务端(主要是利用Coldfusion做了开放数据的本地缓存)准备好后,集成设计和开发就变成小菜一碟了,开发人员使用FlashBuilder数据导入向导来从ColdFusion服务器中自动生成服务类,和返回的值对象,最后剩下的就是集成设计和实际数据了。

该文章最后还简要介绍了一下构成该应用的,自定义的Spark体系组件的代码片段,从中能看出这种组件的强大与灵活。

编者注:Flex4/FlashCatalyst工作流的引入是RIA/Flex开发领域的一个重大革新,彻底将改变原有的Flex开发方式和工作方式,值得我们开发者重点关注和学习。