ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:302.93KB ,
资源ID:24331448      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24331448.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(FLEX学习笔记崔宏峰0309.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

FLEX学习笔记崔宏峰0309.docx

1、FLEX学习笔记崔宏峰0309 FLEX学习笔记贵在坚持 崔 二宏 零峰 一 一年二月十七一、 配flex环境需要软件:1. jdk2. tomcat3. myeclipse4. flex builder 插件5. blazeds.war 其它的安装比较简单。只是装flex builder时注意。有一步要选myeclipse的安装路径才行。然后把D:Program FilesadobeAdobe Flash Builder 4 Plug-ineclipse下的features和plugins文件夹放在myeclipse的D:Program FilesGenuitecCommon 下(myecl

2、ipse8以后就是这种路径。7好像是单独有一个eclipse文件夹),然后还有一个AMT文件夹放到 D:Program FilesGenuitecMyEclipse-8.6AMT文件夹(这个不知道是为啥)(注:也有人不拷贝这些。只是像上边那样直接安装。行不行有待考证)二、 建立采用flex的web工程 因为flex只是做为表示层展示,flex只接收java返回数据,那怎么和java服务端通信呢?这时我们需要用到adobe公司开发的一个开源项目Blazeds。Blazeds是一个基于服务器的 Java 远程控制 (remoting) 和 Web 消息传递 (messaging) 技术,以LGPL

3、(Lesser GNU Public License)公共许可证书发布。它能够使得后端的 Java 应用程序和运行在浏览器上的 Adobe Flex 应用程序相互通信。在Java应用服务器上,它以servlet的形式存在, 因此可以在任何标准Java网络应用中运用它。下载好核心包解压出来就发现一个文件名是Blazeds.war,我们只需要把Blazeds.war改成Blazeds.rar然后解压就会出现:1.打开Myeclise8.0新建一个javaweb工程,选择javaEE 5.0如图 2.把blazeds解压后的2个文件夹覆盖到WebRoot下面,展开发现在WEB-INF目录下面多了fl

4、ex文件夹,这个很重要主要是通信的4个配置文件。如图:3.web.xml的解说!DOCTYPE web-app PUBLIC -/Sun Microsystems, Inc./DTD Web Application 2.3/EN BlazeDS BlazeDS Application flex.messaging.HttpFlexSession MessageBrokerServlet MessageBrokerServlet flex.messaging.MessageBrokerServlet services.configuration.file /WEB-INF/flex/servic

5、es-config.xml 1 MessageBrokerServlet /messagebroker/* index.html index.htm !- Flex Messaging WorkManager wm/MessagingWorkManager com.ibm.websphere.asynchbeans.WorkManager Container Shareable -3.部署项目文件到tomcat里面。这部重要因为下面要整合flex必须得启动服务。我部署的服务器物理路径为:D:Program FilesApache Software FoundationTomcat 7.0web

6、appstest。把项目文件部署到tomcat下后(新安装一个tomcat服务器,不能用eclipse自带的)。下边建立flex项目才能选。4. 转换为flex项目,首先选中你的web项目右键选择添加/更改项目类型,在选择添加flex项目类型5.选服务器为j2ee,然后选择Blazeds6.下一步配置你的服务器路径,上面说了我的项目发布到D:Program FilesApache Software FoundationTomcat 7.0webappstest所以我下面就填如下信息根文件夹就是服务物理路径,根URL就是你的访问路径,我这里tomcat的端口是8080所以就这样填,看你的端口而定

7、然后在加上你的项目名称,上下文根目录就填项目名称就行了。最后输出路径我把后面的目录改为flex。记得点一下验证配置只有通过才有效注:解决创建的错误:点重新重建html模板即可7. 新的问题又来了,src是java的源文件夹存java源代码地方,但是现在被flex给占用了8.更改flex的项目源文件为flex_src,右键项目属性找到flex构键路径的主源文件夹把src改为flex_src9.然后把src文件夹里面的flexweb.xml移动到flex_src文件夹里面,最终目录路径三、 准备工作完成了。现在开始正式学习学习ac3基础语法的在线手册经验总结。打开别人或者别的机器的eclipse工

8、程一般会报错。要重新建个工程。然后把相应的程序和配置文件复制过去一般就不会报错了。注意!何为internal?答:internal是一个命名空间。在此命名空间的调用必须处于同一个包才可以。否则会报错。 如:internal function init():void styleArr.push(Button Click);styleArr.push(Hslider Value);cmbStyle.dataProvider = styleArr;数据绑定?答:Flex实际上在编译的时候会产生一些Watcher代码去监视绑定标签所指定的表达式。在运行的时候,当绑定源的属性得到修改,那么这个Watch

9、er监视类就会触发change事件去执行绑定更新的工作。在Flex中有三种绑定数据方式:1、 -这种最常用。如 绑定一个属性或者一段AS的表达式已经应用的非常普遍了。偶尔我们需要用到绑定的是一个AS的函数,但是,绑定一个函数的时候很多人 会碰到问题,为什么我的数据没有自动更新呢?本人也曾经碰到过,看了开发文档才知道,原来忽略了一个细节问题。就是在绑定函数的时候,通常情况下需要一个bindable的property作为该函数的参数。如:1. 2. 3. mx:Applicationxmlns:mx=4. 5. 13. 14. 15. 16. 17. click=inString=myTI.tex

10、t; 这种相当于直接执行一个表达式 -这样写会自动执行这个函数。然后取绑定过去的值2、 tag in MXML1. 2. 3. mx:Applicationxmlns:mx=4. 5. 10. 11. 12. 13. 14. 15. 16. 17. 3、BindingUtils methods in ActionScript这种方法是使用mx.binding.utils.BindingUtils类来实现的。如:BindingUtils.bindProperty(textarea, text, textinput, text);就是直接绑定了两个输入框的text属性,还可以用bindSetter

11、来绑定一个数据源和一个set函数。如:public function mySetterBinding(event:FlexEvent):void var watcherSetter:ChangeWatcher = BindingUtils.bindSetter(setMyString, textInput2, text);这里就是将textInput2的text属性setter函数和setMyString函数绑定起来,一旦textInput2的text被修改,那么将会触发setMyString函数。Bindable 是什么意思?Bindable大概又是Flex用得最多的元数据了。啥是元数据(m

12、etadata)首先要明白元数据不是语法的一部分,而是专门给编译器用的,说白了是告诉编译器做某些事情,学过java之类的应该知道。那Bindable来讲,它的作用是告诉 flex编译器,给某些某些东西建立绑定关系,flex编译器会在编译过程中给AS(flex编译器就是把mxml编译成as,再编译到swf,也可能直 接编译倒swf,我这里假设有as这么个环节)加一点事件发生和处理之类的代码,由此绑定的关系便建立了,如果我们用纯粹as3代码来写也是可以实现的, 就是太太太麻烦。啥是绑定举个例子:给下面的public变量加上BindableBindablepublic var name:String

13、 = ;作为一个public变量,肯定既可以被赋值,也能赋值给别的变量。绑定的作用就是,当name改变的时候(被赋值了),可能通知其它被name影 响(赋值给它们)的变量发生改变。这里的“可能”就需要编译器来判断,这就是为什么元数据是给编译器用的原因了。在mxml里用的语法的地方就是绑定 的对象,比如label=xxx.name,当name变化,label也跟着变化。这样,我们只是很简单的改变了name的值,由于有绑定,界面上 的label也跟着自动变化了,爽吧。Eclipse 下的 flex插件技巧,技巧一:同类属性放一行。比较整洁 技巧二:在控件属性行里按“空格”,会出现这个控件的所有属性

14、技巧三:Ctrl+” 是代码界面和设置界面切换技巧四:Spark组件更方便的定义组件的样式。它比较灵活.型更适合简单的定义组件的样式 技巧五: -这里的creationComplete=initApp()意思是 最先执行这个函数技巧六:定义VO:VO是跟数据库里表的映射,一个表对应一个VO,也可以不完全相同。即表10个字段。VO5个字段DAO是用VO来访问真实的表,对数据库的操作都在DAO中完成O/R Mapping 是 Object RelationalMapping (对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在 O/RMapping 的世界里,有两

15、个基本的也是重要的东东需要了解,即 VO , PO 。VO ,值对象 (Value Object) PO ,持久对象 (PersisentObject) ,它们是由一组属性和属性的 get 和 set 方法组成。从结构上看,它们并没有什么不同的地方。但从其意义和本质上来看是完全不同的。 VO 是用 new 关键字创建,由 GC 回收的。 PO 则是向数据库中添加新数据时创建,删除数据库中数据时削除的。并且它只能存活在一个数据库连接中,断开连接即被销毁。 VO 是值对象,精确点讲它是业务对象,是存活在业务层的,是业务逻辑使用的,它存活的目的就是为数据提供一个生存的地方。 PO 则是有状态的,每个

16、属性代表其当前的状态。它是物理数据的对象表示。使用它,可以使我们的程序与物理数据解耦,并且可以简化对象数据与物理数据之间的转换。 VO 的属性是根据当前业务的不同而不同的,也就是说,它的每一个属性都一一对应当前业务逻辑所需要的数据的名称。PO 的属性是跟数据库表的字段一一对应的。PO 对象需要实现序列化接口。VO(value object) 值对象通常用于业务层之间的数据传递,和 PO 一样也是仅仅包含数据而已。但应是抽象出的业务对象 , 可以和表对应 , 也可以不 , 这根据业务的需要 .不要纠结于什么O中,只需要大概明白什么意思。并且应用到实际中就行了.vo是业务角度的抽象java表。Po

17、 是一对一的数据表抽象表。Dao负责具体的数据库操作。一般包括 增删改查等操作。一般dao外面还有个接口类。只定义空的方法。没觉得有屁用。上面讲这么多。主要是想说一个事。Flex as 定义的vo.要和java的vo类的名字相同(当然字段名也最好一致,别给自己找麻烦)。要不会报错。Undefined错误。出现这个现象的原因,一般是由于参数名称不匹配所致。仔细检查一下你的as端的vo对象的名称,是否和java端接收对象的大小写完全一致,另外还须检查采用RemoteObject的时候,所用的java端方法名的首字母是否为小写(根据采用package不同而情况不一样)。再有就是类型是否一致,比如as

18、端用String类型,java端也一定要用String类型,as端用ArrayCollection类型,java端要用List类型等等,如果是用entity传递,那么as端的Object内容和 java端的entity结构是否完全一致。正确的方式为:JAVA部分:package com.test;public class UserVo private int id; private String user_id; private String password; public int getId() return id; public void setId(int id) this.id =

19、id; public String getUser_id() return user_id; public void setUser_id(String userId) user_id = userId; public String getPassword() return password; public void setPassword(String password) this.password = password; Flex部分:package com.flex RemoteClass(alias=com.test.UserVo) public class UserVo /好像是如果

20、是public型,那么就不用再写getter,setter方法 public var id:int; public var user_id:String; public var password:String;/ public function getId():int/ / return id;/ / public function setId(value:int):void/ / id = value;/ / public function getUser_id():String/ return user_id;/ / public function setUser_id(value:String):void/ user_id = value;/ / public function getPassword():String/ return password;/ / public function setPassword(value:String):void/ password = value;/ 技巧七:关于flex的命名空间技巧八:数据校验组件举例必须定义在区间内,source是校验的控件id mx:StringVali

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1