- 浏览: 34004 次
- 性别:
- 来自: 南京
最新评论
-
zhuxiangyan:
哎,不知道啥时候才能到咱们这“偏远”的深圳来开交流会啊?
Flash开发者交流会——新技术和开发经验谈 -
xingtiwu:
好文章。支持
【推荐】我的FLASH情结2010——浅谈FLASH WEB GAME与创业(1)
关于 Flex 开发方面的语言和架构,介绍了大家都熟悉的分层结构,着重介绍视图层(flex 实现),服务控制层和领域模型层,并按照严格分层,高解耦合性并结合 Flex 技术实验了一个用户管理小模块,案例不是目的,重要的是介绍开发思想。本文第一部分介绍 Flex 相关技术以及 ActionStript3.0 语言。第二部分介绍开发实例的开发过程,代码可以下载,亮点在接口工程。由于本人 flex 经验不足,在以后的工作中会不断补充。
关键字:Flex, J2EE, 架构
1. Flex 介绍
FLEX,是Rich Internet Applications时代的牛×产物Rich Internet Applications,翻译成中文为富因特网应用程序。传统网络程序的开发是基于页面的、服务器端数据传递的模式,把网络程序的表示层建立于HTML页面之上,而HTML是适合于文本的,传统的基于页面的系统已经渐渐不能满足网络浏览者的更高的、全方位的体验要求了,这就是被Macromedia公司称之为的“体验问题”,而富因特网应用程序的出现也就是为了解决这个问题。
Flex最重要的两个技术要数AS和MXML, MXML 和 HTML 一样是标记语言,它描述了反映内容与功能的用户界面。与 HTML 不同的是,MXML 可对表示层逻辑与用户界面和服务器端数据绑定提供声明抽象。MXML 可将表示与业务逻辑的问题彻底分开,以实现最大程度地提高开发人员的生产率及应用程序的重复使用率。MXML 的开发基础是在迭代过程上,这与其他类型的WEB应用程序文件如 HTML、JSP、ASP是相同的。开发 MXML 应用程序就象打开一个文件编辑器一样简单,只要输入一些标签、保存文件,然后在 Web 浏览器上打开文件 URL 即可。
MXML 文件同时也是普通的 XML 文件,所以可以选择多种开发环境。可以在简单文件编辑器、专用 XML 编辑器或是支持文件编辑的集成开发环境 (IDE) 中进行开发。由于 MXML 符合 W3C XML 方案的定义,您也可以使用结构化编辑,如代码着色和代码提示。 MXML和HTML间最大区别:前者定义的应用是编译的SWF文件,执行于FlashPlayer客户端中。后者是基于页面技术的应用。因此前者能提供更丰富的、动态的UI。MXML不支持Flash的某些特性,例如:时间轴。但是可以利用Flash设计组件并应用在Flex中。MXML应用可以是一个MXML文件,也可以是多个MXML组成,MXML支持MXML文件形式的自定义组件、ActionScript文件形式的自定义组件以及在Flash中建立的自定义组件。 FLEX试图通过提供一个程序员们已经熟知的工作流和编程模型,让程序员比从前更快更简单设计中分离出来
总之,flex 是未来界面开发的一个好方向,据我了解很多公司都要求员工要学习flex 技术,可见 flex 受欢迎的程度。
2 .ActionStript3.0 特性介绍
ActionScript. 是针对 Adobe Flash Player 运行时环境的编程语言,它在 Flash 内容和应用程序中实现了交互性、数据处理以及其它许多功能,ActionScript. 是由 Flash Player 中的 ActionScript. 虚拟机 (AVM) 来执行的。ActionScript代码通常被编译器编译成“字节码格式” ,有点类似java的处理和运行机制。变过 C#,Java和javascript程序的朋友,肯定能在 ActionScript. 中找到这些语言的影子。
2.1内置命名空间和自定义命名空间 public :对所有代码可见 Namespace testSpace="org.blogjava.jm/testSpace "; function myFunction():void{ 2.3 Dynamic 类 dynamic class Protean{} //函数语句声明 function traceArgArray(x:int):void class GetSet { privateProperty = setValue; 原文:http://www.blogjava.net/Jack2007/archive/2008/09/11/228212.html 以下是项目的源码:
四个内置修饰符:
private: 只对类内部可见
internal :只对定义所在的同一包内可见
protected :对同一包以及不同包的子类可见
自定义命名空间:
使用关键字namespace定义命名空间,声明属性和方法时,应用命名空间。
AS 代 码:
testSpace myfunction2():void{}
use mySpace2;
myfunction2(); //调用使用 use 关键字打开命名空间
2.2 Local 变量特点
与java不同的是,在as3中,变量没有块级作用域(即两人大括号中间),如果在一个块内声明了一个变量,比如一个for循环内声明了一个变量,它在该代码所在整个函数内都是可访问的
for(var i:int=0;i<5:i++){
var last:int = i;
}
trace(last); //last 在 for 中定义但可以在 for 块外面访问到,个人觉得这样设计欠妥,尽管很方便。
}
Object 类本身就是动态类,当然也可以用 dynamic 关键字来声明一个类,所谓动态就是在运行时可以对类追加属性和方法。
var myProtean:Protean = new Protean();
myProtean.name = "jack.wang";
myProtean.password = 3;
trace(myProtean. name , myProtean.password );
2.4 定义函数的两种方式:函数语句和函数表达式
Function fun1():void{}
//函数表达式声明
var fun2:Function = function():void{}
//函数表达式声明的函数是不能够被垃圾回收的,必须显示的调用 delete 命令。
var t:Test = new Test(); //t是动态类Test的一个实例
t.funt = function(){};//把一个函数声明为t的一个属性
delete t.funt; //删除刚才新增的函数,我们刚才声明的函数也被回收了
2.5 在as3中也有arguments对象,功能基本上和javascript中的一样。
arguments 对象是一个数组,其中包括传递给函数的所有参数,arguments.length 属性报告传递给函数的参数数量,(避免将 "arguments" 字符串作为参数名,因为它将遮蔽 arguments 对象)
{
for (var i:uint = 0; i < arguments.length; i++) {
trace(arguments[i]);
}
}
traceArgArray(1, 2, 3);
// 输出:
// 1
// 2
// 3
当然也可以用类似 java 的形式 function traceArgArray(x: int, args)
2.6 在as3中允许定义同名的静态属性和实例属性
class StaticTest {
static var message:String = "static variable";
var message:String = "instance variable"; }
var myST:StaticTest = new StaticTest();
trace(StaticTest.message); // 输出:静态变量 trace(myST.message); // 输出:实例变量
2.7 在as中有一个叫做set和get存取器的东西,类似JavaBean,但又有所不同。
private var privateProperty:String;
public function get publicAccess():String{
return privateProperty;
}
public function set publicAccess(setValue:String):void {
}
}
3 个人实验介绍
案例是超级简单的,开发Web 应用的,不管你是基于 J2EE,.net 平台还是其他的 PHP 等等都很熟悉分层架构,其中五层是最熟悉不过的了,一般分为表示层,控制层,服务层,模型层和数据层,有的公司干脆就把服务层和模型层合并起来和控制层合并在一起,基于分层的开发可以横向也可以纵向,由于引入 flex 技术,因为并不是所有人都懂得 flex 开发方式,尽管他和传统的 Swing, SWT,GWT开发很相近 ,不过这样需求分析时可以构建可演进的原型系统,界面也很 RIA。
人们常提面向接口编程于是经常看到 IUser user=new User();这样的代码,似乎就是在用接口,但是 new 的动作还是有依赖,于是人们用一些设计模式比如 Factory, Proxy,反射等等模式,后来又有了更好的依赖注入,似乎很完美了,可人们又陷进了过度设计,其实接口应用比直接用原类要多耗费几个机械指令 User user=new User(),而且在一个内聚的组件中尽量用对象直接连接,该分开的时候我们去用接口分,接口的目的是为了抽象,抽象的目的是为了解耦。
本开发为了把模型层和服务层完全分开,引入接口工程,也就是单独开发一个工程来设计接口,这个工程有设计师开发。 用户接口和工厂接口这两个类在单独的工程里开发,以便于模型和服务层同步开发。 在服务层不能对外暴露 IUser 接口,而他也要接受数据,这里用的是 UserVO 对象来封装数据,服务层不操作模型层的任何实现类,这样这两层之间完全解耦,当接口工程和实现完成时候打成 jar 包到 web 工程下 Flex 开发和 HTML开发有很大的不同,客户端和服务端交互的不是 HTML 而是 XML,所以在服务器端 的 Servlet 就应该输出 XML 流到客户端。 最后 Flex 也是一个单独的工程,通过 HTTPService 和 Web 服务器端交互数据。
- UserManagerModel.rar (5.4 KB)
- 下载次数: 73
- UserManagerModelImpl.rar (5.4 KB)
- 下载次数: 69
- UserManager.rar (1 MB)
- 下载次数: 97
- UserManagerView.rar (534.5 KB)
- 下载次数: 77
发表评论
-
Flex 组件的定位和布局
2010-04-06 23:40 0是大方过后就看见还能工本费 -
AdvDataGridDemo + Flex侧边停靠窗口
2010-04-05 20:48 0/hgfdmnb -
chart
2010-04-02 23:27 0asdfghjk; -
qwqwqwqw
2010-03-31 22:13 0asdfghnm, -
手机酷
2010-03-30 22:53 0阿是大方过后每节课,。 -
flex chart
2010-03-30 22:49 0chart -
好的博客网址
2010-03-23 22:50 0http://keren.iteye.com/blog/ ... -
Flex 浅析Metadata
2010-03-22 13:42 912使用 <mx:Metadata> 标签在 MXML ... -
flex 自动生成get 和 set的方法
2010-03-22 09:57 1876<?xml version="1.0&qu ... -
Flex(flash)检测摄像头的3种状态(是否被占用,没安装摄像头,正常)
2010-03-13 23:17 1637在视频程序的编写过程中,我们经常要使用摄像头,在使用摄像头前有 ... -
flex皮肤制作---通过flash
2010-03-13 19:45 18251:你已经安装了flash cs3和Adobe Extensi ... -
Flash和Flex开发者都需要知道的20件事
2010-03-13 09:33 969这是来自InfoQ上的两则文章,我合并为“Fl ... -
如何查看Flex生成的AS代码
2010-03-10 16:01 1779Flex的MXML先要编译成AS,然后再编译成SWF。通过 k ... -
Flex 中取得当前服务IP地址
2010-03-10 15:54 1232var uri:URI = new URI(Applic ... -
12条有用的Flex代码
2010-03-10 15:51 7321.复制内容到系统剪贴板 System.setClipboa ... -
【推荐】Flex3中文视频 和 Flex4中文视频(Beta)
2010-03-10 15:48 1078http://www.riavideo.net/ODT/lis ... -
Flex UI测试工具:FlexMonkey
2010-03-10 15:43 1787相信许多人都知道Flex的单元测试工具,FlexUnit或者A ... -
AS3获得不重复的随机数
2010-03-10 15:24 1744var b:Array =new Array(); for ... -
34个有用的ActionScript 3.0的API
2010-03-10 15:22 2258对于api的说明自己翻译了下,本人英语水平一般,可能有所错误, ... -
Flash、Flex资源大集合(全集)
2010-03-09 23:28 3214断断续续收集了Flash、Flex相关的不少资源,但好多存着都 ...
相关推荐
微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——...
小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 Flex...
J2EE+Flex+Blazeds配置实例
Flex+J2ee实例 rar 源码 Flex+J2ee实例 rar 源码 Flex+J2ee实例 rar 源码
Flex4+J2EE+Blazeds配置jspweb工程
Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part4.pdf 终结版
分步骤搭建整合流行开发框架 整合了Flex+BlazeDS+Spring+iBatis+Cairngorm+pureMVC 迅速进入开发环境
自己写的一个Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring)part1.pdf
用MyEclipse搭建flex+j2ee开发环境
运用flex pureMVC框架做页面构造,通过blazeDS连接flex,j2ee,后台搭建Spring3.0+Hibernate3.0作为基本框架。
Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part3.pdf 第三部分。。add spring and hibernate
flex+BlazeDS整合j2ee开发环境的配置过程,实现flex调用java类
自己写的一个Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part2.pdf 这个是第二部分,循序渐进,让初学者慢慢掌握搭框架的方法
[微信小程序]FlexLayout布局(截图+源码).zip [微信小程序]FlexLayout布局(截图+源码).zip [微信小程序]FlexLayout布局(截图+源码).zip [微信小程序]FlexLayout布局(截图+源码).zip [微信小程序]FlexLayout...
一个 Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) 本实例为一个 flex 与 java通信项目。前端采用cairngorm框架,后台 采用hibernate+spring 每个部署 步骤,附详细 图文解释。旨在 采用 一种快速开发 ...
通过整合Flex与J2EE做一个简单的增删改查(mysql数据库)