基于Flex的WebGIS开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 Flex开发实践

Adobe Flex是一个免费的产品,可以使用任何一款编辑器开发。在诸多编辑器中,Flex Builder是一个不可或缺的、功能强大的编辑器,是基于Eclipse IDE开源项目构建的,继承了很多优秀的功能。Flex Builder有两个版本,即独立的开发工具版本和集成于Eclipse的插件版本,本书统一采用独立的开发工具版本。下面将基于Flex Builder 3.0,通过一个简单的示例程序介绍Flex的开发。

1.3.1 安装Flex开发环境

Flex Builder是一个实用的集成开发环境,通过这个环境,可以高效地完成Flex程序的编写。Flex的开发环境需要安装配置Flex Builder(统一使用Flex Builder 3.0)与Flex SDK,以及Flash Player插件。Flex Builder与Flash Player可运行于任何操作系统中,Flash Player插件根据浏览器的类型,提供相应的安装程序。

● Adobe Flex Builder

Flex Builder是一个Flex的集成开发环境,通过Flex Builder可以对程序进行所见即所得的界面设计,并支持MXML和ActionScript的智能编写,可以快速方便地构建Flex应用程序,在很大程度上提高Flex的开发效率。使用Flex Builder,还可以设置代码的断点,调试程序。

● Adobe FlexSDK

Flex SDK是Flex产品集中最基础的、也是必需的组件,使用其他组件必须在SDK的基础上,单独通过SDK就可以完成常用的程序设计。

1.安装Flex Builder 3.0

Flex Builder 3.0集成开发环境的安装程序可在Adobe的官方网站上下载,或者使用本书网络光盘中的安装程序。安装Flex Builder 3.0时,安装程序会自动安装Flex SDK 3.0。

Adobe公司Flex Builder官方下载地址为:

http://download.macromedia.com/pub/flex/flex_builder/FB3_win.exe

2.安装Flash Palyer插件

Flash Player插件有两种:一种是单纯的Flex程序运行播放器,另一种是针对Flex程序开发中调式运行的播放器。进行Flex开发,一般需要安装Flash Player的debug程序。

(1)安装Flash Palyer插件。Flash Player针对不同的浏览器内核提供相应的安装程序,在安装时根据机器上的浏览器选择安装。Adobe官方下载地址为get.adobe.com/flashplayer/

● IE内核的Flash播放插件,如Adobe Flash Player Active 10.0.22.87.exe;

● 非IE内核的Flash播放插件,如Adobe Flash Player Plugin 10.0.22.87.exe。

(2)安装Flash Player的debug程序。对于Flex的开发,提供Flash Player的debug程序,用于调试AS脚本程序,方便程序的调试运行。针对不同的浏览器内核,同样提供相应的debug安装程序。可到Adobe官方网站上下载,或者使用本书网络光盘中的安装程序。

● IE内核的调试程序,如flashplayer_10_ax_debug.exe;

● 非IE内核的调试程序,如flashplayer10_1_rc2_debug_plugin_041910.exe。

3.Flex Builder开发界面

Flex Builder对MXML界面设计的支持是相当强大的,支持“所见即所得”的开发方式。MXML本身就是由标签语言配置而成的,因此对于MXML的操作方式更适合于配置和设计。同时,在MXML中我们会常常进行调用ActionScript脚本、调用自定义组件、做数据绑定等操作,Flex Builder对这些方面都提供了完善的支持。

Flex Builder对于MXML的开发提供了两种模式。在Flex Builder的编辑区上方可以看到Source和Design按钮。Source为代码编辑模式,我们可以手工书写MXML代码,完成ActionScript的编写;Design为UI设计模式。

1)Source编辑模式

在Flex Builder 3.0中打开一个MXML文件,切换到Source界面,各功能区域的作用如图1.2所示。

● 菜单栏:IDE支持的所有开发功能菜单;

● 工具栏:菜单栏中某些常用条目的快捷方式;

● 导航器:可以按照不同模式浏览当前项目的文件结构;

● 编辑区:代码编写区域;

● 定制视图:可以显示控制台、搜索窗口、调试窗口等信息;

● 大纲:显示当前代码的组织结构。

图1.2 Flex Builder的Source编辑模式

2)Design设计模式

当切换到UI设计状态后,即切换到UI设计界面,各功能区域的作用如图1.3所示。

