Flex入门培训_第1页
Flex入门培训_第2页
Flex入门培训_第3页
Flex入门培训_第4页
Flex入门培训_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 Flex入门培训入门培训电力产品研发部谢志奎课程纲要 培训内容 Flex基础概念 Flex开发环境搭建 Flex+BlazeDS+Java简单示例 学习路线、相关书籍和 网站介绍Flex基础概念Flex是Adobe公司推出的基于开源、免费、跨平台的新一代Flex富客户端平台。这种新型的Flex富客户端能够提供和早期C/S技术一样出色的UI,但又和B/S一样不需要在用户的机器上进行任何部署,也不需要手动对应用程序进行版本更新。Adobe的Flex富客户端技术为AIR和Flex,其核心以ActionScript语言为基础,运用XML来描述界面,用编译器来生swf文件,使用浏览器的Flash pl

2、ayer插件就可以进行观看。 Flex开发环境搭建 首先双击打开FlashBuilder_4_Plugin_LS10.exe,在弹出的框中会让你选择把安装文件解压到哪个目录下,这个地方需要注意的是,一定不要选择带有中文的目录,不然安装为出现问题Flex与Java通信示例 使用使用Flex RemoteObject组件所需环境:组件所需环境:1、jdk需要1.5及以上2、通过使用BlazeDs作为中间层来实现Flex和java类的通信。 BlazeDS概念:概念: BlazeDS是一个基于服务器的Java 远程控制(remoting)和Web消息传递(messaging)技术,它能够使得后端的J

3、ava应用程序和运行在浏览器上的Adobe Flex应用程序相互通信. 它是一个web应用框架,一个web应用框架的基础还是servlet和过滤器。所以它里面有个MessageBrokerServlet。这个servlet的用处和其他框架,如struts,spring里的新增配置文件(struts.xml,application.xml)所起到的作用类似,匹配url,决定将请求发往给哪个服务,所有的服务在他内部是通过services-config.xml等几个文件安排的. Flex与Java通信示例需求:Flex有一个输入框、按钮和Lable,在输入框中输入信息后点击按钮,可以通过Remote

4、Object方法调用java类中的方法。通过该类中的方法对数据进行处理并返回,将处理后的数据显示在Lable上。服务器端文本框数据被改变swf通过RemoteObject方法调用类中的方法,并将输入的值作为方法的参数,需要remoting-config.xml文件中找到类的映射;Java类数据加工.mxml.swf编译时生成输入数据点击提交按钮BlazeDsflex/remoting-config.xml为了RemoteObject方法能够调用类,此处需要配置如果调用成功会触发RemoteObject方法的result事件,该事件会调用我们定义的方法得到处理后数据数据展现,当服务器传过来的值发

5、生变化时,控件上绑定的值会自动刷新 Flex与Java通信示例htmlFlex与Java通信示例BlazeDS实现类的映射:在WebRootWEB-INFflexremoting-config.xml里面加上下面这段设置(本示例): com.HelloWorld 其中id=“hello”是自己对类起的映射名称 节点是类路径Flex通过RemoteObject调用java:其中id=“ro”这个id的值是自己定义,相当于要调用的类的一个对象名称其中destination=“Hello” 这儿destination的值必须是在remoting-config.xml中定义的id值其中result=“

6、resultHandler(event)” 是结果响应事件,调用类中的方法后会自动调用这个方法。Flex与Java通信示例实现步骤:1、首先根据需求实现类的编写2、在blazeds中实现类的映射3、完成flex端调用4、引用flex生成的html文件,查看效果Flex与Java通信示例实现:1、comHelloWorld.java是Flex应用要调用的类,实现对Flex传进来的数据在后端处理并返回处理后的数据。2、在WebRootWEB-INFflexremoting-config.xml中添加类的映射,该映射起到了Flex的RemoteObject方法和java类通讯的桥梁作用。3、Firs

7、tProject.mxml是Flex应用,实现前端页面的展示。通过RemoteObject方法对类中方法的调用,并且能得到方法的返回数据。4、FirstProject.html是对Flex应用生成的swf文件的展示Flex与Java通信示例1、首先需要下载BlazeDS框架框架,下载地址http:/ Project,打开新建工程向导,如下图:Flex与Java通信示例2、输入工程名称,点击finally后,则Java Web工程建立完成,如下Flex与Java通信示例3、将下载的BlazeDS包解压到本地,打开D:技术相关blazeds-turnkey-4931tomcatweb

