“Flex”目录存档

对于Flex最需要了解的10件事情

2009年09月1日,星期二

Flex最近的新闻很多,很多开发者听说过Flex,并对之产生兴趣,但是并不知道Flex到底是什么。Schalk Neethling总结了对于Flex最需要了解的10件事情。

1。Flex是web标准

MXML是Flex应用程序的标准语言,它允许开发者定制的结构应用,不仅包括布局还包括class结构,非常简单用于标记,这个特性非常方便有web设 计和开发背景的开发者,用类似HTML的MXML开发。同样,Flex的ActionScript和JavaScript类似,Flex使用web标准的 CSS控制布局。Flex应用一条方便的途径来定制应用结构,类似树结构原型语言和容器组件模型应用完美结合。源代码很容易发布,不是二进制需要IDE的 文件,而是简单可读性很强的text文件。

值得一提的是MXML是ActionScript的一种速记,ECMA兼容脚本语言,MXML在编译时转换成ActionScript 3。

2。Flex是Flash

如果你熟悉Flash过去所提供的轻量级矢量动画和先进的用户界面,那么你对Flex不会陌生。Flex建立在顶级Flash Player之上,引擎藏在所有Flash内容后,从这方面来说,没有什么是Flash能作而Flex不能作的。

3。Flex Just Works

很多公司使用Flex替换Java,因为提供和Java类似的跨平台能力和现代面向对象的架构,但是只需要一个小得多的封装和额外的负荷。Flex应用完全能够完成基于web的软件,以及桌面软件(结合Adobe AIR)。

4。Flex不受服务器限制

Flex由数据构成,能够接受不同格式的数据和最与最常见的服务器互动。加载XML通过本地或者远程方式,JSP, PHP, ASP, ColdFusion等。你能通过HTTP或者SOAP web services下载信息,甚至能够直接接受Java 服务对象来读写SQLLite数据库。

5。Flex外观能够被你任意定制

Flex应用外观的可定制化非常大,可以任意切换”皮肤”和定制UI。这一点不像Java或者JavaScript,并不是继承所运行的操作系统的UI,这意味着Flex运行在Mac OSX上,按钮不会变成Mac风格的按钮,Flex由自己内建的外观所设置。

6。Flex是轻量和快速的

建立在ActionScript 3上,Flex框架速度是非常快的。初始化时间对于ActionScript 2已经大大改善。Flex采用新的JIT(Just-in-Time)编译器,加快了运行速度。当然,有些人会辩称,使用了一整套用户界面组件一定会影响 速度,事实上,一个典型的使用AJAX框架的应用程序比类似的Flex应用程序要大,Flash Player只有几M字节,而且往往预先安装在电脑上。这也是值得一提的新功能,即框架缓存,能够节省很多大一部分下载框架内组成部分的时间。这个功能可 以存储标准的Flex UI组件在用户的机器上,以便其他Flex应用程序运行时无需下载整个框架。

7。Flex是无障碍的

很多人认为Flash内容是很难进入的,这是一个错觉。事实上,Flex框架组件拥有很好的互动,比如屏幕阅读和键盘导航,开发者只需要打开这个开关(缺省是关闭的)。

8。Flex兼容搜索引擎优化

Flash内容很难被搜索引擎收录,这一直是作内容的网站开发的问题。Adobe最近发布了针对搜索引擎优化的Flash Player特殊版本。当然这个问题彻底解决需要时间。

9。Flex是免费和开源的

Flex完全是开源的,整个框架源代码都可以在Adobe网站下载。

10。Flex是易学的

MXML非常简单,容易理解。如果你曾经使用过HTML和CSS,你很快就能上手MXML。

中文参考:http://anapple.org/thread13474.html
英文原文:http://css.dzone.com/news/the-top-10-things-you-should-k

Adobe Flex3.0 学习心得分享

2009年08月21日,星期五

目前Adobe Flex的中文版学习资料和书籍都比较少,而且大多都很零散,信息很不全,不适合用来系统地学习。我刚开始进行FLEX3.0入门是看的书籍 《FLEX3.0完全手册》。说是完全,呵呵,只是蜻蜓点水而已,如果想做稍微复杂一点的应用,就完全不行。刚开始我也是头非常的大,后来我到处在网上查 找FLEX3.0相关的中文资料。如,AS3.0语言参考、FLEX3.0中文帮助等。当然更多的是遇到问题百度搜索。我在这里罗列一下在我的学习过程中 读过的一些资料。当然是以Adobe的官方文档为主,这些文档内容非常详尽,应该作为学习的首选。

首先下载并安装好Flex开发工具Flex Builder 3。默认浏览器是,主持FLASH PLAYER 9,完全面对对象的开发语言结构,非常不错。对于熟悉面对对象语言的程序员而言,那是非常容易上手的!

