本部分讨论了怎样获取并设置 Adobe FlexBuilder、怎样引用 Google Maps API(Flash 版)库,及怎样设置开发环境以便让您可以使用 Adobe 的 FlexBuilder IDE 在 ActionScript 中编程,及构建第一个 Google Maps API(Flash 版)地图。
请注意:如果您想使用 Free Flex SDK,请参见 Flex SDK 教程。
设置 FlexBuilder
将 Google 地图整合到您的 Flex 应用程序不但要求了解 ActionScript 代码,而且需要了解 Flex MXML 文件。此教程举例说明了怎样启动地图应用程序,并在以下网址提供的 FlexBuilder(Adobe 用于 Flex 开发的 IDE)中运行:
http://www.adobe.com/products/flex/features/flex_builder/
此教程假设您已购买并设置了 FlexBuilder 应用程序。
创建项目
在开始编码应用程序前,您应该首先在 FlexBuilder 内设置项目。要执行此操作,请遵循以下简单步骤:
在 FlexBuilder 内选择文件 -> 新建 -> Flex 项目。系统将显示新 Flex 项目对话框。输入您的项目名称以及项目相关文件的存储位置,将应用程序类型设置为网络应用程序。

点击完成,这样就会创建您的项目。FlexBuilder 还将自动创建模板 MXML
文件,如下所示:

链接到 Google Maps API(Flash 版)库
在编译您的代码前,您需要将其链接到 Google Maps API(Flash 版)SWC 文件。要执行此操作,请选择项目 -> 属性。系统将显示您的项目的属性对话框。点击 Flex 构建路径,然后选择库路径标签:

在库路径窗格内点击添加 SWC...。系统将显示添加 SWC 对话框。浏览到您保存 Google Maps API(Flash 版)SDK 的位置,并选择相应的 lib/map_flex_*.swc
文件,然后点击确定。(注意:确保您选择了正确的 SWC。FlexBuilder 不会使用非 Flex SWC 库。)您的对话框现在应显示为:

点击确定。FlexBuilder 将更新您的项目,而您将返回到显示结构 MXML 文件的 Flex 开发前景。

