快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

世界十大体育投注网站_酒文化网进入



本文分为四个部分,首先简单先容交互式 Web 利用法度榜样的体系布局,阐发 Dojo 技巧和 Flex 技巧的用途;然后经由过程一个详细实例来讲述 Flex 利用法度榜样的开拓及与传统 Web 项目的结合;其次同样经由过程实例先容若何在 Web 客户端中应用 Dojo 技巧,及若何和后台办事进行交互,着末阐发 Flex 技巧和 Dojo 技巧结合应用这种模式在交互式 Web 利用法度榜样中的可行性和所具有的上风。经由过程本文的解说,一方面读者能够清楚的懂得到同时应用 Flex 和 Dojo 的需要性、可行性及相对应的利用处景;另一方面,信托读者能按照实例所先容的步骤及一些履历技术,快速将 Flex 和 Dojo 技巧运用到原有传统的 Web 利用法度榜样中去。

小序

以用户体验为核心的交互式 Web 利用法度榜样在行业办理规划中是必弗成少的一部分,新兴的 Ajax 技巧和 Flex 技巧都能使开拓职员更便捷地创建出色的富 Internet 利用法度榜样(RIA)。Dojo 作为 Ajax 技巧的代表,是今朝最为强大年夜的 JS 框架之一,它供给了极其完整的可调用库,而且受到 IBM 的支持并在 IBM 产品中广泛应用;Flex 则是经由过程为开拓职员供给面向工具编程的要领来描述利用的外不雅和行径。

Flex 和 Dojo 先容

Flex 经由过程为开拓职员供给面向工具编程要领,借助比拟 HTML 加倍规范化、标准化的 MXML 说话来描述利用的外不雅和行径,着末由 MXML 与 ActionScript 编译天生 swf 文件交融到 Web 客户端里面。正由于 Flex 方向于开拓职员,而且包孕了富厚的组件库,以是更轻世界十大体育投注网站易闪开拓职员创建出色的富 Internet 利用法度榜样。下面简单先容一下 Flex 中的两个关键技巧:

MXML 是一种基于 XML 的用户界面标记说话,主要用于对 Flex 利用法度榜样进行结构并向其添加组件,MXML 还用于对办事器端数据源的造访以及用户界面组件和数据源之间的数据绑定。它容许开拓职员创建动画、状态、转换和样式,并且具有很好的可扩展性,容许开拓职员方便地创建可重用组件。

ActionScript 是基于 ECMAScript 的脚本体例说话,在 Flex 中,ActionScript 容许您为利用法度榜样增加交互性。

Dojo 是一个面向工具,开源的 JavaScript 对象箱。它为开拓 Web 富客户端法度榜样供给了一套完备的 Widget 和一些殊效操作。

根据 Flex 和 Dojo 各自的特点和上风,为了更好的满意用户的需求,供给优越的用户体验,本文讲述的交互式 Web 利用法度榜样将采纳以下策略,此中针对交互性更强的图片处置惩罚部分将经由过程 Flex 实现,而对实时性要求更高的图片、文本信息更新和交互部分则经由过程 Dojo 来实现。

利用法度榜样模型及交互模式

在传统的三层体系布局中,可以看到无论是营业逻辑层孕育发生变更,照样对数据库进行改变都不会对这两者中的另一层孕育发生影响或者只孕育发生很细微的影响,可以说数据库和编程说话基础上完成懂得耦;然则进一步思虑,会清晰的发明这样一个问题,当外界必要系统对营业逻辑层进行的进级或改变时,会直接导致现有的体现层险些彻底的改变,这一问题在传统的三层体系布局下无法世界十大体育投注网站避免。

RIA 的呈现可以在很大年夜程度上改变这一缺陷。这是由于一方面在 RIA 利用法度榜样模型中,可以将营业功能进行封装,并以办事的要领供给给客户端,客户端不管是 JavaScript,Dojo 或者是 Flex 都不必要关注功能的实现,而只是去专注于用户的交互体验;另一方面,RIA 利用法度榜样的客户端仅由浏览器和插件构成,用户界面高度的统一,利用的进级、改变对用户险些毫无影响,用户无需对客户端进行进级、扩展等操作。本文将沿用现有 RIA 利用法度榜样的模型,如下所示:

图 1. 利用法度榜样模型

为了达到体现层和办事器端动态交互的目的,这里所采纳的要领是:由 Flex Builder 编译天生的 SWF 文件可以经由过程 AMF 协议要领或 XML 要领为 FlashPlayer 与办事器端供给一种高机能的造访要领;而 Dojo 则是经由过程 JSON-RPC 来异步调用办事器端 Java 工具。详细的实现要领会在接下来的实例中详细阐述。