● UI设计器:通过所见即所得的方式设计图形界面;

● 组件工具栏:可以从中选取各种Flex可视化组件,放到UI设计器中;

● 属性编辑区:编辑选定Flex可视化组件的各种属性。

图1.3 Flex Builder的Design设计模式

4.Flex的文件类型

在Flex中,可以创建各种文件格式,包括基本的MXML文件、单独的ActionScript文件、类以及接口等,不同的文件发挥不同的功能作用。创建完某一个项目后,右击其源代码目录,选择并展开New命令项,将会弹出右键源代码菜单,如图1.4所示。

图1.4 Flex文件类型

● MXML Component——项目组件化

在右键菜单中,可以选择并创建一个MXML Component组件文件,可以把每个组件独立出来。这样做可以使项目源代码组件化,把不同功能的组件独立出来管理。

● MXML Module——组件模块化

在右键源代码菜单中,可以选择并创建一个MXML Module模块文件。项目模块化实际上就是把相同功能的代码组织到一个模块中,通过多个模块的累积,从而形成一个完整的应用系统。

● 项目模式化

在右键源代码菜单中,可以选择并创建一个ActionScript文件、类或者接口。通常这类文件会在设计模式中被应用。设计模式是管理和组织大量代码有效的方法之一,是面向对象思想最直接的体现,而ActionScript语言本身就是一个面向对象的语言。

1.3.2 创建一个Flex应用

Project(项目)是Flex Builder中的基础,一个Project是一组相互关联的文件。所以,创建一个Flex应用程序,就需要创建一个项目。一个项目是由多个Flex的文件组织成的集合。下面来创建第一个Flex项目,具体步骤如下所述。

(1)在菜单栏单击左键或者在Flex导航器的空白处单击右键,选择“File(文件)”→“New(新建)”→“Flex Project(Flex项目)”命令,弹出“New Flex Project(新建Flex项目)”对话框,如图1.5和图1.6所示。

图1.5 新建Flex项目(方式一)

图1.6 新建Flex项目(方式二)

(2)在“Project name”文本框中输入项目名称——First Project,选择项目存放位置,在“Application type”选框中点选“Web application(runs in Adobe Flash Palyer)”单选项,在“Application server type”下拉列表中选择“None”选项,如图1.7所示。单击“Next”按钮,弹出输出配置对话框。

图1.7 填写项目名称

(3)在输出配置对话框中的“Qutput folder”处填写项目编译后文件的存放目录名称,默认使用“bin-debug”,单击“Next”按钮,进入下一步设置,如图1.8所示。

图1.8 设置编译文件存放目录

(4)在“Main application file(主应用程序文件)”文本框中输入默认项目启动的文件名(将在项目中自动创建一个该名称的主应用程序文件),其他项使用默认值,然后单击“Finish(完成)”按钮(见图1.9),完成项目的创建(见图1.10),自动打开主应用程序文件。

图1.9 设置新项目源文件目录与主程序

图1.10 完成项目创建

(5)在编辑工作区中单击“Design”按钮,进入设计模式,如图1.11所示。

图1.11 进入设计模式

(6)在左下角的组件工具箱的列表中,选择“Components”窗口下的“Label”控件,将该标签控件拖动到设计模式工作区中,如图1.12所示。

图1.12 加载Label控件

(7)在设计窗口中选中“Label”控件,然后在右下角的Flex Properties(属性工作区)里设置“Label”控件的属性。例如,在“Common”下设置“Text(文本)”为“Hello World!”,在“Style”下设置字体为“Courier New”,字体大小为“28”,加粗,颜色设置为蓝色,如图1.13所示。

图1.13 设置控件属性值

(8)在编辑工作区中单击“Source”按钮,切换到代码编辑模式,生成如下MXML源代码。

程序代码1.1 第一个简单的Flex应用源代码

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"layout=
                        "absolute">
    <!—添加一个Label控件 -->
    <mx:Label x="128" y="123" text="Hello World!" fontFamily="Courier
        New" color="#0909B4"
        fontSize="28" fontWeight="bold" textAlign="left" />
</mx:Application>

1.3.3 编译运行

