Flex the world

Flex, AIR and Things......

2009年1月2日

搬家了

忙了一天,终于把博客这里搬到了搬到了新家 :)

www.flextheworld.com

前前言
新年到了,一切从头开始,学 FLEX就从这里开始

前言

什么是RIA, FLEX, AIR, ActionScript3, FlexBuilder....学FLEX之前有必要了解一下这些名词之间的关系。

1. RIA -- (Rich Internet Application,富互联网应用系统) 顾名思义就是比传统的 web site 更丰富的web 应用。目前以Abobe Flash 平台以及微软的silverlight技术开发的web 应用为代表。

2. FLEX -- FLEX是用于构建和维护在所有主要浏览器、桌面和操作系统一致地部署的极具表现力的 Web 应用程序的高效率的开放源码框架。我们常见的FLEX应用有FLEX web应用 (我们常常把这个直接叫Flex) 以及桌面应用AIR。

3. AIR -- FLEX的桌面应用,所以AIR与FLEX并不是两样东西。千万不要觉得要学的东西很多

4. ActionScript 3 -- FLEX的开发语言

5. FlexBuilder -- 开发FLEX最好用的工具


将学习进行到底:

怎 样才能进入FLEX的世界呢,FLEX的开发语言Action script 3.0和C#、Java非常的类似,所以不管你有哪个语言的基础,或者你对OO有比较好的认识,那么学习FLEX会很容易。 MXML是FLEX中的标记语言,与Jsp与Aspx相识,它与ActionScript3之间的关系与aspx与c#的关系类似。

Ascription3可以完全描述任何用MXML写的页面,比如我们新建一个MXML(以HBOX为例,假设文件名MyHBox)


<mx:hbox mx="http://www.adobe.com/2006/mxml">

......

</mx:hbox>


这与AS3中

public class MyHBox extends HBox {

public function
MyHBox(){

}
....

}


表示一个意思,区别是在MXML中不能写构造函数。

开始学一门语言,我认为实践是最好的学习方法。拿着书看一天比不上动手2小时,先实践出结果,再根据结果学习理论,比先学理论,再来实践效果要好很多,不信就试试

最后,可以试试从我学flex时的 “快速入门指南”(Flex中文帮助1--4章,看完前3章是很有必要的)
开始你的Flex学习,之后可以去看看Flex教程索引贴

控件名称 (Component Name):iMagnifyingGlass.as
作用 (Description):控件继承于Panel, 和普通panel使用方法相同,对放入其中的所有Image,当鼠标划过时有放大镜效果。 (iMagnifyingGlass extends from panel that can enlarge all passed in images when mouseover)

接口 (apis)

属性(Attributes):

multiple:Number -- 设置放大倍数,默认2倍 (Default value is 2)
glassHeight:Number -- 设置镜片高度,默认150px (Magnifying glass height, default value is 150px)
glassWidth:Number -- 设置镜片宽度, 默认150px (default value is 150px)
glassStyleName: Number -- 设置镜片样式表 (set the style name of glass)

方法 (Function):

setGlassStyle(stylrProp:String,newValue:Object) -- 设置镜片样式 (set styles of glass)

Demo:

Demo:

<component:iMagnifyingGlass hideEffect="" title="放大镜Demo" multiple="4" layout="vertical" id="mG" >
<mx:HBox>
<mx:Image source="{pic1}" width="256" height="192" />
<mx:Image source="{pic2}" width="256" height="192" />
</mx:HBox>
<mx:HBox>
<mx:Image source="{pic3}" width="256" height="192" />
<mx:Image source="{pic4}" width="256" height="192" />
</mx:HBox>
</component:iMagnifyingGlass>





Demo和源文件下载

最近在AIRIA的Flex板块进行了一项活动,“年末活动:参与论坛交流,获赠上市新书!” 目的是鼓励大家多在论坛交流,每星期将送出2本《Flex 3 RIA开发详解与精深实践》。