对于初学者,我建议还是买本书在边上,可以随时看,我个人推荐《FLEX3.0完全手册》。里面对一些FLEX的结构、AS3.0以及相关的组 件,都有介绍,虽然不是非常详细,但对于入门而言,比较足够。因为我们要学习一个工具或一门语言,我们必须要先知道它能做什么,然后我们再去研究 怎么做。看了这本书大体上能知道FLEX3.0能做些什么。至于怎么做,做的多好,就看个人的造化了。

在学习FLEX3.0的时候,务必要配合官方文档来对组建以及相关类进行详细的了解,否则会无所适从。以下地址是ADOBE的中文在线官方文档。内容非常详细,可以说AS2.0和3.0的介绍以及相关使用例程,里面都有!

http://help.adobe.com/zh_CN/Flash/10.0_Welcome/index.html

但是使用官方在线文档的1个问题,就是访问速度,很多时候都打不开或则超慢,所以,我建议大家也去网上下载相关的离线中文帮助文档。

但是目前网络上大部门的文档章节和内容都不怎么全,这是非常纳闷的事情,所以,建议整个好的带宽,然后网络好的时候,最好是把自己查看过的相关帮助都保存在本地。至于ADOBE官方的在线搜索,搜索到的基本都是英文的。看着累!

当然,如果你英文好,那就轻松的很。在官方帮助上几乎可以搜索到所有的问题!!!我做FLEX的时候经常遇到一些奇怪的问题。但是在百度怎么也搜索不到,后来还是在ADOBE的官方帮助和论坛搜索到相关解决方法!

在这里,我再次建议那些英文好的同志,多去ADOBE官方论坛溜达,那里面牛人可多了!!!我在里面一般都只有用CHINESE ENGLISH问问题的份。

以下3本中文文档来自Flash 9的官方文档:

《ActionScript 3.0编程》 ,pdf格式。务必熟读。

《使用ActionScript 3.0组件》,pdf格式。参考、查阅。

《ActionScript 3.0语言和组件参考》,chm格式。参考、查阅。

然后就只能读英文文档了,Flex 3的官方文档都是英文版的。查阅FLEX 3的官方英文文档那是非常简单的,安装了FLEX3以后,帮助里就有详细的文档了。我装的中文版,但一样是英文文档:(真希望哪个中国的公司能把这些企业 都收购了!!!我看他们出不出中文文档! (转载)

Flex SDK 4:Gumbo的主题 极其快速的RIA开发

2009年08月5日,星期三

六月初,Adobe公司发布了最新的Flash平台测试版,其中包括Adobe FlashBuilder4, Adobe Flash Catalyst和开源的Flex 4框架。FlexSDK4代号Gumbo,在下文中将介绍这个Gumbo的三大主题。(51CTO编辑推荐:图解Flash Builder4.0(Gumbo)UI、功能新体验) 

  Gumbo的主要“主题”概述

  设计思维

  对增强和定制化外观的过程进行改进,改进用户的RIAs开发体验。增强“状态”、“效果”和“布局”,建立新组件,并引进FXG。

  开发人员的工作效率

  Flex是一个惊人的框架,它可以极其迅速地加快RIA开发进程。目前正竭力做出改进,来增加开发人员的工作效率。包括增加编译速度!

  框架演变

  总是会为FlashPlayer增加令人惊奇的新功能,最新版本的Player也不例外。Flex4将会充分利用这些新功能和更新。

  主题1:设计思维

  Flex组已经认真听取了公众对于UX和UI集成的请求,并正在为Flex框架进行改进,用一种新方法,让设计和开发能够协同合作。 FlashCatalyst正在起步,并会开放RIA创建程序给更多的人。Flex4给出了一种新方法来定制化RIAs的外观和风格,提供了一个丰富并强大的组件体系,并更新了皮肤处理能力。

  当前对于Flex 3的支持:

  在过去,有人抱怨Flex应用程序都非常类似。这通常是由于默认的Halo主题没有根据应用程序的不同进行定制化或换肤。因为Flex应用程序运行在FlashPlayer上,动画可用于组件“皮肤”。这种优势使Flex有别于其他类似的技术。创建高度定制化的Flex组件皮肤和Flex主题通常是说起来容易,做起来难。一些来自Adobeopensource wiki网站的有趣统计如下:

  只有46 %的Flex RIAs是彻底换肤的

  只有22 %的Flex RIAs拥有高度不同的风格

  这还不到一半。如果你还没有采取措施来改变你的FlexRIA的皮肤或风格,就非常有可能让它看起来像是别人的。从营销和品牌推广的角度来讲,这是非常糟糕的。通常来说,RIAs应该通过应用程序推广公司品牌。(想一想其它应用程序,如PizzaHut的AIR应用程序)

  主题2 :开发人员的工作效率

  使用Flex框架和Flex构建器可以迅速加快RIA开发进程。Adobe正在努力改进Flex4来增加开发人员的工作效率。(这对于开发人员和项目管理人员来说是个好消息。)编译器的性能和数据绑定也正在进行更新,以便完善和加快应用程序的开发进程。增加对AIR的自动化支持。为MXML文件引入ASDoc支持。附加的CSS选择器正在实现中,以便为开发人员提供更强大的样式功能,来定制化Flex4RIAs的外观和样式。

  主题3 :框架演变

  Flex的每一代演变都会包含一个日益强大和丰富的特征及功能集。Flex 4除了增加开发人员的工作效率,FlashPlayer10功能也将可用。另一个重要改变是增加了AIR1.5功能集。HTML发布模板现在使用已被广泛应用的开源SWFt,来代替AdobeFlashDetection Kit。另外还计划推出视频组件支持。

  原文:Overview of Flex 4 (Gumbo)

  作者:Sean Moore

  编辑推荐

  图解Flash Builder 4.0(Gumbo) UI、功能新体验

  RIA之争 JavaFX是否能后来居上?

  从Flex Builder更名看Flash平台战略

  Flash与Silverlight多领域实测对比

  空气中充满Web的味道:11个最佳Adobe AIR应用 (51CTO)

AdobeFlex编码指南

2009年06月17日,星期三

一、介绍:
该文档旨在为使用Adobe Flex 和 ActionScript 3 编写应用程序建立编码指南。

要创建通俗易懂的编码规范,因为在软件开发的生命周期中,大部分时间都是在维护。这样,
易于理解的代码片段变得很重要,因为不总是最初的开发者去维护代码。通俗地说就是,让开
发者能快速理解别人的代码。除此之外,程序或组件也可以方便地部署或销售给第三方。

制订编码规范的前提 :通用性 易理解性

该文档中创建的实例是基于DClick 的工作方法,Java 编码约定和Adobe Flex SDK 中的约定。

二、文件:
2.1 文件扩展名

MXML 代码:.mxml

ActionScript 代码:.as

CSS 代码:.css
2.2 文件名不能包含空格、标点和特殊符号

ActionScript   类和接口使用开头字母大写的驼峰式命名例:ExampleClassName

接口总是以一个大写字母I开头例:IExampleInterface

包含(includes)使用开头字母小写的驼峰式命名;

命名空间使用开头字母小写的驼峰式命名例:myNamespace

MXML    总是使用开头字母大写的驼峰式命名

CSS    总是使用开头字母小写的驼峰式命名
2.3 编码
所有文件都必须使用UTF-8 编码

三、ActionScript 3.0:
3.1 文件结构
ActionScript 文件必须包含以下组成部分:

1   开篇注释
2   定义包
3   声明命名空间

一个文件要定义命名空间,如果存在命名空间,这是最后部分 空间,这么做就行了
4 Import 描述 按字母顺序排序;
1. flash 包 如果导入命名空间,
2. mx 包 同名的包要先于类
3. com.adobe 包
4. 公司组件
5. 第三方包,按字母顺序排序
6. 属于该文件的工程包

使用完整的引用名,不要使用星号(*),除非使用了包的绝大部分。
推荐使用:importmx.core.Application
避免使用:importmx.core.*
5   use 声明(命名空间) 按字母顺序排序
6   元数据
1. Event
2. Style
3. Effect
4. 其他元数据,按字母顺序排序
7   定义包和接口
8   静态变量(static)
1. public
a) const
b) 其他publicstatic
2. internal
3. protected
4. private
5. 自定义命名空间(按字母顺序排序)
9   没有使用getter 和setter 的变量
1. public
2. internal
3. protected
4. private
5. 自定义命名空间(按字母顺序排序)
10   构造函数
11用getter和setter处理的变量和方法本身,还有相关的变量, 相关规则参考文档中
例: 关于变量的部分
private var_enabled:Boolean=true;
private var enabledChanged:Boolean = false;
public function getenabled():Boolean{
return_enabled;
}
public function setenabled(value:Boolean):void{
_enabled = value;
enabledChanged = true;
}
12方法 将实现相关功能方法组织在一起,而不是按作用域
3.2 样式
3.2.1 行与换行
如果一段描述不能放在一行中,依据下列规则将其拆分成多行:从逗号后换行; 最好在较高级别代码处换行;    换行后与上一行对齐;    如果上一条规则不适用,加入两个缩进

推荐使用:
//第一行:在 implements 操作符之前换行
//第二行:在逗号后面换行
//第二、三行:两个缩进
public classButton extends UIComponent
implements IDataRenderer, IDropInListItemRenderer,
IFocusManagerComponent
避免使用:
public classButton extends UIComponent
implements IDataRenderer, IDropInListItemRenderer,
IFocusManagerComponent
推荐使用:
//在高级别代码处换行,例如右小括号
//不要在括号内换行
variable1 = variable2 + (variable3 * variable4 – variable5)
- variable6 / variable7;
避免使用:
variable1 = variable2 + (variable3 * variable4
- variable5) – variable6 / variable7;
三元操作符换行示例:
b = (expression) ? expression
: gamma;//对齐!
c = (expression)
? beta
: gamma;
3.2.2 声明       每行只有一个声明。
正确的:
var a:int = 10;
var b:int = 20;
错误的:
var a:int = 10, b:int = 20;

尽量对变量进行初始化,如果一些变量的初始值在方法调用中付给则不需要初始化。即使是默认值也要初始化。
正确的:
public var isAdmin:Boolean = false;
错误的:
public var isAdmin:Boolean; //Boolean 型变量的默认值是false

变量的声明放在代码块开始的位置,除非是在循环中。
public function getMetadata():void{
varvalue:int = 123;//方法代码块开始

if (condition){
var value:int = 456;//if 开始

}
for (var i:int = 0; I < valor; i++){//在for 循环中

}
}

不要使用之前代码块中用过的变量名,即使是不同的作用域。
3.2.3 括号
样式规则:
不要在方法名和括号之间插入空格,也不要在括号和参数间插空格;    不要在对象名和类型间插空格;    左大括号放在新的一行并与方法定义行对齐;    右大括号独占一行并与跟成对的左大括号对齐;    方法间用一空行隔开;
3.2.4 声明
简单的
简单声明每行只能有一个,并以分号作为结束。
正确的:
i++;
setModel();
错误的:
i++; resetModel();

复合的
复合声明(其中要使用大括号的,例如if, while, switch)必须遵守以下原则:    声明内的代码要缩进一级;    左大括号在声明下方独占一行,与声明对齐,右大括号同样占一行,与左大括号对齐;    在所有声明中都使用大括号,即使声明只有一行;

返回(return)
返回无需使用小括号,除非你想使代码更容易理解:
return;
return getFinalImage();
return (phase ? phase : initPhase);

条件语句 if, elseif, else
if (condition)
{
simpleStatement;
}

if (condition)
{
statements;
}
else
{
statements;
}

if (condition)
{
statements;
}
elseif (condition)
{
statements;
}
else
{
statements;
}

条件语句 switch, case
Switch 声明适用下面的样式:
switch (condition)
{
case ABC:
{
statements;
//continue,withoutbreak
}
case DEF:
{
statements;
break;
}
case JKL:
case XYZ:
{
statements;
break;
}
default:
{
statements;
break;
}
}

Break 规则:    在default 代码块中也要使用break。通常这是多余的,但他能增强代码的可读性;    如果一段代码块中不需要break,在 break 的位置上写上注释;    如果声明中包含return 则不需要使用break。

循环 for
for (initialization; condition; update)
{
statements;
}
for (initialization; condition; update);

循环 for..in
for (var iterator:type in someObject)
{
statements;
}

循环 foreach..in
foreach (var iterator:Type in someObject)
{
statements;
}

循环 while
while (condition)
{
statements;
}

循环 do..while
do
{
statements;
}
while (condition);

错误处理 try..catch..finally
try
{
statements;
}
catch (e:Type)
{
statements;
}

也可以有finally 声明:
try
{
statements;
}
catch (e:Type)
{
statements;
}
finally
{
statements;
}

With
with (this)
{
alpha = 0.5;
}
3.2.5 换行与空格
换行(这里指一空行)
换行能使代码看上去更清晰,更有逻辑。
下列情况需要换行:    函数之间;    方法的局部变量和声明之间;    代码块前;    单行注释前面或一段特殊功能代码的多行注释前面;    将一段代码的逻辑之间分开,使代码更清晰。

空格
在关键字和小括号之间插入空格,但不要在方法和他的小括号中插入空格。
while (true)
{
getSomething();
}

在方法的形参列表中,逗号后面要有空格:
addSomthing(data1, data2, data3)

所有操作符(两个操作数之间的,例如+,-,=,==)与其操作数之间要用空格分隔,但不要
分割一元操作符(例如++,–)。
a += (5 + b) / c;
while (basint < f)
{
i++;
}

三元操作符要用空格分开,有必要的话可以拆分成多行:
a = (expression) ? expression : expression;

for 表达式中要用空格分开:
for (expr1; expr2; expr3)
3.3 注释
3.3.1 文档注释
文档注释是指在每个类、接口、变量、方法以及元标签等定义前面放置的一段注释,文档注释
的作用是,让那些将要使用这些定义的人能更好的了解定义的作用,而无需去研究代码。

