`
hance1000000
  • 浏览: 57667 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Flex的几个值得借鉴的项目 (zhuang)

阅读更多

1、Merapi

经过近一年的开发、测试、接受反馈,以及重构,备受瞩目的Merapi项目已经作为开源项目正式发布;Merapi这个名称来自于Java岛中的一个火山,同时它被设计为一座沟通Java应用和AIR应用的软件桥梁,通过这个桥梁可以将用户的系统资源以及第三方硬件暴露给AIR应用,从而使AIR应用做到以前做不到的事情。

Merapi的使用方法很简单,在AIR和Java应用间的通讯是通过一个存在于AS和java中的类merapi.Bridge来完成的,两者最简单的交互方式就是发送和接受消息,详细的使用方法见这里;使用SVN工具从该项目的googlecode上下载到源码,仔细研究Merapi的核心类Bridge,就可以发现,两者的通讯是通过Socket来进行的,Merapi的服务端即Java端merapi-core.jar是作为一个SocketServer来运行,默认的端口12345,服务地址默认是localhost,这个配置可以通过./config/merapi-native-config.xml来修改,Merapi的客户端即Flex端是作为一个Socket客户端来运行的,默认连接也是localhost,端口12345,当然如果服务端修改了,客户端也可以通过config/merapi-client-config.xml来修改,两端间传递的消息是AMF3协议的对象(需要类映射),从而可以进行高效的数据传输。

关于Merapi的使用实例可以在这里进行下载,比如可以利用Java的截屏功能和图形文件生成功能,来通知AIR获取生成的图形文件,从而实现AIR进行截屏的功能。Merapi项目为AIR的应用领域开辟了广阔的而且前所未有的天地,从而进一步接入包括操作系统相关的硬件资源,比如WII、GPS、USB、相机、扫描仪,甚至通过AIR来控制机器人、家用电器等等。

编者点评:Merapi是在AIR平台之外的另一个奇迹,它做到了AIR想做但是没有做到的事情,从目前的这种工作机制来看,它能满足复杂系统实时、高效的数据传输,尤其适合传统Java桌面应用迁移到RIA的场景,只要将服务以消息暴露出来,就可以在AIR中充分展示RIA的魅力了。

2、OpenScales

从事webGIS开发的Flash/Flex程序员一定不要错过这个消息,一个新的开源GIS项目OpenScales成立了。

用官方的话来说:该项目旨在提供一个用户友好的、响应迅速的工具来操作空间数据,例如地理栅格视图、向量数据编辑,管理缩放和定位之间的平滑转换等等,作为一个用AS3写的开源工具,Openscales设计目的是为了易于在你的Flex/AIR应用中使用,它虽然小但是是GIS的有力核心。

简而言之,OpenScales就是个各种地图数据的引擎和呈现工具,这些地图数据包括 WMS(Web Map Service), WMS-C, and WFS(Web Feature Service Interface Standard)协议的数据,以及其他标记内容;Openscales是融合了多个开源AS3/JS 的GIS项目,而且以flexlayers项目作为代码基础,从其路线图来看,要做成一个超级适应性的GIS引擎。 相比Modestmap来说,该项目的特色在于面向与专业的GIS开发者,和强大的适应性和可配置性,每一种地图数据和标记都可以作为单独的layer来呈现,而不在像modestmap那样只有固定的地图数据和结构,从而只适用于比较需求简单的情况,而且适合GIS基础不深厚的开发者。 从该项目的UML地图来看,可以看出它的大概结构,目前虽然他的

3、ModestMaps

ModestMaps是一套基于As3.0ActionScript2.0ActionScript3.0)脚本与Python脚本开发出来的一套类库,是遵循BSD许可协议(参见Unix知识)在Falsh里进行地图显示与用户交互的。

目的是为初学者设计者与开发人员提供一个最轻量级的,可扩展的,可定制的和免费的地图显示类库,这个类库能帮助开发人员在他们自己的项目里能够与地图进行交互。ModestMaps提供一个核心健壮的带有很多hooks与附加functionality函数的要素开发包。

例子请参见:http://www.modestmaps.com/example.htmlNASA Blue Marble satellite mages,

http://www.modestmaps.com/tutorial-actransit/actransit.htmlAC Transit Oakland bus lines.

 

  

这里有一个讨论组(discussion grouphttp://getsatisfaction.com/modestmaps)一个跑车爱好者(采集数据) 一个通讯专门为版本的更新与补丁提供帮助 这些使得地图瓦片提供者继续为modestmaps效力。当然了 如果你想发布你自己的地图瓦片服务的话 你也可以按照如下说明 第一 地图坐标转换计算 第二 制作瓦片数据 如果你感兴趣利用modestmaps作为一个地图服务端工具来使用的话 那么你可以参照wscompose(利用Python脚本写的一个HTTP接口)进行开发(http://www.modestmaps.com/examples-python-ws/)。

自从200812月以来 modest maps不早包含了对Google maps的支持了 如果你想用googlemaps的话 你可以使用Google's Maps API for Flash or the Google Static Maps API 来进行开发,这些与flash,Python都比较类似。

下面我们来看看ModestMaps到底能做什么 不能做什么

第一:ModestMaps能做到:

       1.显示基于地图瓦片的地图 比方说来自的OpenstreetMap,来自NASA Blue Marble,来自Yahho!,来自Microsoft或者其他地方的地图服务瓦片。

2.支持对地图瓦片进行任意地理空间投影设置

3.支持漫游与缩放

4.支持跟踪地理兴趣点(地理标识)的位置

5.支持ActionScript 2.0 代码与flashlite协同工作(这个不是很清楚)

第二 ModestMaps不能做到:

1.不提供默认的地理标识的显示

2.不提供默认的按钮进行缩放与平移地图操作

3.不提供其他的api 使得能够进行商业区搜索与数据库查找功能

4、增强的flash组件-UMaphttp://www.afcomponents.com/components/umap_as3/

 

5、基于地理数据的BI工具spatialKey新版发布

 

国际知名RIA咨询公司UniversalMind近日发布了其主打产品SpatialKey2009年5月版,在该版本中加入了一些新的特色以改进可用性、增强了过滤功能、改善了数据导入功能、增加了报表界面截图的共享功能等等。

SpatialKey是下一代信息可视化、地图、分析和报表系统,它设计用来帮助社 会机构快速评估出基于地理的信息,这些信息对于实现组织的目标、作出流程处理的决策以及报表需求都至关重要。简单来将就是它提供了一个将地理相关的业务数 据进行可视化的工具,这个工具可以为公众做很多智能化、人性化的工作,从而解决业务上的分析手段问题。

这个工具的大概工作流程如下:

  1. 首先准备一些数据,这些数据可以是excel数据,也可以是数据库,但是最终都要导成以回车符和逗号分隔字段的.csv文件;
  2. 然后按照Spatialkey的向导将其导入,并设定相关字段,比如字段类型、指定地理字段等等;
  3. 选择生成报告的模版,有三种形式供选择:Dashboard Creator、Simple Timleline、Full Screen Map,分别代表小器件生成器、简单地图及时间线、全屏地图;
  4. 进入模版使用已经上传的数据进行定义要展示的方式,并保存下来;

当然要使用这些功能首先要注册的,目前用户注册是免费的,免费用户最多可以上传10个.csv文件,每个文件最多允许10000条记录,最大25列或者25 个字段。在Spatialkey网站主页顶部就是注册入口,观看它的视频可以对该产品的特点有一个大的了解,如果要想亲自动手体验一下,可以看看它的教程 和HowTo来了解一下如何上手。

笔者点评:SpatialKey是目前业界GIS和BI产品结合 的罕见而且较为成功的案例,它用简单的方式解决了BI领域中的大难题,对数据的预处理问题,并将数据通过多种可视化手段呈现在页面上,这从另一角度又体现 了RIA的优势或者说是Flash的优势;该产品处处闪烁着技术上的亮点:大数据量的处理(最多支持25万条记录)、可配置可保存的dashboard、 dashboard面板之间的互动、多种图形组件例如热量图网格图、深度钻取柱图、历史数据回放等等都无一不显示出该公司的巨大技术实力(这公司可以是有 不少技术牛人呢),更难能可贵的是,这个新颖的BI系统还是由一些不太懂BI的人做的。

如果要说建议或者不足的话,我认为还是有改 进的地方,进入创建Dashboard的场景后,竟然找不到保存的图标,点了半天才发现它被归类到Option菜单下,这个菜单名称是不是改改成Flie 或者Report呢?此外,对.csv文件的格式化和验证是不是有个模版或者校验工具来检查一下是不是更好,更能保证数据的正常使用呢?此外在 Chrome(Flashplayer9)下上传文件失败报异常,在IE7/FP10正常。

6、介绍针对企业级Flex开发的开源项目FlexibleShare和AnvilFlex 

近日,开源的企业内容管理(ECM)系统供应商Alfresco发布了FlexibleShare+AIR Build1 版:一个基于Flex的开源的dashboard/portal容器,用来做文档管理、协作、商业智能/图形展示/报表;对于从事门户开发、内容管理系统开发,而又想迁移到Flex平台的开发者来说,这也许是个好消息,Alfresco为大家做了基础工作,并已经有了完整框架可以使用,这又是对Flex向薄弱领域发展的积极探索。

FlexibleShare从字面意思就能看出,这个是一个可配置、可插拔的模块系统的简称,它是Alfresco的另一个Flex表现层应用FlexSpaces的门户形式,及通过模块化的整合方式来使用FlexSpaces的各种系统;FlexibleShare的技术架构依赖两个关键部分,一个是LCDS,一个是Anvil项目,这是一个开源的Flex门户框架,2008年年底创建,Anvil的设计目的是为了使开发企业级Flex项目更加容易,并提供了一个门户环境来运行Flex应用。现在Anvil已经成为如何构建企业应用的典型案例,并正在努力使它更简单、更方便的创建Flex应用的定制环境。

Anvil项目的源码可以在SourceForge上下载到,目前该项目处于起步阶段,版本是0.5.1。下载了这个30兆的.zip包,解压后就能看到里面的例子和源码了,而且有一个getting-started.txt文档来供上手;这个编译环境需要几个环境变量设置,做过Java开发的都比较熟悉,FLEX_HOME环境变量指的是FlexSDK的路径,根据指南,访问 http://localhost:8080/anvilPortal/AnvilPortal.swf(我的环境是Tomcat5.5,使用FF3访问,IE7不行)就可以看到这个小例子了。根据例子来看Anvil采用了FlexMDI框架,并将其改造,将其中的某个系统作为模块动态加载进来成为一个MDI窗口。

编者点评:Anvil的价值有两个:一个是将应用和模块的编译通过自动化的方式进行构建,一个是提供了应用程序管理Module的方式,这是目前开发大型Flex应用所必须要解决的问题,我想这个框架对于企业级开发Flex项目来说,是很有参考价值的;跟这个类似的项目还有flex-shell,是RIAForge上的一个开源项目,它同样解决了类似问题,而且对于不同用户权限的管理提供了丰富的控制;最后还要说明的是,基于Flex的CMS系统究竟价值何在,是否是最好的选择,还需进一步探讨,但是至少从技术上讲可以做到,至于其他方面,比如性能、体验等问题,只能亲眼看到才能做出评价了。

 

分享到:
评论

相关推荐

    AN ZHUANG DAYIN JI

    ### AN ZHUANG DAYIN JI - 鬼影系统安装打印机解决方案 #### 知识点一:Ghost操作系统概述 - **定义与特点**:Ghost(General Hardware-Oriented System Transfer)是一种常用的系统备份和恢复工具,常用于快速...

    an-jian-zhuang-tai-ji.zip_JIAN

    总的来说,“an-jian-zhuang-tai-ji.zip_JIAN”资源提供的按键状态机函数代码对于任何需要处理按键输入的项目都是一个有价值的参考。通过理解并应用这种状态机设计,开发者可以有效地避免因按键抖动而产生的问题,...

    zhuang-hao-ming#haoming-article#深圳市房屋建筑数据获取1

    介绍:天地图.深圳平台,发布了深圳市的多套基础数据。数据的精度和质量都非常高。平台包含了深圳市超过60万的建筑物数据,数据的质量非常高,不仅包含了建筑的foot

    zhuang_jdk_jre_jse7.7z

    本文将围绕"zhuang_jdk_jre_jse7.7z"这个压缩包文件,详细解析其中包含的Java开发工具包(JDK)与Java运行环境(JRE)的7u80版本,以及它们在Java生态系统中的重要角色。 1. JDK 7u80:Java Development Kit JDK...

    IAI an zhuang ruan jian

    IAI安装软件,好像是日文版。安装时可以选择语言! 内有日文,英文和中文!

    assignment-2-michelle-zhuang:由GitHub Classroom创建的Assignment-2-michelle-zhuang

    【标题】"assignment-2-michelle-zhuang" 是一个在GitHub Classroom平台上创建的作业项目,由学生或用户Michelle Zhuang完成。这个项目可能是针对编程课程中的第二部分任务,通常涉及特定的技术主题和编程练习。 ...

    SGM358L ROLLER HINGE LWR ce liang gong zhuang 2024.04.30 _1.stp

    SGM358L ROLLER HINGE LWR ce liang gong zhuang 2024.04.30 _1.stp

    如何成为Layout高手

    - **团队合作精神**:具备良好的团队合作意识,能够在复杂的项目中与其他同事顺利合作。 - **领导能力**:具备一定的领导能力,能够带领团队完成复杂的设计任务。 - **培训新人**:具备一定的教学能力,能够有效地...

    图像纹理分析

    比较新的图像多特征提取方法研究,博士论文。

    4下午A厅第四个 9.7物联网技术大会模板 - 物联网-跨平台-junqian zhuang.pdf

    物联网(IoT,Internet of Things)技术是当前信息技术领域的一个重要分支,它涵盖了硬件设备、传感器、网络通信、数据处理等多个方面。在9.7物联网技术大会中,跨平台成为了讨论的重点,这主要涉及到如何在不同的...

    九宫格解锁的方式拨号

    下有三个继承Activity,FragmentActivity和ListActivity的自定义Activity,项目中所有Activity都将继承这三个中的一个,里面主要是关于Activity销毁时垃圾回收的。 2. com.zhuang.quickcall.calllog/contacts主要是...

    zhuang-hao-ming#haoming-article#gdb调试初探1

    title: gdb调试初探用GDB调试程序(一)陈皓在这篇文章中概略地介绍了gdb的使用方法,总的来说有如下几步使用gcc的-g参数编译文件,是目标文件中带有

    node js安装包

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者在服务器端使用 JavaScript 编程,打破了 JavaScript 原本只能在浏览器端运行的限制。Node.js 使用了一个事件驱动、非阻塞 I/O 模型,使其轻...

    基于umijs框架的前端项目

    在这个名为"itcast-haoke-manage-web"的前端项目中,umijs的强大功能得到了充分展现。本文将深入探讨umijs框架的核心特性及其在实际项目中的应用。 一、umijs框架简介 umijs,源自于中文“隅”的拼音,寓意着它在...

    json饼状图数据图表代码.zip

    在本项目中,jQuery用于简化DOM操作和事件绑定,使代码更简洁、易读。 2. **百度图表API (Echarts)**:百度Echarts是一个用纯JavaScript编写的开源可视化库,支持丰富的图表类型,包括折线图、柱状图、饼图等。它...

    《人文英语》网上形考试题及答案借鉴.pdf

    - "introduce" 在句子 "Bai Mei doesn't know Liu Hui, so Zhuang Hua introduces her to Liu Hui." 中,表示介绍某人给另一个人认识。 3. **形容词与冠词**: - "sick" 在 "When you feel sick, you should go ...

    HJ1A-HSI-9-74-A1-20170501-L20003117474.tar.gz

    HSI(高光谱成像仪)是一种高级遥感技术,能够捕捉到连续的光谱波段,形成几百甚至上千个窄带图像,提供比普通多光谱图像更为丰富的地物光谱特征。这使得HSI在环境监测、资源调查、灾害评估、农业监测、城市规划等多...

    redis安装包(windows版)及客户端

    6. 集群模式:Redis 3.0引入了集群功能,可以扩展到上千个节点,每个节点都可以存储数据。 二、Redis安装 1. 解压Redis-x64-3.2.100.zip,里面包含了Redis服务端的可执行文件redis-server.exe。 2. 修改配置文件...

    leopard硬盘安装助手

    这个工具简化了用户在硬盘上安装Leopard的过程,使得非技术人员也能轻松进行系统安装。下面将详细介绍这款助手的功能、使用方法及相关知识点。 1. **Mac OS X Leopard**: Mac OS X Leopard是苹果公司推出的第六代...

Global site tag (gtag.js) - Google Analytics