在AIRIA已经2个月了,越来越喜欢这个地方,希望在自己和大家的努力下可以把论坛越弄越好。 废话不多说了,有兴趣的朋友去参加活动吧 :)

活动连接 http://www.flexcoders.cn/FLEX/thread-3147-1-1.aspx

活动说明

大家好,为活跃论坛气氛,促进论坛发展,也是为了答谢大家长期对论坛的支持。AIRIA论坛2008年12月18日起开展名为 《参与论坛交流,获赠上市新书!》 主题活动。活动持续1个月,分3批发放。


活动规则:

本次活动人人都有参与和获赠机会。论坛每周将统计出发帖总数最高的2位会员,每人获赠我们精选的FLEX新书《Flex 3 RIA开发详解与精深实践》一本。

发贴说明:

- 新发帖内容不满100字不含在计数范围。(“发帖说明”这段话有70余字)
- 新发贴内容杂乱无章不含在计数范围 (转载内容请调整好格式,如有必要加上自己的注释)。
- 与论坛现有内容所重复的内容不包含在计数范围。
- 发表原创教程、案例(含源码,与比较详细的描述)的记为3贴
- 发表原创源码的记为2贴

我会每星期周末公布本周的统计情况,下次统计日期为12月27日


特别说明

不管你是不是新人,只要是好贴都有机会获得奖品,大家都加油吧!
帖子不限于Flex板块。
为了让活动更加公平,各板块斑竹的帖子不参加本次活动



奖品展示:



书籍详细介绍:http://www.airia.cn/AIR_FLEX_EBOOK/Flex3RIA_kaifa_ebook/

与市面上的Flex书籍相比,本书重点突出了企业级开发实践,通过实际案例中提炼的项目引导读者进行Flex企业级开发。

同时,用两个章节专门讲述了AIR桌面开发,结合典型实例展示AIR应用。三位作者皆为Java软件工程师出身,并长期从事JavaEE企业级开发,因此在Flex与JavaEE的结合方向上把握的相当到位。


特别感谢:

《Flex 3 RIA开发详解与精深实践》一书三位作者杨占坡、杨铭、翁颖提供书籍。

另外值得高兴的是,这三位主创人员也已加入到AIRIA的大家庭中来,随时与AIRIA网友或购买这本书的朋友进行线上技术交流。

有朋友问到这个问题,这个问题主要涉及到dataProvider的操作,比较有针对性,所以写做教程。

这篇教程的核心是,Grid如果数据并不是操作Grid,而是操作它的dataProvider, Grid只是显示数据的载体

Demo操作:

1. 开始显示从A到Z的国家列表。可以前后翻页,每页显示10条
2. 从search框中输入搜索信息,grid将显示含有搜索字母的所有城市.
3. 同样可以对search结果进行翻页。



主要方法:

调用这个方法根据currentPage和searchedData设置Grid显示当前页

private function setCurrentPage():void{
currentPageData = new XMLListCollection(); //清空数据
var startIndex:int = currentPage * pageSize - pageSize; //开始位置
var endIndex:int = currentPage * pageSize;//结束位置
if(endIndex >= searchedData.length){ //如果结束位置大于search data的长度,结束位置为search data的长度
endIndex = searchedData.length;
this.lastPage = this.currentPage;
}
for(var i:int = startIndex; i< style="color: rgb(0, 0, 204);">/设置当前页数据

currentPageData.addItem(searchedData[i]);
}
}


调用此方法查询从 allData中查询数据,并显示第一页

private function doSearch():void{
this.searchedData = new XMLListCollection() //清空数据
for each(var item:XML in allData){ //从allData中搜索数据,将搜索到的数据添加到searchData
var value:String =item.@name.toString()
if(value.indexOf(searchValue.text) != -1){
this.searchedData.addItem(item);
}
}
this.currentPage = 1; //显示第一页
this.setCurrentPage();
}





源文件下载

2008年12月17日

Adobe AIR 迷你教程索引