8、appsblazeds目录,找到META-INF和WEB-INF两个包,把它们拷贝到新建的工程中覆盖到原有的,然后部署工程Flex与Java通信示例4、在已经建立好的web应用上,点击右键,选择添加Flex项目类型,如下图:Flex与Java通信示例5、选择你所部署的TomcatwebappsXXX对应的目录和项目编译后生成文件的存放位置,然后点击完成。AS3向向Java转换时数据类型的对应关系转换时数据类型的对应关系Java向向AS3转换时数据类型的对应关系转换时数据类型的对应关系事件机制事件机制 1. 1. 事件简介事件简介: :事件可以由外设触发, 比如:键盘,鼠标, 也可能是外部输入,

9、 比如:web service的返回.事件还能由组件的外观和生命周期发生变化时触发, 比如:组件的创建或者改变大小.所有用户与应用交互都会产生事件.用户没有直接与应用交互也可能产生事件, 比如:数据装载完毕.你可以在程序中使用事件监听器addEventListener()监听这些事件. 事件监听器是函数方法用于响应指定的事件. 有时也称之为事件处理器. 2. 2. 事件流简介:事件流简介:当一个事件被派发出来时, 事件对象从根节点开始自上而下开始扫描display list, 一直到目标对象, 检查每个节点是否有相应的监听器.目标对象指的是display list中产生事件的对象. Flex核

10、心机制 3. 3. 手工派发事件:手工派发事件: Flex中可以通过dispatchEvent()方法手工派发事件, 所有UIComponent的子类都可以调用此方法.语法:组件对象.dispatchEvent(new Event(event_type):Boolean参数event_type是Event对象的type属性. 函数的返回值总是True.可以使用此方法派发任意事件, 而不仅仅是用户自定义事件, 比如: 可以派发一个Button的Click事件.var result:Boolean = buttonInstance.dispatchEvent(new Event(MouseEven

11、t.CLICK);在Flex应用中不是必须对新派发的事件进行处理, 如果触发了一个事件, 而没有对应的Listener时,Flex忽略此事件.Flex核心机制 绑定机制绑定机制 Flex绑定机制的原理就是事件,在被Flex绑定的对象上增加了改变事件的监听,一旦某个被Flex绑定对象改变后,就会分发一个“propertyChange”事件(默认的,也可以改变成自己定义的事件),在其他组件中,会有propertyChange的事件监听,当捕捉到该事件后,则会去更新组件的属性并显示。如果想让变量、类、方法的值与组件的值进行绑定,请在这些对象上加上Bindable标记Flex核心机制开发过程中需要注意

12、的问题需要注意的地方:需要注意的地方:1、在开发Flex Web项目时,项目生成的swf文件大小不要超过3M,不然用户体现会很糟糕,但如果项目运行在局域网内可忽略这一点,项目用到的图片资源可压缩成swf来使用,这样就可减小主程序生成的swf的大小。2、对于像论坛、博客类型的项目不适合用Flex开发,因为在搜索方面会受到限制。3、由于Flex内存回收机制还不是特别好,所以在对象的使用上要注意及时销毁,手工派发的事件用完及时删除。FLEX内存释放优化原则及具体做法:内存释放优化原则及具体做法:1. 被删除对象在外部的所有引用一定要被删除干净才能被系统当成垃圾回收处理掉;2. 父对象内部的子对象被外

13、部其他对象引用了,会导致此子对象不会被删除,子对象不会被删除又会导致了父对象不会被删除;3. 如果一个对象中引用了外部对象,当自己被删除或者不需要使用此引用对象时,一定要记得把此对象的引用设置为null;4. 本对象删除不了的原因不一定是自己被引用了,也有可能是自己的孩子被外部引用了,孩子删不掉导致父亲也删不掉;5. 除了引用需要删除外,系统组件或者全局工具、管理类如果提供了卸载方法的就一定要调用删除内部对象,否则有可能会造成内存泄露和性能损失;开发过程中需要注意的问题6. 父对象立刻被删除了不代表子对象就会被删除或立刻被删除,可能会在后期被系统自动删除或第二次移除操作时被删除;7. 如果父对

14、象remove了子对象后没有清除对子对象的引用,子对象一样是不能被删除的,父对象也不能被删除;8. 注册的事件如果没有被移除不影响自定义的强行回收机制,但有可能会影响正常的回收机制,所以最好是做到注册的事件监听器都要记得移除干净。9. 父对象被删除了不代表其余子对象都删除了,找到一种状态的泄露代码不等于其他状态就没有泄露了,要各模块各状态逐个进行测试分析,直到测试任何状态下都能删除整个对象为止。内存泄露解决方法:内存泄露解决方法:1. 在组件的REMOVED_FROM_STAGE事件回掉中做垃圾处理操作(移除所有对外引用(不管是VO还是组件的都需要删除),删除监听器,调用系统类的清除方法)先remove再置null, 确保被remove或者removeAll后

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论