FLEX学习建议[转]
原帖:http://hi.baidu.com/flex2/blog/item/3501c1622af2b1dde6113aef.html
现在不少人开始关注并学习Flex了(至少比以前多了),但是现在关于Flex的资料并不多,国内的资料就更少了,而且Flex的论坛人气都差的很,一眼望去全都是提问帖子,回帖超过5个的寥寥无几,惨不忍睹啊。我翻译一些东西也是为了增加中文学习资料,不过真正想要学习最好还是趁早习惯了英文,去看英文文档以及英文Blog。我不是什么专家牛人,我技术水平差的远,但是我学习Flex的时间算是比较长的了,所以在这里给初学者提一点学习建议,希望能帮助大家少走点弯路。
一、起步
1.了解Flex以及相关的东西。
一开始你最好先搜索一下Flex到底是什么,有次我居然看到有人问Flex 和 Flex Builder 有什么区别,faint。建议大家最好是先看看Flex白皮书,看一些介绍Flex的文档,先把FDS,Flex SDK等东西搞清楚再说。
2.初级
了解了基本概念之后,开始进入学习了。初级教程还是挺多的,比如 Flex Quick Starts 以及Adobe官网上的初级教程。Flex Quick Starts 中文翻译在Adobe 中国(http://www.adobe.com/cn/devnet/flex/?tab:quickstart=1)上可以找到。其中有很多示例,那些示例你最好一行一行的敲出来,然后运行看看结果,不要直接复制。初学任何东西的时候都不要复制别人代码,偷懒也要看情况。
看完Flex Quick Starts之后,应该对Flex中的组件布局,事件机制等有了大概了解了。这个时候建议你了解一下 Flex 中的各种控件。官方有一个介绍各种控件的非常好的例子:Adobe Flex2 Component Explorer ,依然建议把所有代码敲一遍,至少对每个控件的样子以及容器的布局方式有个印象,到时候你需要什么的时候就自然想到某个控件。
了解了控件之后,应该了解一下ActionScript 3.0了,这个东西比较强大。如果你以前没有接触过AS,那么建议你认认真真看一下AS 3.0 的基本语法以及各种数据类型,虽然每种语言基本都是相通的,但是至少还是有点区别的,如果自以为是很容易就吃亏。
3.进阶
经过了一些练习对MXML,AS3.0 应该都比较熟悉了,接下来就是看一些高级教程 + 模仿示例代码了。高级教程Adobe Flex Developer Center上有不少,应该看。而且Adobe 自带的那个 Flex Store 也是个很好的例子。很多国外的Flex开发者都会将自己做得小例自提供源代码下载,所以示例代码不难找。在模仿别人代码的时候要注意别人的一些编程思想,比如组件之间如何通讯之类的,看多了代码以后遇到类似问题解决
相关文档:
TabNavigator默认是只初始化第一个TAB的,设一下属性,设了后会初始化其他TAB,creationPolicy="all"
补充下tab里面的容器是Canvas
动态生成TabNavigator tab页面
var canvas: Canvas = new Canvas();
canvas.label = "new Tab";
tabNavigator.addChild(canvas);
-------------------------------------------------- ......
flex应用看久了,一个默认的装载loading界面就会导致审美疲劳,下面提供一种方法,让你可以自定义你的装载界面。
1,在src目录下建立自定义类,两个文件代码如下 在adminConsole项目可找到。
*********************************************************************************
1、Preloader ......
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12">
<mx:Script>
<!--[CDATA[
import mx.controls.Alert;
public var newBuildMenuItem:ContextMenuItem;//菜单项变量
private ......
最近在看Flex3权威指南,里面对页面架构和RIA技术总结的很好。
一. 基于页面架构的Web应用流程
1. 用户打开浏览器,向WEB服务器请求一个页面。
2. WEB服务器收到请求。
3. (optional)网络服务器把请求交给应用服务器来动态组装页面。
&nb ......
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flashx.textLayout.formats.BackgroundColor;
import spark.effects.interpolation.RGBInterpolator;
public class Map extends Sprite implements IMap
{
//格子的宽高
private va ......