flex的一点总结

       最近换了一家公司,刚进公司的第一天就被坐在旁边的项目经理通知,最近没啥事学学flex,然后一直到现在已经打一个月的酱油了,当然也学了点flex3和ActionScript3.0的皮毛,所以想最近写个总结来纪念我打酱油的生活。

 

刚进公司人生地不熟的,也没啥文档问经理要了一个flex3.0的API和一系列的flex Example还有一个FlexBuilder3开发工具,就这样我就轻装上阵开始了我的flex旅途。

 

应朋友介绍刚开始学习的是ActionScript3.0,借了本《ActionScript3.0的基本教程》这本书,然后就开始慢慢啃AS这门脚本语言了,刚开始觉得这语言很变态例如声明变量什么都和java反着来.写一个验证文本框是否为空的方法

 

来和其余脚本比较下
 
   //方法返回值要写在大括号的外面:不习惯
   private function checkLogin():void
   {

    //声明变量既然as中不在像js中那么是弱类型为什么还需要var关键字呢?不解
    var loginName:String = txtLoginName.text.toString();
    if(""!=loginName)
    {
     Alert.show("Login Success!");
    }
    Alert.show("Input your LoginName!");
   }

 

就这样很不适应的写了几个方法学习适应AS的基础,在然后就开始熟悉它的基本语法了,包含:


array, hash, loop, if else,for....

 

由于之前有过java和js的经验所以这些也上手的很快了

 

在然后就是一些AS稍微上层的东东,包含:

 

DisplayList (DisplayObject, DisplayObjectContainer)與 Event system(bubbling, propagating…)

 

Sound, Video, NetConnection 與 Graphics class

 

这些我也没怎么深入,就草草的过了下,我是个急性子的人总是想看到效果,就开始研究Component,其实也就是学学flex本身的控件,学习的方法就像刚开始学习HTML那样通过用它本身的一些控件,我主要认为他的控件和HTML一

 

样分为三大类
 
-Controls: Button, DateChooser, Slider…

-Containers: Box, DividedBox, Panel…

-List: DataGrid, Tree, TileList…

 

现在已经学会了如何用这些元件,了解了每个元件的 properties, events, styles, effects属性所代表的含义,由于主要是从API里面学习的,所以可能有一些好的方法不会。。

 

然后我用FLEX+AS3.0做了一系列的DEMO。

 

当我稍微感觉有点欣慰的时候压力来了,上个周5我的直接老大的老大看我每天闲着没事让我用flex做一个考试系统.做成swf后缀的,我囧了。。。因为那个老大不知道我不会flex。但是老大往往不管那么多,他们只管结果。

需求是这样的:

 

你有一个*.txt的文件里面保存着题目

eg: 1.您喜欢的运动
    A.篮球
    C.足球
    D.羽毛球

 

这些题目选不同的选项会得到不同的分数,这写分数可以在txt里面配置,然后把题目刷到系统中,考生答题结束后管理员可以看到得分。

然后我就开始分析需求,当时我总结了几个可以卡到我的地方

 

1.flex如何做文件读写的操作

2.读写好之后如何在页面想添加这些考题元素

3.我如何用as得到考题信息并计算分数

问题分析好之后我直接放弃了flex做文件读写操作的,因为手头资料不够,想下班回家问问google,外包不能上网呵呵。于是我就想了一个损招,声明了3个数组保存题目,第一个数组保存 题目 第二个数组保存选项 第三个数组保存

 

分数,然后查看API发现form有个addChild方法,AS也可以声明元素,就这样我就声明了RadioButton和Lable对象通过form的addChild方法在使用两个for循环来遍历那三个数组总算是把题目刷了上去,就这样简单的几行代码纠

 

结了我一下午,对自己越来越没信心了,6点钟下班,那个老大也没有问我要,所以我就加速的跑回了家查看了下flex读写文件的操作,在网上查的结果是flex在web方面不支持文件操作,可以通过java来读写传递.

这样就引发了第四个问题


4.JAVA如何和flex交互

 

刚开始我用的是service控件通过send方法给servlet发送消息,但是我发现不能接收到返回值,然后找丫找,,终于找到了一个叫RemoteObject的东东,然后就开始研究这东东,看着网上介绍感觉好麻烦,最后google这位大神给

 

我推荐了blazeds这样一个小的框架,然后在网上下载了一个blazeds的helloworld的DEMO,和blazeds的war包。大体步骤为>

 

1。创建一个java web的项目用blazeds.war下面的WEB-INF覆盖自己创建javaweb的web-info目录

2。配置WEB-INF目录下flex下remoting-config.xml添加destination结点来告诉Flex应用程序如何连接上Java class的

3。在flex application节点下创建RemoteObject 对象,然后写as回调函数接收返回值

 

这三个步骤写好之后我就开始用java中的IO读取那个令我纠结的txt文件,我首先声明一个exam对象里面有一个String类型的对象用来保存题目,一个List类型的对象用来保存答案,一个List对象用来保存分数,然后用IO遍历文件将

 

对象放在List中,然后用AS声明了一个exam对象来通过那个回调函数接收java的返回并遍历得到每个exam对象,通过之前的form.addChaild方法将题目刷到页面中,通过百般调试和尝试终于题目出来了。。。欣喜若狂。。。然后

剩下的就是之前的第三个问题,如何取得分数,我用了一个非常戳的方法,遍历页面上的每个radiobutton对象,判断是否被选中如果被选中的取得其数值然后++。唉,,,性能虽然低下,但是总算成功的得到了考题分数。

 

就这样这个纠结的任务让我给搞定了,我的周末也就这样没了,由于写的代码非常基础,在这也就不贴出来了。

 

对于flex我还是一个菜菜鸟,希望以后能用的非常熟练。

 

 

天高任鸟飞

 

                  2010 11 16

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值