Flex SDK中包含两个编译器:mxmlc和compc。mxmlc编译器可以把MXML和ActionScript代码编译为SWF文件,compc编译器可以把组件和库编译为SWC文件。Flex Builder 3.0中集成了Flex SDK,通过Flex SDK把Flex程序代码编译成SWF文件,并在浏览器中运行。

在1.3.2节创建了一个简单的Flex应用程序,编译与运行程序的步骤如下所述。

(1)如果Flex项目中有多个Application的MXML文件,想要设置其中一个文件为程序默认初始页,可以在左上角的导航窗口中选中该文件,单击鼠标右键,选择“Set as Default Application”(设置为默认应用程序)命令,效果如图1.14所示。

图1.14 设置默认应用程序

(2)如要运行1.3.2节创建的Flex程序,选中要编译运行的main文件,在菜单中选择“Run”→“Run main”命令,Flex Builder开始编译运行程序(见图1.15),运行后的效果如图1.16所示。

图1.15 编译运行程序

图1.16 程序运行结果

如果Flex程序中有ActionScript代码,需要在编译运行时进行调试,这时需要启用Flash Player的debug程序。例如,在main.mxml文件中添加初始化的一个脚本,然后进行调试。添加ActionScript脚本后的源代码如下。

程序代码1.2 添加一个ActionScript脚本源代码

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout=
                            "absolute" creationComplete="init();">
    <!—添加一个Label控件 -->
    <mx:Label x="128" y="123" text="Hello World!" fontFamily="Courier New"
                                    color="#0909B4"
        fontSize="28" fontWeight="bold" textAlign="left" />
    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            public function init():void
            {
                //弹出一个系统对话框
                Alert.show("这是创建的第一个Flex程序");
            }
        ]]>
    </mx:Script>
</mx:Application>

在Flex Builder中调试程序的具体方法如下所述。

在Flex程序的ActionScript代码段相应位置设置断点,方法是:在代码编辑模式下,直接在要设置断点的代码前面双击鼠标,或者选中代码后用快捷键设置,例如在main文件的ActionScript代码处设置断点,如图1.17所示。

图1.17 设置断点

(3)打开调试界面,即在右上角选择“Flex Debugging”(见图1.18),就进入了debug环境。选中要调试运行的主程序文件,如示例中main文件,在菜单中选择“Run”→“Debug main”命令,Flex Builder开始跟踪调试程序(见图1.19、图1.20、图1.21)。

图1.18 打开调试视图

图1.19 开始跟踪调试程序

图1.20 调试运行程序

图1.21 程序运行结果

在Flex Builder 3.0的调试状态下,debug窗口旁边的Variables窗口显示的是某一时刻各种变量的值。

Flex Builder沿袭了Eclipse体系,具有Eclipse所支持的开发配置、快捷键、调试控制、代码重构等方面优势,简化开发,为用户提供便利。

快捷键如下:

● Ctrl+Shift+C——单行注释;

● Ctrl+/——段注释;

● Tab——代码的缩进;

● Shift+Tab——代码的前进;

● Ctrl+Shift+B——加或去除断点;

● F1——Flex帮助;

● F3——转到定义;

● F11——开始调试;

● F5——调试进入下一层代码;

● F6——调试进入同层下一句错码;

● F7——跳到上一层继续调试;

● F8——调试到下一层断点。

1.3.4 项目发布

一个Web的Flex项目编译后,通常需要发布到Web服务器中。在进行项目部署发布时,需要根据项目的具体情况,选择发布到IIS,或者Java的Web服务器中,如Tomcat。项目发布的方法与Web项目发布相同,发布的是编译好的项目文件。下面以创建的第一个项目为例,介绍部署到Windows操作系统中的IIS服务器的具体步骤。

(1)将编译好的Flex项目复制到Web服务器所在机器硬盘中。

默认情况下Flex项目的bin-debug目录中是编译好的文件(见图1.22)。通常建一个文件夹,把bin-debug目录下的所有文件复制到新建的文件夹中,然后再移到Web服务器机器上。

图1.22 Flex项目编译好的文件

(2)为服务器中的Flex项目创建一个虚拟目录(见图1.23和图1.24),即设置为Web共享。

图1.23 设置虚拟目录

图1.24 IIS中设置好的虚拟目录

(3)在IIS中为Flex项目设置一个访问首页(见图1.25),并进行匿名访问设置(见图1.26)。

图1.25 设置访问首页

图1.26 设置匿名访问