开拓情况

Flex Builder3.0, 办事器 IBM WebSphere V6.1 Server,当然也可以应用其他 J2EE 办事器。

构建基于 Flex 的图片处置惩罚利用法度榜样

本图片处置惩罚利用法度榜样创建一个 Canvas 组件,用于显示用户在图片列表中选中的图片,对付在 Canvas 组件中显示的图片,供给图片放大年夜世界十大体育投注网站缩小及图片拖拽的功能。接下来将具体先容这个基于 Flex 图片处置惩罚利用法度榜样的实现步骤:

创建新的 Flex 利用法度榜样

打开 Flex Builder 对象,在菜单中选择

File -> New -> Flex Project

创建一个新的 Flex 工程,其他选项如下图所示:

图 2. 创建利用法度榜样

点击Finish按钮后完成创建步骤。在 Flex Development 视图下,可以看到新建的项目布局如下所示:

图 3. Flex 利用法度榜样文件布局

此中值得留意的是建议大年夜家在编译 Flex 项目时,将该利用法度榜样的文件放到 bin-世界十大体育投注网站debug 文件夹下,作为项目开拓的输出目录;当筹备支配利用法度榜样时,把支配文件天生到指定的支配目录 bin-release 中。在本交中,会将支配成功的 SWF 文件嵌入到 We世界十大体育投注网站b 项目中,详细做法会在 2.4 章节中具体讲述。

创建图片处置惩罚用户界面

在图 3 中可以看到 src 目录下有一个 MXML 文件,这个主利用法度榜样 MXML 包孕了所有的 UI 组件和向外部裸露的接口,为了表现项目的易扩展性,可以将 Script 实现的详细功能作为一个图片处置惩罚的组件封装在一个新的 MXML 文件(ImageZoom.mxml)中,然后将这个图片处置惩罚组件绑定到主利用法度榜样中去。

清单 1. ImageZoom.mxml

// 图片处置惩罚功能详细实现

ImageZoom.mxml 组件包孕一个含有脚本块的 Flex Canvas,脚本包孕了图片处置惩罚功能详细的实现,一个子 Canvas 组件和 Image 组件,该 Image 组件具体定义了组件外不雅大年夜小,图片信息滥觞和初始化函数并指定了 mouseDown, mouseMove 等事故的相应函数。

清单 2. FirstFlexProject.mxml 片段

清单 2 枚举的 FirstFlexProject.mxml 片段注解主利用法度榜样 MXML 组件包括了一个 ImageZoom 组件来显示全部图片区域,两个 VSlider 组件用游标拖动的要领在自定义图片的比较度和明暗度,一个 HSlider 组件用游标拖动的要领对图片进行缩放处置惩罚并相应以其他要领完成的缩放图片,四个 Button 分手完成点击按钮放大年夜缩小图片和重置功能。

这样,全部图片处置惩罚利用法度榜样的用户界面就构建完成了,如下图所示:

图 4. 图片处置惩罚法度榜样用户界面

加入操作支持事故相应

在实际利用系统中,人机交互是必弗成少且异常紧张的一部分,若何对用户触发的事故进行有效的相应是 Flex 应该办理的重点问题之一,下面将经由过程一个详细功能的实现来先容三种常见的交互模式,鼠标事故相应、键盘事故相应和控件触发事故的相应。

图片缩放功能是本图片处置惩罚利用法度榜样的主要功能,它主要供给了三种交互模式完成图片局部放大年夜缩小的功能,包括支持鼠标阁下键单击放大年夜缩小,支持键盘快捷键放大年夜缩小以及点击 Flex 控件完成放大年夜缩小。

首先来看一下在 Flex 中实现放大年夜缩小的功能,封装在 ImageZoom.mxml 文件中,代码如下:

清单 3. Flex 中实现图片缩放功能

1 public function zoom( factor : Number, isButton : Boolean ) : void

2 {

3  if(!isAnimating ){

4   isAnimating = true;

5   if(zoomEffect.isPlaying ){

6    zoomEffect.end();

7   }

8   if(factor = -5){

9     if((isButton && zoomEffect.originX.toString() == 'NaN'

&&zoomEffect.originY.toString() == 'NaN')|| flag == true &&

isButton){

10       zoomEffect.originX = image.contentWidth/2;

11       zoomEffect.originY = image.contentHeight/2;

12     }

13     flag = false;

14     scale_temp = factor;

15     if(scaleSize[factor 5] > 1){

16      zoomEffect.zoomHeightTo = Math.max(temp   scaleSize[factor 5], minScale);

17      zoomEffect.zoomWidthTo = Math.max(temp   scaleSize[factor 5], minScale);

18  }else if(scaleSize[factor 5]

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: