本文源代码下载地址:
http://flashview.ddvip.com/2009_04/lesson1.zip
一,如何学好flex
学习技术,最好的方法莫过于边学边用,一边阅读官方文档,一边在项目中实践。但是官方文档太过乏味;若是没人带,从头做项目又不知从何下手。若是有这么一个人,从他最初学习到最后学有所成,这个过程一一被记录下来,别人沿着他这个轨迹学习,一定会更容易入门。
对于初学者,学习内容若太难了,不易理解;若太容易了,又丧失了学习的兴趣与动力。cookbook居说很好,例子很丰富,无论什么问题都能找到答案。但CookBook只是只是针对简单、单一问题的解答集合,很松散,问题与问题之间没有联系,解决问题的手法也不太讲究章法,没有规范可讲。而项目是讲究整体架构的,是讲究规范的。没有任何一个项目会像菜谱一样松散。cookbook只能当作字典备用。正如同我们不能靠背诵字典来提高文化素养一样,学习flex技术,也不能完全靠cookbook。
如果不看cookbook,而读官方livedoc文档,又当如何?从头开始一页一页的看,看到后面,前面也忘的差不多了。只是这么走马观花的看看,肯定不行,于是乎把例子一一拷贝出来,运行一下看看,改改参数再看看,慢慢就明白了,记得也深刻了。但是文档浩如云烟,难道每一个类都要这样学习,况且并不是所有的类都附带代码示例?肯定有一些知识点在项目中是经常用到的,而另外一部分却是针对特殊情况特殊问题的,对于初学者,没有必然面面俱到,先学到最常用最基本的就可以了。哪些是最常用的?谁能告诉你?
除了阅读cookbook与livedoc文档之外,研读开源程序也是一个好方法。但优秀的开源程序的结构往往都比较复杂,初学者难于理解;不复杂的往往又没有什么技术含量了,也就不值得学习了。越是完善的开源程序,越难看得明白,它什么会这样设计,为什么要有这个类,为什么要定义这样一个接口,凡此种种的问题都有它的原因。这些原因湮没在历史版本演化之中,很难从最初版本窥斑见豹。如果我们可以看到它是如何从最初的模型演化过来的,便会更容易理解它今天的架构。虽然开源程序大多数都有历史版本可查,但做为凡人,谁又能究极它的所有版本,再细细揣磨加以对照以找出差别所在。网上有一些人会写一些关于这个那个框架的研究分析,但恨只是只言片语,很少有人对一个框架从头到脚剖析完备的。或许真如人言,写分析的人多是一瓶不满半瓶咣当的人,真正了解的人反而是沉默的。
我是一位flex初学者,从今天开始,我将开始学习flex4技术,一边学习一边开发一个flex博客系统。并且我会把我的这一学习、开发过程记录下来,以期给后来者以指引。
二,配置开发环境
写flex程序,可以用Flex Builder 3,Flex Builder 3 Plugin For Eclipse,FlashDevelop,前两者是Adobe的产品,是收费的(面向教育工作者是免费的),但有60天试用期,后者是开源的、免费的。当然如果不用IDE编码,Flex SDK是最好的选择,它是完全免费的,但并不利于初学者使用。用于我这样的初学者,我觉得我还是使用可视的IDE编码环境比较合适。
flex是用来写客户端代码的,服务端我打算用java来写。Google App Engine开放了java支持,正好用做web测试服务器。真感谢Google为开发人员准备了如此好的免费的java空间!
签于我使用flex与java,我打算安装eclipse做为我的项目开发环境。
1,用gmail帐号申请Google App Engine,并申请java环境使用许可(截止作者写这篇博文时,java环境的支持仍需申请,默认仅支持python),申请需等待审批。
2,安装jdk 1.6
3,安装eclipse 3.4.2,选择for java版本
4,Adobe Flex Builder 3.0.2 Professional Eclipse Plug-in
5,安装Google Plugin for Eclipse
6,安装Flex sdk 4.0.0.4021版本,该版本是Max Preview版本。设置flex4.0为默认的sdk版本。
上述软件的安装都较简单,不再一一废话,如有不明,请在Google中搜索。Google Plugin for Eclipse内含了GWT(Google Web toolkit),这让用户开发、调试、布署Google App变得很方便。从本机布署应用程序到远端,只须单击一个按纽即可完成编译、发布全过程。
三,第一个hello world应用
1,用eclispe新建一个Web Application Project项目,命名为gapp_flexblog,默认命名空间为sban.flexblog,该项目用于写java server端代码。
2,新建一个Flex Project,命名为gapp_flexblog_client,该项目用于编写客户端代码。
3,在gapp_flexblog_client项目下,把默认首页文件改为Index.mxml,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<FxApplication xmlns="http://ns.adobe.com/mxml/2009">
<TextGraphic text="hello, world!" />
</FxApplication>
这是一个标准的flex4程序文件。flex4的mxml语言的命http://ns.adobe.com/mxml/2009,并且前缀不再是mx,而是空,一是与flex3区分,二是编码方便。运行这个文件,没有问题:
结束语:这是一个静态的hello world应用,还称不上真正的flex应用。真正的flex应用是需要与服务端进行数据交互的。下一课我们将使用URLLoader与server交互。
本文作者:未知