- 您可能想在此测试结构 MXML 文件的编译以确保开发环境运行正常。
设置开发目录
新!Google Maps API(Flash 版)现在提供对 Flex 内的 com.google.maps.Map
对象的本地支持。您不再需要扩展 Map
类来定义您的地图应用程序类,并且您可以在 Flex 中直接使用地图组件。
Flex 应用程序在 MXML
声明中定义。通常,您应该在源代码根目录中提供这些 MXML
应用程序定义。默认情况下,FlexBuilder 在您的项目内创建 src
目录来放置源代码,而且 MXML 文件应该位于该根目录下。
选择文件 -> 新建 -> MXML 应用程序创建新 MXML 文件。将 MXML 文件命名为 HelloWorld.mxml
。我们将在后面的部分中扩充此结构 MXML 应用程序。
使用命名空间管理扩展名
“扩展”任何现有 Google Maps API(Flash 版)组件的组件通常应该作为唯一命名空间内的 ActionScript 文件来提供。Google 建议您使用自己的命名空间以防止与其他应用程序发生冲突,尤其当多个开发人员同时工作在多个 Flash 应用程序时,这一点就尤为重要。使用命名空间还可让您将应用程序代码捆绑成“包”,这样可以更轻松地共享通用代码。
应使用您的顶级域、组织域和子域来定义包和命名空间。例如,Google 地图命名空间定义为 com.google.maps
,该命名空间中的 examples
包定义为 com.google.maps.examples
。然后,您可使用该命名空间默认定义应用程序的目录结构(例如 com/google/maps/examples/
)。
可以使用该命名空间定义 ActionScript 代码中的包,并可以在 MXML
声明中定义您的应用程序。通常,ActionScript 代码(*.as
文件)位于定义命名空间的最低层目录中,而 MXML 声明(*.mxml
文件)位于该目录结构的“根目录”中。
编写 Google Maps API(Flash 版)的“Hello World”
初步了解 Google Maps API(Flash 版)的最简单方式就是看一个简单的示例。在此教程中,使用 FlexBuilder 我们可以创建简单的 MXML 文件,添加一些 ActionScript 代码,使用 Flex SDK 将该文件编译为 SWF 文件,并启动文件进行可视化检查。
MXML 声明
MXML 声明定义 Flex 应用程序中的 UI 元素,而 <mx:Script>
标签中嵌入的 ActionScript 代码定义针对这些 UI 元素的操作。在最简单的示例中,您只需在 MXML 内声明一个 com.google.maps.Map
对象并使用 ActionScript 代码初始化地图即可:
修改您的 HelloWorld.mxml
文件直到其如下所示。我们将在此文件内查看代码,并对其做出解释。
该示例位于 gmaps-samples-flash.googlecode.com/svn/trunk/examples/HelloWorld.html 上。(MXML 源位于此处。)请注意,您需要使用自己的 API 密钥创建自己的 SWF 文件,本示例才能显示在您的网站中。
即使在此简单的示例中,也有几点需要注意:
- 按照 Flex 应用程序的要求,我们声明初始
<mx:Application>
来存储所有代码。在该 <mx:Application>
对象中,我们声明 xm
命名空间来引用标准的 Flex 组件。
- 我们将
Map
对象声明为 <mx:Application>
子项,并定义 maps
命名空间来引用来自 com.google.maps.*
的代码。我们还定义包含 id
、mapevent_mapready
处理程序和 API key
的参数。这些参数会在以后进行介绍。
- 我们在
<mx:Script>
子对象中定义 ActionScript 代码。
- 在该 ActionScript 代码中,我们在收到
mapevent_mapready
事件后使地图以某个位置为中心。
下面将详细介绍这些步骤。
声明应用程序
Google Maps Flash 应用程序不仅需要 ActionScript 代码,而且还需要用户界面框架在网页上显示地图和任何关联的 UI 元素。在 Flex Framework 中,这些 UI 组件在 MXML
声明中指定。MXML 声明包含带有 .mxml
后缀的配置文件。该 MXML
文件通常位于 ActionScript 开发目录的根目录中。
要在网页上显示 Flash 地图,您至少需要一个 MXML 声明。所有 MXML 声明都需要 <mx:Application>
根组件。此外,<mx:Application> 也注册 mx
前缀以引用标准的 Flex 组件。
请注意,MXML 声明可能非常复杂,并且 MXML 声明中 UI 组件的布局未在本文档中进行介绍。有关详细信息,请查看提供的示例并参见 Flex SDK 文档。
声明地图
Google Maps API(Flash 版)现在提供对 com.google.maps.*
包内定义的 Map
对象的本地支持。我们在此将 Map
添加为 <mx:Application>
的子项、将其命名空间定义为 maps
(将它链接到 com.google.maps.*
代码)、设置可从 ActionScript 代码内引用地图的 id
并定义 mapevent_mapready
处理程序。(请参见下面的事件处理。)
<maps:Map>
声明还指定 width
和 height
参数,以定义地图在应用程序中的显示方式。更重要的是,MXML 声明是放置唯一 API key
的便利位置。
编写 ActionScript 代码
使用 ActionScript 3.0 代码在 Google Maps API(Flash 版)中操控地图。本教程不会详细介绍 ActionScript。可在以下位置中获得有关 ActionScript 的在线教程:
<mx:Script>
对象是存储对 ActionScript 代码的引用的 Flex 组件。MXML 是 XML 的变体,因此我们还需要使用 <![CDATA[][
和 ]]>
分隔符来告知 MXML 解析器忽略该文件中的 ActionScript 代码。
注意:您可能反而想要在单独的 ActionScript (*.as
) 文件中提供您的 ActionScript。如果这样,您可以通过在 <mx:Script>
标签中加入 source
参数来引用 ActionScript 文件。
如果您的应用程序较大或较复杂,则应将代码添加到单独的文件中。但是,在该文档中,我们会在 MXML 声明中显示所有代码内联以进行简化。
导入库
通过 import
声明导入 ActionScript 库。在以上示例代码中,导入了几个 Google Maps Flash 库。
您应该确保您导入的是在示例代码中使用类型的库。建议您只导入需要的类。在该文档的大多数示例中,我们会组织代码的结构以便 <mx:Application>
不使用 Flex UI 组件。这样做会提供基本的轻量级地图。请注意,包含任意 Flex 库都可能大大增加 SWF 文件的大小,即使您只需要一个特定的 Flex 组件(例如按钮)。
设置事件侦听器
ActionScript(类似 JavaScript)是一种事件驱动编程语言。在 Flash 对象内与用户交互由注册对象上的事件监听器执行特定事件来处理。
在前一部分的代码段中,Map
声明使用特定参数 mapevent_mapready
针对 MapEvent.MAP_READY
事件将事件侦听器添加到了 Map
对象。该事件处理程序作为“钩子”来初始化 Google Maps API(Flash 版)应用程序。当地图收到该事件后,它会调用 onMapReady
函数(如下所示)。
该 onMapReady()
函数会传递类型为 MapEvent
的 event
参数(在本例中忽略),然后使用指定参数(定义要显示的地图的位置、缩放级别和类型)调用 setCenter()
。
通常,通过截获和处理 MapEvent.MAP_READY
事件来以这样一种方式“初始化”地图是个不错的方法。在 Google Maps Flash 文档的地图事件部分中对事件进行了详细介绍。
请注意:您还可以通过截获和处理 MapEvent.MAP_PREINITIALIZE
事件来初始化地图。有关该事件的信息,请参见对 MapOptions
的介绍。
在 Google Maps Flash 文档的地图事件部分中对事件进行了详细介绍。
编译 SWF 文件
现在,在源的根目录中有 HelloWorld.mxml
,在该文件的 <mx:Script>
对象中有 ActionScript 代码。我们已准备好将代码编译成 SWF (Shockwave Flash) 文件。我们可以直接在 FlexBuilder 内进行操作。
要执行 FlexBuilder 的编译器并启动 Flash 播放器的调试版本,请点击位于 FlexBuilder 任务栏中的其中一个运行工具。可以在此选择启动优化版本、调试版本或配置文件版本。

