`

RIA/FLASH/FLEX

    博客分类:
  • Flex
阅读更多
RIA是macromedia在2004年提出的术语。简单来说,RIA就是网络上的应用程序,它同时具有web应用的特点和 desktop应用的特点。作为web应用程序,它是跨平台的、无须额外配置的、无处不在的;作为desktop应用程序,它是实时反应的、具有丰富交互操作的。RIA的架构也很简单,即:表示层-服务器-数据库,通常表示层是浏览器或其他支持http协议的应用程序,服务器则可以是任何其他C/S或B /S的使用的企业级应用服务器,数据库自然是任意的了。

RIA的存在为广大的web用户带来了全新的体验。这些体验主要体现在界面的内容上,使得大量的界面控件和数据能够紧密联系,更可以方便的整合音频、视频等媒体元素。不同于传统的web应用,RIA采用异步传输模式和服务器通信,这是一种比较安全的、具有更强适应性的服务器运行模式,在传输发生时用户可以继续做其他操作而无须等待刷新,另一方面,由于传输是局部的,只考虑发生变化的部分,因此大大减少了网络流量。

目前比较流行的RIA坚决方案主要有Flex、Ajax、JavaFX、Silverlight、Openlaszlo。本板块主要关注基于Flex的解决方案。
以上解决方案都依赖于浏览器级相关的插件,另外一个则是给予独立Flashplayer的解决方案AIR(Adobe
Integrated Runtime),它将web应用搬到了浏览器之外,同样没有C/S笨重、部署不容易的特点,用户所做的只是下载一个air并安装即可。AIR不再本板块讨论的范围,感兴趣的朋友可以自己去www.adobe.com查看相关资料。

2.Flex

Flex最初由macromedia(后来于Adobe合并)在2004年推出,意在为提供一个企业级的RIA解决方案。简单来说Flex是一个应用框架,最终以swf的形式将应用程序嵌入到web浏览器里,再通过一些企业级的解决方案来与后台应用服务器通信。实际上,跟Ajax一样,Flex也是一个老技术新思想的应用框架。其核心是ActionsScript和XML,以及在此基础上的整套SDK。和Ajax基于网页不同的是,Flex基于窗体。

目前,Flex已经正式开源,并且能在Microsoft Windows, Linux和Apple Mac OS X平台正常工作。对于普通用户,只需拥有带FlashPlayer的web浏览器即可。对于Flex Applicaion的开发只需下载其免费的SDK即可,当然Adobe也推出了其官方开发工具FlexBuilder——一个基于Eclipse的商业开发工具——同时具有独立版和插件版(Windows版和MacOSX版具有可视化的设计工具,Linux版现在还没有)。

3.Flex与Flash的关系

首先这里想说的是,Flash并非只是一个单纯的矢量动画创作工具,而是一个凭借脚本语言ActionScript在功能和定位上不断演变的网络应用开发工具。早在Flash MX的时候就已经成为macroemdia 推广RIA战略的工具。但是毕竟Flash最初的定位是面向美工的矢量动画创作工具,并不适合传统的开发人员。于是Flex成为开发者们的首选。

Flex和Flash都以ActionScript作为其核心编程语言,并被编译成swf文件运行于Flashplayer虚拟机里。因此Flex也继承了Flash在表示层上先天性的美感、除了视觉上的舒适感外,还天生具备方便的矢量图形、动画和媒体处理接口。

虽然Flex和Flash有众多的相似点,但是不同之处仍然很多
1.尽管公用ActionScript,但是使用的库并不完全相同,更合适的说法是两者使用着两套具有极大“功能重叠”范围的库。
2.Flash偏向的是美工人员,所以更容易发挥特效处理的优势,Flex偏向开发人员,所以容易做出具有丰富交互功能的应用程序。
3.Flash只能以ActionScript脚本的形式开发(舞台被关联到一个称之为document class的类里),另外舞台元素也是可以绑定脚本的,不过从软件工程的角度讲不建议这样用,Flex还可以使用称作mxml的标记语言来描述应用的外观和行为,mxml中可以直接嵌入ActionScript脚本。
4.由于第三点而造成的两者市场定位不同,Flex是面向企业级的网络应用程序,Flash则面向诸如平面动画、广告设计等多媒体展示程序。
5.借助Flash Lite这一移动设备上的Flashplayer,Flash可以开发移动应用,Flex则不行。
6.Flash的编程模型是基于时间轴的,Flex的则是基于窗体,虽然它运行在网页里。

4.ActionScript和其他语言

ActionScript与JavaScript是同门兄弟,都源于ECMAScript规范。但是对于我们使用语言的人而言,这个是透明的。有人说熟悉了JavaScript就能很快熟悉ActionScript,这在以前没有任何疑问,但是事物总是会发展的,ActionScript先后有过两次革命性的发展,这便是ActionScript1.0,ActionScript2.0和ActionScript3.0,没接触过as的朋友请注意,这三个版本的每一个都是一门新的语言。JavaScript的语法却一直没变,还是跟ActionScript1.0类似。

ActionScript的发展经历了面向过程、基于对象、面向对象三个大的方向过程。这使得ActionScript越来越受到Java、C#等开发者的欢迎,ActionScript3.0号称可以与Java等王者语言媲美,其实说到底,都是面向对象的语言,原有的思维方式和模式都可以直接用到ActionScript3上来。当然如果不是在AIR环境里,Flex无法直接访问本地系统、文件系统和数据库,这个是它的弱点之一。

不过,ActionScript作为脚本语言,相对于java这样的系统语言还是有所不同的,因为这是ActionScript卖点,“动态语言 ”,即在运行时能够改变对象的结构,这一点于JavaScript是一样的,因此JavaScript思维方式也可以作用于ActionScript。关于动态面向对象语言的优势,有兴趣的朋友可以看看我的《抛砖引玉:ActionScript2扩展图形接口》 一文。

5.后台通信技术

作为企业级解决方案,Flex提供了众多与后台交互的方式:
1.Flash Remoting, ActionScript专用通信接口,使用称之为AMF(Action Message Format)的通信协议,速度比HTTP协议要快。支持多种数据类型,并有针对Java、.Net、ColdFusion、PHP等语言的服务器端 Remoting。
2.FDS(Flex Data Service),一个java企业级部署的war,内置于java通信的库,用户的java web应用可以方便的与其整合。
3.HttpService、WebService、Socket,这三种常见的Web应用接口使得Flex能与任何支持它们的后台方便的通信。

摘自:http://www.hzclw.cn/2010/751.html
分享到:
评论

相关推荐

    Flex/flash 无需服务器的P2P源码

    标题 "Flex/flash 无需服务器的P2P源码" 描述了这是一个使用Flex和Flash技术实现的点对点(P2P)通信系统,它能够实现NAT(网络地址转换)穿越,使得两个处于不同NAT后的设备也能直接通信,而无需通过中央服务器作为...

    flex/flash 3d基础1

    《Flex/Flash 3D基础解析——以Figure为例》 在数字媒体和互联网技术日新月异的今天,3D图形技术已经广泛应用于各种在线应用和游戏开发中。Adobe Flex和Flash作为强大的富互联网应用程序(RIA)开发工具,自然也...

    Flex/Flash实现的地图编辑器源码

    《Flex/Flash实现的地图编辑器源码解析与应用》 在Web开发领域,尤其是在游戏制作中,地图编辑器是至关重要的工具。它允许开发者创建、修改和管理游戏世界的虚拟环境,为玩家提供丰富的游戏体验。本文将深入探讨一...

    flex / flash bulider 相关资料

    Flex和Flash Builder是Adobe开发的两个紧密相关的工具,主要用于创建富互联网应用程序(RIA)和桌面应用。本篇文章将深入探讨这两个技术平台的核心概念、应用场景以及它们如何协同工作。 标题中的"flex"指的是Flex ...

    flex/flash自定义组件(搜索栏)

    标题"flex/flash自定义组件(搜索栏)"暗示我们将学习如何利用Adobe Flex或Flash Professional来设计和构建一个定制的搜索输入框组件。Flex是一种基于MXML和ActionScript的框架,用于构建富互联网应用程序,而Flash...

    flash/flex画曲线,绘图板

    - Flex是Adobe提供的开源框架,主要用于构建RIA(Rich Internet Applications)即富互联网应用。它基于MXML和ActionScript 3.0,提供了一种声明式编程方式和强大的组件库。 - MXML是一种XML标记语言,用来定义用户...

    ADOBE AIR完整入門與開發實錄-使用Flex/Flash/Ajax開發AIR應用

    AIR允許利用現有的Web開發技能(包括Flash、Flex、HTML、JavaScript、Ajax)優勢,建立和配置跨平台(或跨作業系統)的桌面RIA(Rich Internet Applications)應用。透過詳細的實例講解,介紹AIR 的特性和開發技巧,讀者會...

    Flex 3 RIA开发详解与精深实践

    书中首先会介绍Flex的基础知识,包括安装环境、开发工具Flash Builder的使用、Flex项目的基本结构,以及ActionScript 3.0和MXML语言的基本语法。ActionScript 3.0是基于ECMAScript的一个面向对象的编程语言,它提供...

    flex与flash cs 交互

    Flex和Flash CS交互是开发富互联网应用程序(RIA)时常用的一种技术组合,它允许开发者利用Flex的强大学习和开发框架,结合Flash CS的动画和视觉设计能力,创建出交互丰富的Web应用。以下是对这个主题的详细解释: ...

    Flex与Flash相互调用

    Flex基于ActionScript 3.0,主要用于构建富互联网应用程序(RIA),而Flash则是著名的动画和多媒体创作工具,其内容可以嵌入到网页中进行播放。尽管两者在功能上有所重叠,但它们各自具有独特的优点,且可以相互配合...

    [Flash/Flex] 使用css定义文本样式

    在IT行业中,Flash和Flex是曾经非常流行的富互联网应用程序(RIA)开发框架,它们主要用于创建交互式的网页内容和应用程序。本文将重点讲解如何在Flash或Flex项目中利用CSS(层叠样式表)来定义文本样式,提升用户...

    [转] [Flash/Flex] Flex框架下的RIA开发现场--第3回 Adobe AIR 2的15项新功能

    Flex框架是Adobe开发的一种用于构建富互联网应用(RIA)的开源开发工具,它基于ActionScript 3编程语言和Flex SDK。在RIA开发领域,Flex以其强大的组件库、数据绑定和MXML标记语言著称,使得开发者能够创建具有交互...

    FLEX安装方法 集成到eclipse中

    FLEX 安装方法 集成到 eclipse 中 ...* 汉化 FLEX 尤其是 FLEX/AIR 方面的中文资料 * 原创的关于 FLEX 的博客:http://liguoliang.com/ * Adobe 公司 FLEX 主页:http://www.adobe.com/cn/products/flex/

    Flex_3_RIA开发详解与精深实践.pdf

    Flex是Adobe公司推出的一种用于构建富互联网应用(RIA)的开源框架,它基于ActionScript编程语言和Flash Player或Adobe AIR运行环境,能够创建交互性强、图形丰富的Web应用程序。 在Flex 3中,开发者可以利用MXML和...

    GIFPlayer for flex/air

    《GIFPlayer for Flex/Air:开启动态图形的新篇章》 在数字媒体和网页设计领域,GIF(Graphics Interchange Format)格式因其小巧、支持动画的特性,一直占据着一席之地。尤其在Flex和Air平台上,对于动态内容的...

    Flex_4.0_RIA开发详解

    总的来说,Flex 4.0 是一个强大的RIA开发平台,结合Flash Builder 4提供的高效开发工具,使得开发者能够轻松创建具有现代Web体验的复杂应用程序。无论是对于个人开发者还是企业团队,Flex 4.0 都是构建高质量、富...

    ArcGIS_RIA开发实践【Flex篇】

    2005年,Adobe公司收购了Macromedia,随即推出了带有Adobe商标的Flex/Flash产品,这一举动反映了Adobe对RIA市场的高度重视以及对Flex/Flash技术潜力的认可。时至今日,Adobe Flex/Flash已成为RIA领域中最成熟、最...

Global site tag (gtag.js) - Google Analytics