文档注释的语法和格式参考 ASDoc(在 Flex SDK 中也可以找到),地址是:
http://labs.adobe.com/wiki/index.php/ASDoc:Creating_ASDoc_Comments

例如:
/**
*The Button control is a commonly used rectangular button.
*Button controls look like they can be pressed.
*
*@mxml
*
*…
*
*@includeExample examples/ButtonExample.mxml
*/
public class Button extends UIComponent
3.3.2 执行注释
执行注释用来对一些不易理解的特殊代码进行说明,使用//进行注释,不管是多行还是单行。

如果注释独占一行,要将注释放在相关代码之前:
// 确定没有可见列
if (!visibleColumns || visibleColumns.length == 0)
如果不是太长,注释可以和代码放在同一行:
colNum = 0; // 补偿可见初始列的偏移量
不要翻译代码:
colNum = 0; // 把列数设为0
四、MXML
4.1 文件结构
MXML 文件必须包括以下组成部分:

1 XML 文件头 总是在文件头中定义编码,并
<?xml version=”1.0” encoding=”UTF-8” ?>
且总是使用UTF-8 编码
2 根标签 必须包含文件中使用到的所有命名空间
3   元标签
1. Event
2. Style
3. Effect
4. 其他元标签,按字母顺序排列
4 定义样式 尽量使用外部样式文件
5 定义脚本 只能存在一个脚本块
6   非可视组件
7   可视组件
4.2 样式
4.2.1 行与换行
在一组可视组件之间插入空白行可使代码更清晰

在同一个父组件的子组件之间(也包括他们的子组件)插入空白行,如果这个子组件拥有至少
一个子组件:

<mx:series>
<mx:ColumnSeries yField=”prev” displayName=”Forecast”>
<mx:stroke>
<mx:Stroke color=”0xB35A00″ />
</mx:stroke>
<mx:fill>
<mx:LinearGradient angle=”0″>
<mx:entries>
<mx:GradientEntry… />
<mx:GradientEntry… />
</mx:entries>
</mx:LinearGradient>
</mx:fill>
</mx:ColumnSeries>
<comp:ColumnSeriesComponent />
</mx:series>

也就是说,如果一个组件之有一个子组件则不需要插入空白行。下面的LinearGradient 就
只有一个子组件 entries.

<mx:LinearGradient angle=”0″>
<mx:entries>
<mx:GradientEntry… />
<mx:GradientEntry… />
</mx:entries>
</mx:LinearGradient>

同样,像entries 这样子组件都在一行的也不用插入空白行
<mx:entries>
<mx:GradientEntry… />
<mx:GradientEntry… />
</mx:entries>
4.2.2 Nstling components(雏鸟组件?)
子组件必须依据其父组件进行缩进排版。

<mx:TabNavigator>
<mx:Container>
<mx:Button />
</mx:Container>
</mx:TabNavigator>
4.2.3 属性
按下列顺序排序:    属性    如果有id 的话,永远放在第一位;    记住,width,height 和styleName 是属性而不是样式;    事件(Events)    效果(Effects)    样式(Style)

如果有id,永远放在第一位。
<mx:ViewTack id=”mainModules” width=”75%” height=”75%” />

标签属性如果放在多行要进行缩进。
<mx:Label
width=”100%” height=”100%” truncateToFit=”true”
text=”Herecomesalongenoughtextthat…” />

如果标签的声明有多行,处在第一行的永远只有id 一个属性,其他属性按上面的顺序放在其
他行中。
<mx:ViewStack id=”mainModules”
height=”75%” width=”75%”
paddingTop=”10″ paddingLeft=”10″ paddingRight=”10″>

<mx:ViewStack
height=”75%” width=”75%”
paddingTop=”10″ paddingLeft=”10″ paddingRight=”10″>

同一类的属性放在一行,下面的例子中第二行定义了属性,第三行定义事件,第四行定义样式,
最后一行是效果。
<mx:Panel
title=”VBoxContainerExample” status=”Somestatus”
hide=”doSomething()” creationComplete=”doSomething()”
paddingTop=”10″ paddingLeft=”10″ paddingRight=”10″
resizeEffect=”Resize”/>

在同类属性需要放入多行的情况下,视乎情况将更为相近的属性放入同一行,下例中第四、五
行均为样式,第五行定义了一些 padding:
<mx:Panel id=”pnLoginInfo”
title=”VBoxContainerExample” height=”75%” width=”75%”
resize=”resizeHandler(event)”
titleStyleName=”titleLogin” headerHeight=”25″
paddingTop=”10″ paddingLeft=”10″ paddingRight=”10″ />
4.2.4 脚本
脚本代码块的样式:
<mx:Script>
<![CDATA[
code;
]]>
</mx:Script>
4.3 注释
4.3.1 文档注释
ASDoc 工具不支持MXML 文件中的文档注释,但还是鼓励这样去做,如果MXML 文件是一个可
重用的自定义组件(不只是简单的视图)。这样,文件中就包含了一个与 ActionScript 注
释方法相同的脚本代码块。
<mx:Script>
<![CDATA[
/**
*Document ation comment inside a MXML component
*Uses the same format as the AS comment
*/
]]>
</mx:Script>
4.3.2 执行注释
使用执行注释描述那些目的不太清晰的界面元素
<!—这里是注释–>
或使用多行
<!–
多行注释

