本贴转自:http://smartblack.javaeye.com/blog/556202
一项技术,从概念提出到技术研发到商业发布,再到实际应用,最终将产品呈现在用户面前,这是一个漫长而复杂的过程。在这当中,很多有创意有生命力的技术因为各种原因小小遗憾地不幸夭折了。Flex能走到今天确实不易,下面让我们从不同的角度来看一下它是如何过关斩将,赢得众多青睐的。
技术角度:
(1)具备了RIA时代富客户端的优点(C/S+B/S)
(2)支持多种服务器语言(JAVA、.NET、PHP)及主流框架(Spring、Hibernate)
(3)与Java结合后相当强大,能充分利用Java的资源背景
(4)拥有丰富的组件和第三方组件,对企业级的数据汇总和业务流程展现力较强悍
(5)借助开源的力量,拥有众多民间组织和牛人支持
(6)Adobe公司(还有MM多年积累)的强大背景
(7)源于Flash的天生丽质,轻松使用多媒体资源,动态交互性强
(8)借助FlashPlayer的安装普及度,轻松实现跨浏览器跨平台
(9)良好的架构设计和制作精良的文档示例(明年FLEX4同步推出中文版)
(10)借助于插件丰富的Eclipse开发平台并拥有独立的IDE
(11)框架设计重用性高,有利于模块化设计
(12)近几年发展态势良好 ......
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" layout="absolute" creationComplete="initApp()">
<mx:Script>
<![CDATA[
public var pageRecordes:uint = 8;
public var totalPages:uint = 0;
public var totalRows:uint = 0;
public var currentPage:uint = 1;
public var pageStartRow:uint = 1;
public var pageEndRow:uint = 0;
public function initApp():void{
txt.text = "Page " + currentPage;
totalRows = initDG.length;
if(initDG.length > pageRecordes){
dg.dataProvider = initDG.slice(0,pageRecordes);
pPage.enabled = false;
}
if((totalRows % pageRecordes) == 0){
&nb ......
1 安装Adobe AIR 运行时,和java的JVM类似。
Adobe AIR 运行时允许在桌面运行AIR应用程序,脱离游览器的束缚。
下载安装文件http://labs.adobe.com/downloads/air.html
在下载页面有样例程序(Sample Applications)http://labs.adobe.com/technologies/air/samples/
2 安装开发环境
当然我们选择开发效率最高的Flex Builder,此外还有命令行编译的一套工具。
http://labs.adobe.com/technologies/flex/flexbuilder3/下载文件需要在Adobe注册用户。
3 Adobe AIR简介
Adobe® AIR™ 是一个跨平台的运行时,可以使用现有的Web开发技能(Flash, Flex, HTML, JavaScript, Ajax)创建桌面富因特网应用程序。
AIR程序运行基于Adobe AIR Runtime,所以开发的程序在不同的操作系统表现是相同的,就像Java一样。
AIR 允许你使用最熟悉的开发环境,选取你最擅长的工具进行开发。比如
* Flash / Flex / ActionScript
* HTML / JavaScript / CSS / Ajax
所以AIR应用程序可以
* 基于Flash或者Flex,即应用程序的容器是Flash或Flex(swf)
* 基于包含HTML或PDF的Flash或Flex,即应用程序的容器是Flash/Fl ......
过去在对DataGrid设置行背景色时,感觉还是挺方便的,只要重写DataGrid的,如下
private var _rowColorFunction:Function;
public function set rowColorFunction(f:Function):void
{
this._rowColorFunction = f;
}
public function get rowColorFunction():Function
{
return this._rowColorFunction;
}
override protected function drawRowBackground(s:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void
{
if (this.rowColorFunction != null) {
if (dataIndex < this.dataProvider.length) {
var item:Object = this.dataProvider.getItemAt(dataIndex);
color = this.rowColorFunction.call(this, item, color);
}
}
super.drawRowBackground(s, rowIndex, y, height, color, dataIndex);
}
如果你还是不是很明白可以参考我以前的博客http://blog.csdn.net/terryzero/archive/2009/ ......
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Style>
ScrollBar
{
/*划动块图片皮肤*/
thumbDownSkin: Embed(source="scrollBar/thumb.gif",
scaleGridTop=2,
scaleGridLeft=2,
scaleGridBottom=4,
scaleGridRight=4
);
thumbOverSkin: Embed(source="scrollBar/thumb.gif",
scaleGridTop=2,
&n ......
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Style>
ScrollBar
{
/*划动块图片皮肤*/
thumbDownSkin: Embed(source="scrollBar/thumb.gif",
scaleGridTop=2,
scaleGridLeft=2,
scaleGridBottom=4,
scaleGridRight=4
);
thumbOverSkin: Embed(source="scrollBar/thumb.gif",
scaleGridTop=2,
&n ......
Flex vs Flash
Flex是一个针对企业级富互联网应用的表示层解决方案;
Flex是 RIA(rich internet applications,即富客户端)的一种技术实现
Flex是一种应用程序框架;
Flex序列产品包括编译工具和IDE,通过编写MXML(一种类XML标记语言)和ActionScript(AS,Flex的脚本语言,从Flash移植过来)代码,用编译器来生成SWF文件,使用浏览器的Flash Player插件就可以进行观看
它的开发工具包是flex framework ,它的集成开发工具可以用flex builder,其所用的编程语言是actionscript,其程序 经过编译后生成swf文件
Flex是Adobe公司推出的技术,基于Flash平台,开发的程序可以运行于装有Flash Player插件的浏览器以及Adobe的桌面程序运行平台AIR之上,具有很好的表现力和交互力。官方网站上对Flex的定义如下:
Adobe? Flex? 3 是用于构建和维护在所有主要浏览器、桌面和操作系统一致地部署的极具表现力的 Web 应用程序的高效率的开放源码框架。
相对于Ajax,Flex的优点是易于开发调试,表现力交互力强,缺点是加载速度慢。在兼容性方面,我觉得Flex更好。
flex 是针对企业软件开发的,而且对象是现在在使用其他开发工具的人员,比如:。NET等。 而FLASH 是针对动画设计者 ......