2013-02-06 52 views
0

我正在开发一个需要我使用谷歌地图的Flash项目。我阅读了一篇文章,指出“截至2011年9月2日,Google Maps API for Flash已正式被弃用”。我的问题是,是否有可能将谷歌地图JavaScript版本嵌入到Flash项目中?我的另一个问题是,有没有人知道我可以使用Flash提供与谷歌地图相同的质量的任何地图绘制工具,并且仍然受到支持?谢谢。将谷歌地图嵌入到Flash中

+0

不推荐使用并不意味着它不再工作;) – MarcinWolny

+0

是的,但意味着它将不会在将来得到支持或改进。我需要找到一种方法来使javascript和actionscript通信。 – Donny

+0

您的项目必须在浏览器/ Flash Player中运行吗?如果没有,您可以制作AIR Flash项目并使用[StageWebView](http://www.adobe.com/devnet/air/quick_start_as/quickstarts/qs_using_stage_web_view.html) –

回答

2

我有同样的需求,也找不到一个良好的现成解决方案,所以我编写并评论了一个测试库,下面可以作为任何类似项目的基础。

我不是依靠单一提供商,而是通过Bing Maps V7,Google Maps V3和MapQuest Maps V7 JavaScript地图在Flash中实现相同的功能。该代码创建线条,动态标记和阴影等,并调用其高程apis。示例应用程序在一个html页面中创建每个地图类型的两个。

要做到这一点,你需要让Flash和JavaScript通过注册函数来调用数据和/或闭包,这些函数具有该项目的唯一名称。

首先每个映射具有一个独特的azazaz和每个地图MXML组件注册一组具有自己的独特的azazaz(例如fname_mapId)外部的方法,然后用一个参数化的SRC HTML用于使三种地图类型的一个产生一个Flex-的iFrame mapId,应用程序名称,开始位置等。

HTML读取这些参数,并通过应用程序名称从父框架获取SWF对象。它创建一个映射并向映射注册侦听器,并使用它的mapId(例如fname_mapId)将回调函数添加到父框架中,该映射允许创建标记和行,每个标记和行都具有唯一的id,并且再次向父框架注册函数还要在其名称中包含标记或行ID(例如fname_mapId_ [lineId | markerId]),以允许设置图标,阴影,线条颜色及其位置更改或删除。

HTML也通过mapId注册函数来检查一般位置或路径的高程。这些调用ajax或例程来请求提升,回调到JavaScript,然后返回到AS3注册的函数。

-C

逻辑测试行动&回调 - 旨在检验所有实现的功能:

Double click on map: 
    Create pin: 
     - Set to default name 
     - Add to map 
     - Set icon and shadow (note Bing does not take shadows; Google can take a marker mask for clicking - not implemented) 
     - Call to map for elevation 
    Remove previous marker 
    Log current markers (should be only 1) 
    Create black line from start to pin: 
     - Change line color to blue 
     - Call to map for path elevation 
    Remove previous line 
    Log current lines (should be only 1) 
Drag marker: 
    Start: 
     - only logs it was called 
    Drag: 
     - only logs it was called 
    End: 
     - Move line to new lat lng 
     - Set line color to orange 
     - Sets map to not accept double clicks 
Double click marker: 
    - Sets map to accept double clicks again (so after you drag you need to double click a marker to have map accept double clicks again) 
Elevation callback: 
    - Changes pin name to include elevation in name 
    - Sets new icon and shadow for marker 
Elevation path callback - set to 300m & 500m - is balloon at 500m on path going to hit? - error if elevation of path >=500, warn if >=300 
    - Sets line color if path max elevation as sampled is: 
     Purple:  elevation request error flag set 
     Red:   at or above error level 
     Red-Yellow: at or above warning but requested distance not met 
     Yellow:  at or above warning level 
     Yellow-Green: below warning level but requested distance not met 
     Green:  below warning level 

后的代码的其余部分是太漫长了太多的联系,以便我不得不把这一切放在这里 - 复制到直接的文本编辑器 - 代码都格式良好的空格:http://pastebin.com/Jzq5E06F