–>

五、样式
5.1 一般规则    缩进使用制表符,占4 空格位,需要在IDE 中进行设置;    单行代码不超过100 个字符;

注:使用Eclipse 配以1280 分辨率,如果编码窗口占70%(其他30%用于导航),每行大
约可以显示103个字符,A4大小纸张一行大约80个字符。

六、命名
6.1 一般规则    缩写:应尽量避免使用缩写,除非是那些缩写形式更常用于它的全称的缩写(例如URL,
HTML 等)。工程名可以是用缩写,如果他就是叫那个名字。    只使用AscII 字符,不包括重音符号(`)、空格、标点和特殊字符;    不要使用 FlexSDK 中预留的关键字命名(像 mx 包中的 Application、DataGrid
等),也不要使用 FlashPlayer 中预留的关键字(像 Flash 包中的 IOError、
Bitmap 等)    既然在MXML 中编写代码与在 ActionScript 中一样容易,在MXML 中的命名规则也
和ActionScript中是一样的(举例来说,一个MXML就像一个ActionScript类,
其内部的组件和变量等同于属性)    主程序文件命名为Main.mxml    不要在组件名称中使用索引,以免在用ASDoc 工具生成文档时产生冲突。
6.2 语言
编码本身必须使用英语,除了涉及到商业领域的动词和名词(特殊专业领域的软件是为了解决
问题,也就是说,现实世界和系统是相关联的)

因此,推荐使用下面的命名:
DEFAULT_CATEGORIA
addNotaFiscal()
getProdutosByCategoria()
changeState()
UsuarioVO
screens/Reports.mxml

不推荐下列命名:
popularCombo()
mudarEstado()
UsuarioObjetoDeTransferencia
6.3 包
包的命名必须使用 lowerCamelCase(驼峰式命名),第一个单词的开头字母小写,其他单
词的开头字母大写

包名的第一部分使用顶级域(com, org, mil, edu, net 或gov)或者使用两个单词,国
家标识加顶级域,参考文档ISO3166(br.com, ar.edu, cn.org 等)

下一部分是所有者(公司或客户)的名称,接下来是工程名和模块:
cn.com.company.project.module
6.4 类
类名推荐使用名词,也可以使用形容词。总是使用UpperCamelCase(开头字母大写的驼峰
式命名)形式
6.5 接口
接口的命名规则和类的是一样的,只是开头加上一个大写字母I
6.6 方法
方法必须使用动词开头,并使用lowerCamelCase(开头字母小写的驼峰式命名)形式,如
果方法被一个事件调用,结尾加上Handler
6.7 变量
变量使用 lowerCamelCase 形式命名,并且使用有意义的名称,如果变量使用 getter 和
setter 方法读/写值,开头应加上下划线(_)

变量不必使用前缀,在ActionScript 中给对象一个通俗易懂的名字比对象类型更重要。尽
管如此,Boolean 型变量应以can、is 和has 开头。

临时变量(例如在循环中)通常使用一个字母,最常用的字母是 i, j, k, m, n, c, d。
不要使用 l。

catch 中的变量必须使用e,不管错误类型为何(如果他是个类)
6.8 常量
常量全部使用大写字母,单词间用下划线分割(_)
6.9 命名空间
命名空间全部使用小写字母,单词间用下划线分割(_)
文件名必须与命名空间名称一致。
七、一般习惯    在注释中使用FIXME 关键字来标识某些需 TODO 标识某
时需要改良的代码,这可以使用Flex Builder 2 Task 插件;    将需要重复调用的值在使用指派给一个变量,这对提高性能相当有用(在简单的
中不需要)
正确的:
var maxPhase:int = reallySlowMethod();
for (var i:Number = 0; I < maxPhase; i++)
{
statements;
}
正确的:
var months:Array = ['Jan', 'Fev', 'Mar'];
// 获取数组长度是相当快的
// 这样做同时还增强了代码的可读性
for (var i:Number = 0; I < months.length; i++)
{
trace (months[i]);
}
错误的:
for (var i:Number = 0; I < reallySlowMethod(); i++)
{
statements;
}    尽量使用松耦合的组件,组件之间的关连越少,其重复利用的可能越大;    在Boolean 判断中,将速度快的放前面。
正确的:
if (isAdmin && slowMethod(item))
错误的:
if (slowMethod(item) && isAdmin)    如果可用,尽量使用常量    如果可用,尽量使用更精确的类型    建议在简单的事件处理中使用匿名函数

八、附录:预留关键字
下表中列出了ActionScript 3 中的预留关键字:

as break case catch
class const continue default
delete do else extends
false finally for function
if implements import in
instanceof interface internal is
native new null package
private protected public return
super switch this throw
to true try typeof
use var void while
with

还有些语法关键字,在某

each get set namespace
include dynamic final native
override static

还有些为未来版本预留的关键字也应尽量避免使用:

abstract boolean byte cast
char debugger double enum
export float goto intrinsic
long prototype short synchronized
throws to transient type
virtual volatile

RIA平台:除了Flex、Silverlight,还有Laszlo

2009年06月16日,星期二

和Flex、Silverlight一样,Laszlo也是一个用于构建RIA应用的优秀平台,其突出特性是一次编程,多平台部署的模式。InfoQ中文站近期就Laszlo的有关问题采访了Laszlo系统公司北京研发中心的首席代表Sue Liu和技术总监赵万里。

提起RIA平台,很多人开始想到的多是Adobe的Flex和微软的Silverlight,再进一步,可能还会提到Sun的JavaFX,鲜有人 会想到Laszlo。但如果你了解了以下信息,相信对Laszlo的看法会有所改变。坊间传言因为源于Laszlo的压力,Flex最终选择了开源;另外 美国前五大电信运营商中有四家已经基于Laszlo构建了自己的应用,最后一家亦在洽谈之中;最后,Laszlo还是开源的,其官方下载量已经突破60万。

根据Sue的介绍,Laszlo平台主要包括两部分:用于写客户端应用的LZX语言和用于编译LZX的声明式服务器。LZX并不是一个全新的语言, 可以简单将其理解为XML和JavaScript的结合体。在实际开发中,LZX使用XML标签定义页和用户接口,而用JavaScript处理逻辑和声 明变量等。在Laszlo创建之初,它是一个收费软件,以出售软件许可证为生,在2004年的时候,它顺应潮流选择了开源,遵循通用公共协议(CPL), 使得开发人员或者企业可以不受限地基于Laszlo构建应用。

在最终的呈现形式上,Laszlo会将代码编译成swf文件,用户通过Flash插件在浏览器中即可使用。考虑到目前有有超过98%的计算机上都安 装了Adobe Flash软件,所以这不会成为Laszlo进一步普及的障碍。在Laszlo的成功案例中,目前有大型电信运营商Verizon、SureWest、 NRTC、CableVision、Cox,金融服务提供商HR Block、Barclays、Ameritrade,互联网企业IBM、Sears、Walmart、BEHR等。另外,据Sue透露,目前 Laszlo研发团队还在努力实现将LZX程序编译成Silverlight或者其他Ajax应用,从而实现一次编写,处处运行的目的。

在Sue的介绍中,也提到了Laszlo这样开源软件的商业模式。和其他较为成功的开源软件一样,比如Spring,Laszlo采取的也是软件平 台开源,而依靠基于该平台的解决方案或者咨询获取营收。在Laszlo公司网站的产品列表中,可以看到OpenLaszlo是以开源软件的形式免费提供给 用户下载的,目前其最新版本是4.3,支持DHTML和Flash 9。而帮助企业快速构建基于Web 2.0 RIA应用的Laszlo Webtop则是收费,面向开发人员的价格是每年795美元。说到Laszlo在中国的目标,赵万里表示,希望不久的未来,人们在提到RIA平台时,不仅 想到Flex、Silverlight,还应该包括Laszlo!

对于想投入Laszlo社区的朋友来说,尤其是国内的开发人员,在打开这扇大门之前有什么需要三思的吗?Java领域的专家William Grosso在2005撰写的文章《Laszlo:一个富互联网应用的开源框架》 中回答了这个问题,现在看来依然适用:一是Flash虚拟机是设计用来显示动画的,对于数学计算或者大型数据处理依然存在不足;另外LZX虽然不是一个全 新的语言,但是对很多人来说其学习曲线还是比较陡峭,特别是目前Laszlo社区不成熟和相关书籍缺少的情况下;但是,不管你是否决定采用Laszlo, 很明显的一点是你绝对应该下载试用它,而且还要好好想想RIA会如何改变Web!最后,如果你想深入了解Laszlo系统和LZX语言,建议阅读Manning公司出版的《Laszlo in Action》

Adobe宣布Flex Builder将更名为Flash Builder

2009年05月21日,星期四

日前,Adobe官方正式发布公开消息:下一代 Flex Builder 4 将改名为 Flash Builder 4。

这引来了开发者社区的很多争论,Lee Brimelow是Adobe的平台宣传者,他回答了许多开发者的疑问,解释了为什么Flex Builder更名为Flash Builder。(以下L代表Lee Brimelow,D代表开发者)

D:是否要重新定位Flash IDE?

L:当然不是。Flash仍将是Flash平台动画和设计的首要工具。Adobe目前还会将一些精力放在Flash CS5的代码编辑器上,来服务那些编写框架脚本的开发者和ActionScript的初学者。

D:更名后再次说起Flex的时候会不会让客户更加混淆?

L:恰相反,现在的Flex更加容易让客户理解。Flex是一种用来创建RIA的ActionScript框架。所以名字的改变对Flex来说,品牌更加牢固易懂。

D:这让我不好写简历,面试更加困难不是么?

L:恰相反。不要将思维仅仅局限在工具上,面试的时候可以谈谈技术。如果你使用Flex框架那么你就是一个Flex开发者。不要只是说你使用Flex Builder,告诉面试者你对Flex很在行。

D:为什么不早点改名?

L:谁也没有千里眼在很久之前就能够看到Adobe的今天。Flex Builder发明之初的目的是为了创建Flex框架项目。但是经过这么多年,大部分开发者只是单纯地用它来做ActionScript工作。

D:Flex Builder仍将基于Eclispe么?

L:是的,Flex Builder将继续是基于Eclispe的产品并将添加更多的特性,Flash Builder 4仍将保留Eclipse的很多特性。

D:为什么在创建Flash内容的时候我们需要所有的这些工具?

L:我理解开发者的这种情绪,当然如果我们能够创建一个可以做任何事情的工具或者平台那真是太好了,然而事实这是不可能的。动画制作者和设计者习惯 于Flash IDE并喜欢专注于完全个性化的Flash体验。Flash和Flex开发者通常不喜欢花费太多的时间在Flash IDE上而宁愿选择强大的、以代码为中心的工作环境比如Eclispe。

D:当客户听到Flash这个单词的时候会不会觉得很低级?

L:有两种方式:一是你继续使用Flex这个单词,二是你告诉他们Flash现在是个成熟的开发平台而不仅仅是做做电影、视频这种小玩意。

D:Flex SDK呢?

L:目前还没有重命名SDK的打算。我注意到很多开发者用它来编译纯粹的ActionScript项目,跟客户交流时,仍是将重点放在技术上而不是表述上。【Csdn】

几个实用的Flex网址

2009年04月25日,星期六

http://www.produle.com/

http://www.bannersnack.com/banner-maker/software/

http://jusou.riahome.cn 聚搜

http://flex.csdn.net/

http://www.adobe.com/products/flex/

Tour De Flex 推出1.2版,增在线版本

2009年04月8日,星期三

下载页:http://www.adobe.com/devnet/flex/tourdeflex/

在线版:http://www.adobe.com/devnet/flex/tourdeflex/web

用 Flex 开发 Google Map 应用程序

2009年03月26日,星期四

Flex 简介

Flex 是 Abode 公司贡献的一个开源框架,用于快速构建和维护高度交互并具有丰富表现力的互联网应用( Rich Internet Application )。这些 RIA 应用程序既可以通过 Adobe Flash Player 部署在所有主流的浏览器上,也可以通过 AIR(Adobe Integrated Runtime) 部署在所有主流操作系统的桌面上。

一个 Flex 应用程序通常有 ActionScript 和 MXML 两种代码组成。ActionScript 是一种面向对象的脚本语言,符合 ECMAScript 标准,用于实现 Flex 应用程序的逻辑;MXML 是一种类似于 HTML 和 XML 的标记语言,用于构建 Flex 应用程序的用户界面。Flex 应用程序最终需要被编译成 SWF 文件以运行在 Adobe Flash Player 或 AIR 上。

本文并不详细讲述 MXML 和 ActionScript 的语法,如想了解这两种语言的用法,可以查看 参考资源 中的相关教程。

Google Maps API for Flash 简介

Google Maps API for Flash 使得 Flex 开发人员能够把 Google Map 嵌入到 Flex 应用程序中。该 API 提供了很多实用的工具用来操控 Google Map。利用该 API,您可以处理地图事件、添加地图控件、在地图上添加标记、或者在地图上面画线,也可以利用 Geocoding 将地址转换成经纬度数据。笔者写作期间 Google Maps API for Flash 还不支持 AIR 环境,只能在 Flash Player 里运行。

全文 – http://www.ibm.com/developerworks/cn/web/wa-lo-flexgoogle/?S_TACT=105AGX52&S_CMP=tec-csdn

在flex中获得url的信息

2009年02月5日,星期四

要获得当前swf的url地址可以用如下的方法:
1.Application.application.url
2.this.systemManager.loaderInfo.url
如要获得域名可以用URLUtil静态类,无需创建实例
URLUtil.getServerName((Application.application.url))