FlexBuilder 会编译 MXML 应用程序,构建 SWF 文件,并自动启调出您的浏览器,显示以下 Flash SWF:

在网页中托管 SWF 文件
Google Maps Flash SWF 文件如果是使用附带的 API 密钥编译的,那么可以简单地显示为单独的文件。这一点在进行测试时很有用,但可能不适合进行适当的页面布局。因此,您可能需要设置 HTML 页面以包含该 SWF 文件。为了确保您的 SWF 文件可在 Internet Explorer 和其他浏览器中执行,您应在 object
和 embed
标签中都添加 SWF。
下面显示了包含 HelloWorld.swf
文件的简单 HTML 页面。要让地图在网页上显示,必须为其留出一个位置。本例中,我们通过创建指定的 div
元素并向该元素添加 object
元素来完成此操作。
请注意,我们在 flashVars
参数中添加 API 密钥参数。该注册方法是在 MXML 声明中将密钥编译成 SWF 文件的一种备用方法。如果在此指定值,则这些值会覆盖 SWF 文件或 MXML 声明中所包含的值。另请注意,API 密钥必须和托管“SWF”文件的域匹配,而不是与可能用来托管 HTML 文件的域匹配。
下面显示了生成的 HTML 页面。

HelloWorld.mxm:
恭喜您!您已经编写好了您的第一个 Google Maps Flash 应用程序!
转自:《code.google.com/intl/zh-CN/apis/maps/documentation/flash/tutorial-flexbuilder.html》
分享到:
相关推荐
3. 集成第三方组件:与OpenLayers、Google Maps API等其他GIS库结合,增强功能和兼容性。 4. 移动端适配:对源码进行调整,使其能在移动设备上运行,满足跨平台需求。 总的来说,"arcgis-viewer-flex-3.7-src"开发...
在本示例中,“Flex 4加载Google Map地形图demo”是一个展示如何在Flex 4应用中集成并显示Google Maps API的地形图层的项目。下面将详细讨论Flex 4与Google Maps API的集成以及地形图的实现。 1. **Flex 4 基础** ...
FlashBuilder 4 提供了对Google Maps API 和 ESRI ArcGIS API 的支持,使得在Flex中实现地图功能变得轻松。 1. Google Maps API 集成:通过引入Google Maps API库,开发者可以创建具有地图展示、标记定位、路线规划...
Flex开发Google地图涉及到的技术主要包括Flex编程、Google Maps API for Flash以及地图标记与线路绘制。Flex是一种由Adobe贡献的开源框架,用于快速构建高度交互且视觉效果丰富的互联网应用(Rich Internet ...
本文将深入探讨如何使用Adobe Flex和Google Maps API(GMap API)来创建一个自定义的地图应用程序。Flex是一个强大的富互联网应用程序(RIA)开发框架,而GMap API则是Google提供的用于在网页上集成地图功能的接口。...
Flex版Google Map API更适合需要高度交互和自定义界面的RIA应用,其ActionScript基础使得它与Adobe其他产品(如Flash Builder)的集成更为紧密。而Flash Google Map API则更适用于对性能有高要求,且需要丰富动画...
标题“flex实现googleMap”指的是使用Adobe Flex技术来构建与Google Maps API集成的应用程序。Flex是一种基于ActionScript的开源框架,用于创建富互联网应用程序(RIA),它可以与各种Web服务交互,包括Google Maps...
本文将深入探讨如何使用Flex与Google Maps API相结合,实现一个功能丰富的Google地图程序。 首先,让我们了解Flex的基础。Flex框架由Adobe开发,主要由MXML和ActionScript 3.0组成。MXML是一种声明式语言,用于构建...
1. 引入库:首先需要在Flex项目中引入Google Maps API的SWC库,这可以通过添加外部库或者在Flex Builder中导入库文件完成。 2. 创建地图组件:使用GoogleMap类创建地图组件,设置相应的属性,如地图类型、初始位置、...
4. **集成地图库**:Flex本身并不直接支持Google Maps API,所以你需要引入一个第三方库,如“flex-google-maps”或者“as3googlemaps”。这些库提供了封装好的接口,使得在Flex中操作谷歌地图变得简单。 接下来,...
《深入探索Google Maps Flex SDK:基于.map_flex_1_22.zip_flex的开发实践》 在现代互联网应用中,地图服务已经成为不可或缺的一部分,尤其是对于...希望本文能为你开启Flex版Google Maps的开发之旅提供宝贵的指导。
- 访问 Google API 控制台,申请使用 Google Maps JavaScript API 的密钥。 2. **下载 SDK 文件:** - 下载 Google Maps API 的 SDK 文件,并解压获取 SWC 的库文件。 3. **下载 AutoComplete 组件:** - 下载并...
6. **Google Maps API集成**:Flex可以与第三方服务,如Google Maps API,进行集成。通过使用Flex的HTTPService或WebService组件发送请求,获取并显示地图数据。你可以创建自定义的图层、标记、信息窗口,实现地图的...
3. **在Flex中使用Google Map API**:在Flex项目中集成Google Map API需要引入Google Maps API for Flash库。这个库使得Flex应用能够与Google Maps服务交互,创建动态地图,添加标记,实现拖放功能,以及执行其他...
在Flex中,实现地图功能通常会涉及到地图API,如Google Maps API、OpenStreetMap API或其他地理信息系统(GIS)服务。这些API允许开发者在Flex应用中嵌入地图,进行交互操作,如缩放、平移、标记点、绘制路线等。 ...
Flex地图应用框架通常利用如Google Maps API、OpenLayers、Bing Maps API等第三方地图服务。这些API允许开发者将动态地图嵌入到Flex应用中,提供缩放、平移、标记点、路径绘制等多种地图操作。对于初级开发者来说,...
在Flex项目中,这个文件可以帮助IDE(如Flash Builder)自动完成和代码提示,提高开发效率。开发者可以查看和修改这个文件以优化类库的使用体验。 综上所述,GoogleMap for Flex是Flex开发者构建地图应用的强大工具...
在Flex中,地图组件通常是通过集成第三方地图服务,如Google Maps、Bing Maps或OpenStreetMap等来实现的。开发者可以利用这些服务提供的API和Flex的图形能力来创建自定义的地图界面,添加标记、图层、路径等交互元素...
- **地图应用开发**:展示如何利用地图API(如Google Maps API)开发地理定位相关的应用。 - **桌面应用开发**:介绍如何使用Adobe AIR将Flex应用程序部署到桌面环境。 ### 本书特色 - **实践导向**:本书不仅涵盖...
- **Google Maps Flash API**: 提供了与Google Maps集成的功能。 - **OpenScale**: 开源项目,提供了一种使用Flex进行地理信息系统开发的方法。 - **ArcGIS API for Flex**: 专门针对ArcGIS Server的Flex API,...