`
shine1200
  • 浏览: 41534 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ChinaMap

 
阅读更多
package {
import event.MapEvent;

import flash.display.DisplayObject;
import flash.display.DisplayObjectContainer;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.external.ExternalInterface;
import flash.geom.ColorTransform;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.navigateToURL;
import flash.text.StaticText;
import flash.text.TextField;
import flash.text.TextFormat;

[SWF(width="600",height="500",frameRate="25",backgroundColor="#FFFFFF")]

public class ChinaMap extends Sprite {

private var mapConfig:Object;
private var mapBackGroud:MapBackgound;
private var mapArea:MapArea;
private var mapXML:XMLList;
private var mapTip:MapTip;
private var tipShandow:Sprite;
private var wrapperFunction:String;

public function ChinaMap(){
mapConfig = new Object();
mapConfig.title = loaderInfo.parameters.title;
wrapperFunction = loaderInfo.parameters.jsHandler;
/*UI*/
var mapLoading:MapLoading = new MapLoading();
addChild(mapLoading);
var xmlLoader:URLLoader = new URLLoader();
var xmlAdress:String = (loaderInfo.parameters.xmlurl != null)?loaderInfo.parameters.xmlurl:"data/d.xml";
xmlLoader.addEventListener(Event.COMPLETE,function(e:Event):void{
mapXML = new XML(e.target.data).area;
removeChild(mapLoading);
drawUI();
});
xmlLoader.load(new URLRequest(xmlAdress));
}

private function drawUI():void {
mapBackGroud = new MapBackgound();
mapBackGroud.title = (mapConfig.title == null)?"you need set title":mapConfig.title;
addChild(mapBackGroud);
mapArea = new MapArea();
mapArea.x  = mapArea.y = 20;
addChild(mapArea);
stopAll(mapArea.map);
registAction(mapArea.map);
tipShandow = new Sprite();
addChild(tipShandow);
mapTip = new MapTip();
addChild(mapTip);
mapTip.visible = false;
}

private function registAction(c:DisplayObjectContainer):void {
var me:DisplayObject;
var meTf:DisplayObject;
var meTf1:DisplayObject;
for(var i:uint = 0; i<c.numChildren; i++) {
me = c.getChildAt(i);
if(me is MovieClip && me.name != "bg") {
me.alpha = 0.5;
f:for each(var node:XML in mapXML){
if(node.@id == me.name) {
me.alpha = 1;
(me as MovieClip).title = node.@title;
(me as MovieClip).value = node.@value;
(me as MovieClip).navUrl = node.@url;
(me as MovieClip).navTarget = node.@target;
(me as MovieClip).buttonMode = true;
var color:ColorTransform = new ColorTransform;
// var color24:Number=0x00 << 16 | Math.random()*0xff << 8 | 0x00;
//                          color.color=color24;
chanceColor(color);
                       (me as MovieClip).transform.colorTransform=color;
(me as MovieClip).addEventListener(MouseEvent.MOUSE_OVER,mapOverHandler);
(me as MovieClip).addEventListener(MouseEvent.MOUSE_OUT,mapOutHandler);
(me as MovieClip).addEventListener(MouseEvent.CLICK,mapClipHandler);
break f;
}
}

for(var k:uint = 0; k<(me as MovieClip).numChildren;k++){
meTf = (me as MovieClip).getChildAt(k);
if(meTf is MovieClip){
meTf1 = (meTf as MovieClip).getChildAt(0);
if(meTf1 is StaticText){
(meTf as MovieClip).removeChildAt(0);
}else{
if(meTf1 is MovieClip){
if(me.name=="gansu"){
for(var j:uint = 0; j<(meTf1 as MovieClip).numChildren;j++){
var meTf3:DisplayObject = (meTf1 as MovieClip).getChildAt(j);
if(meTf3 is StaticText){
(meTf1 as MovieClip).removeChild(meTf3);
}
}
}else{
var meTf2isplayObject = (meTf1 as MovieClip).getChildAt(0);
if(meTf2 is StaticText){
(meTf1 as MovieClip).removeChildAt(0);
}
}
}
}
}
}
}
}
function chanceColor(c:ColorTransform):void{
       var color24:Number=0x00 << 16 | Math.random()*0xff << 8 | 0x00;
                 c.color=color24;
}
function chanceColor11(c:ColorTransform):void{
        var n:Number=Math.random();
        if(n<.3) c.redOffset=255;
        else if(n<.6) c.greenOffset=255;
        else{
                c.redOffset=255;
                c.greenOffset=255;
        }
}
function mapOverHandler(e:MouseEvent):void {
(e.currentTarget as MovieClip).gotoAndStop(2);
showTip((e.currentTarget as MovieClip),(e.currentTarget as MovieClip).value);
}
function mapOutHandler(e:MouseEvent):void {
(e.currentTarget as MovieClip).gotoAndStop(1);
if(mouseX < mapTip.x || mouseX > (mapTip.x+mapTip.width) || mouseY < mapTip.y || mouseY > (mapTip.y+mapTip.height)) {
hideTip();
}
}
function mapClipHandler(e:MouseEvent):void {
var me:MovieClip = e.currentTarget as MovieClip;
if(me.navUrl != null) {
navigateToURL(new URLRequest(me.navUrl),me.navTarget);
}
var clickEvent:MapEvent = new MapEvent(MapEvent.ITEMCLICK,true,true);
clickEvent.value = me.name;
dispatchEvent(clickEvent);
if (ExternalInterface.available) {
try {
var t:Object = new Object();
t.value = me.name;
ExternalInterface.call(wrapperFunction,t);
} catch(err:Error) {
trace(err);
}
}
}
}

private function showTip(mc:MovieClip,t:String):void {
mapTip.addEventListener(Event.ENTER_FRAME,moveTip);
mapTip.visible = true;
mapTip.t.htmlText = t;
}
private function hideTip():void {
mapTip.visible=false;
mapTip.t.text="";
mapTip.removeEventListener(Event.ENTER_FRAME,moveTip);
}

private function moveTip(e:Event):void {
e.currentTarget.x = mouseX+10;
e.currentTarget.y = mouseY+10;
if((e.currentTarget.x+e.currentTarget.width) > stage.stageWidth) {
e.currentTarget.x = stage.stageWidth - e.currentTarget.width;
}
}

private function stopAll(c:DisplayObjectContainer):void {
var me:DisplayObject;
for(var i:uint = 0; i<c.numChildren; i++) {
me = c.getChildAt(i);
if(me is MovieClip) {
(me as MovieClip).stop();
}
}
}
}
}
分享到:
评论
1 楼 shine1200 2012-02-09  
终于能对chinamapforflash地图修根据不同数据展现不同颜色,并支持图例了。

相关推荐

    China Map

    China Map China Map China Map China Map

    chinamap.rar_chinamap_matlab 中国地图_中国地图 matlab_中国地图 站点

    在"chinamap.rar_chinamap_matlab"这个压缩包里,包含了几个关键文件,用于实现这一目的。 首先,"chinamap.m"是主程序文件,它包含了绘制中国地图和标注站点的核心代码。MATLAB提供了`geoshow`函数来显示地理数据...

    chinamap_地图_中国矢量地图_goolglechinamap_shp_

    【标题】"chinamap_地图_中国矢量地图_goolglechinamap_shp_" 指的是一款专门针对中国的高精度矢量地图资源,适用于各种地理信息系统(GIS)应用。这个标题揭示了几个关键点:首先,“chinamap”明确了这是一份关于...

    ChinaMap实例源码

    【标题】"ChinaMap实例源码"涉及到的是地图可视化技术的应用,主要结合了Raphael插件和Highcharts插件来实现。在中国地图的绘制和数据展示方面,这两个工具提供了强大的功能。 【Raphael插件】Raphael是一个...

    中国 地图 Chinamap svg 格式的

    中国 地图 Chinamap svg 格式的中国 地图 Chinamap svg 格式的中国 地图 Chinamap svg 格式的中国 地图 Chinamap svg 格式的

    chinamap离线地图.rar

    《chinamap离线地图——探索地理信息与GIS技术的应用》 在当今信息化时代,地图不再仅仅是纸质形式的存在,而是发展成了数字形态,为我们的生活提供了极大的便利。"chinamap离线地图.rar"就是一个典型例子,它展示...

    chinamap_matlab地图数据_工具箱_matlab_

    "chinamap_matlab地图数据_工具箱_matlab_" 是一个专门为MATLAB用户设计的工具箱,主要用于绘制和处理中国地图数据。这个工具箱包含了丰富的中国地理信息,涵盖了大陆地区的省份、城市、县等各级行政区域,使得在...

    调用js地图,兼容各个浏览器chinaMap

    "调用js地图,兼容各个浏览器chinaMap"这个主题关注的是如何使用JavaScript来创建一个兼容多种浏览器的地图功能,特别是针对中国的地理区域。这里我们将深入探讨这个话题,并基于提供的文件`index.html`、`raphael.js...

    china_map1.zip_china map download_matlab 中国地图_matlab绘制地图_中国地图_绘制

    标题中的"china_map1.zip"是一个压缩包文件,其中包含了用于在MATLAB环境中绘制中国地图的相关资源。"china map download"表明这个压缩包是下载的,可能是从互联网上获取的,目的是供用户在自己的MATLAB环境中使用。...

    chinaMap.json

    echarts 地图json

    chinaMap.rar

    中国各省(港澳不单列) china_prov.lst.txt 各省临接矩阵(两个文件格式不同,但...china_map.arr.txt china_map.csv.txt 中国分省纯色地图(可填色) china.png 可以用来做最短路和四色问题的测试数据

    chinamap.zip

    从阿里云地图选择器上查询得到的中国省市县(一共369个json文件)的地图json数据。...参考格式部分如下:{"features":[{"type":"Feature","properties":{"adcode":110000,"name":"北京市","center":[116.405285,39....

    chinamap.rar

    标题中的"chinamap.rar"表明这是一个压缩文件,可能包含了与中国的地图数据或者与地图相关的程序、图像等资源。在IT领域,这类数据通常用于地理信息系统(GIS)、数据分析或者地图可视化项目。.rar格式是一种流行的...

    Chrome extension of China Map

    【标题】"Chrome extension of China Map" 这篇内容主要围绕一个名为“China Map”的Chrome浏览器扩展进行,它是一款专为Chrome用户设计的地图应用插件。Chrome扩展是基于浏览器的JavaScript、HTML和CSS等技术构建...

    chinaMap.zip

    这是一个非常简单的demo,完全是用Echarts实现的,因此对于初学者也适用,采用vscode打开,(受访问本地json数据影响,没有安装live server插件的需要先安装该插件,不然会报跨域问题)

    CHINAMAP97.iso

    运用迈普科学技术97光学和视觉的一个交汇,开发资源的交流,特别强大

    chinamap.gif

    chinamap.gif

    ChinaMap.7z

    "ChinaMap.7z" 是一个压缩文件,包含了与地理相关的数据,主要用于描述中国的行政区域划分以及地理位置。该压缩包内包含了一系列以 .dbf、.shp 和 .shx 为扩展名的文件,这些都是GIS(地理信息系统)中常用的数据...

    ChinaMap.rplib

    Axure元件库。

Global site tag (gtag.js) - Google Analytics