<Price>80.21</Price> <Value>1</Value> </security> ... </portfolio>
当用户点击一行具体股票(例如,Figure 2显示的ADBE),在一个带表头的数据表格中更新该股票。新闻来自http://finance.yahoo.com/rss/headline。有一列存放关联新闻的URLs,当用户点击该链接,打开一个新的Web浏览器界面并显示该新闻。
顶部界面应包含一个toggle按钮Show Grid/Show Chart。当Show Grid选项选中,用户将看到类似Figure 2的画面;当Show Chart选项选中,之前的数据表格被一个饼状图代替(见Figure 3),该图功能不变(点击饼状图的某块会弹出新闻标题)。(股票)市场数据大概每秒钟刷新一次。
受文章大小限制,我们在服务器端仅编写一个简单的POJO对象,它能产生一个随机数并将其推送到Flash客户端。不过,在后续文章我们会添加通过JMS从外部Java应用程序掘取数据的功能。 对于一个短小的杂志文章,这听起来这是一个野心勃勃的任务,不是吗?本文不是Flex MXML或ActionScript的指南,但作为一个Java开发者,你应该能明白如何以尽可能少的解释把代码组织在一起。在部署运行本示例后你能更加正式地学习Flex。那么,卷起袖子,让我们开始吧…
安装Flex Builder 和 Flex Data Services 本文写作时,Flex 2 仍然处于beta版,正式产品发布预计在夏季(译注:作者指的是2006年夏季,目前你可以从Adobe免费得到试用版)。问题出现了,“它是免费的吗?”。答案是,看情况。它是一顿“免费午餐”(更像是厨师免费赠送的饭前开胃品),但这只会增进你的食欲,随后你的手会慢慢伸向钱包。Flex Data Services (FDS)提供了Flex与企业级数据和消息应用(已投资部署)的无缝集成。对于一个支持客户端认证机制、面向消息的等特性的高性能企业级应用,你可能会购买FDS协议。对于小型应用,你可以通过HTTPService、Web Services、使用标准或开源技术的Remote Java Invocation(与已有系统)集成。
免费部分包括Flex命令行编译器和包含所有富组件库的Flex Framawork。这意味着你可以使用任意一种简单的字编辑器来编写Flex代码,编译成SWF文件,在免费Flash播放器9中运行。可是到目前为止,Adobe宣称基于Eclipse的Flex Builder IDE使得开发更有效率,但它不是免费的。Flex 图形组件提供客户端丰富的交互能力,同样也不是免费的。 Flex Builder IDE 有两种形式:标准版和Eclipse插件版。在安装过程你将会选择其中一种方式。让我们首先从www.eclipse.org/downloads/下载 (除非你已经准备妥当)安装Eclipse 3.1,然后安装插件版的Flex Builder。在安装过程,你必须指定Eclipse所在目录(拥有plug-ins子目录的那个)。安装完毕,启动Eclipse,选中菜单 Window | Open perspective | Other 并添加Flex Development perspective(Flex Debugging perspective将会自动添加)。Flex Builder带有大量帮助,插件版它隐藏于菜单Help | Help Contents | Adobe Help。
仅运行客户端Flex 应用,我们需安装另一个程序:Flash播放器9。可是,对于我们的stock portfolio应用程序,我们还需安装部署FDS(译注:详见Flex相关帮助)。FDS实际上一个部署在兼容J2EE容器的Web应用程序。既然Flex是一个Web应用程序,你可以把它部署到你选择的应用服务器中。首先,我们从http://tomcat.apache.org/下载安装Apache Tomcat 5.5。默认情况下,在Windows机器上Tomcat 安装在"C:\Program Files\Apache Software Foundation\Tomcat 5.5"路径下,运行在8080端口。安装完成后,Apache Tomcat Server将会作为一个Windows服务启动。现在,下载并执行FDS安装程序(默认安装目录是C:\fds2),选中Flex Data Services J2EE应用程序选项。安装结束后,解压缩flex.war并拷贝至Tomcat的webapps\ROOT下并重新启动Tomcat服务。在你的Web浏览器中输入URL http://127.0.0.1:8080/ 后你会看到FDS欢迎画面。至此,Flex Data Services 已经部署到Tomcat下。
用Flex开发Stock Portfolio 应用程序 什么在运行?运行在哪里? 首先,让我们看一下哪些组件将会在客户端运行,哪些组件属于Web服务器。Listing 3-6展示的代码将编译成portfolio.swf ,它运行在客户端,不管是独立地运行在Flash 播放器8.5中,还是运行在已安装Flash插件的Web浏览器中的portfolio.html (由Flex Builder自动生成)。Tomcat是我们的服务器,它将作为已编译的Java类(Listing 7、8)文件的宿主。我们还需要在服务器端处理一些附加的配置文件(见Listing 9、10)以指定从哪查找这些Java类文件及接收对外部Yahoo!Service访问的返回结果。同时,Flex提供了不同的client/server 通讯方式(RemoteObjects, HTTPService, WebService),本文中我们的客户端将通过<mx:RemoteObject>使用RPC组件来查找和匹配已配置的位于服务器的Java类文件(正如本文末尾描述的一样)。 |