首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地图的removeChild (mapQuest)

地图的removeChild (mapQuest)
EN

Stack Overflow用户
提问于 2014-06-24 04:39:40
回答 1查看 78关注 0票数 0

当用户单击“后退”按钮时,我试图关闭地图。

我正在为Adobe应用程序使用AS3。

为了关闭函数,我尝试用removeChild(MyMap)调用一个函数,但是它不能工作(错误#2025:提供的显示对象必须是调用方的子函数)。

你知道我该怎么做吗?

这是我的密码:

代码语言:javascript
复制
var MyMap:TileMap = new TileMap("KEY_OF_MAP");
addChild(MyMap);

VisibleButton();

}        

function VisibleButton():void
{
    var skip:MovieClip;
    skip = new skype
    addChild(skip);
    skip.addEventListener(MouseEvent.CLICK, closeMap, false, 0, true);
}

function closeMap(e:MouseEvent):void
{
    trace("ferme carte");
    var MyMap:TileMap = new TileMap("KEY_OF_MAP");
    removeChild(MyMap);
}

编辑:

所以,我会给你尽可能多的细节。

我将代码直接放入场景中,如下所示:

在第11张图片中,我编码了一个名为"goMapButton“的按钮。行动守则是:

代码语言:javascript
复制
goMapButton.addEventListener(MouseEvent.CLICK, callDisplayMap, false, 0, true);

function callDisplayMap(event:MouseEvent):void{
    displayMap();
}

在我的第12张图片中,我得到了一个动作代码:

代码语言:javascript
复制
stop();

    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.display.StageScaleMode;
    import com.mapquest.tilemap.*;
    import com.mapquest.LatLng;
    import com.mapquest.tilemap.pois.*;
    import com.mapquest.services.directions.Directions;
import com.mapquest.services.directions.DirectionsConstants;
import com.mapquest.services.directions.DirectionsEvent;
import com.mapquest.services.geocode.Geocoder;
import com.mapquest.services.geocode.*;
import com.mapquest.services.geocode.GeocoderEvent;
import com.mapquest.services.geocode.GeocoderLocation;
import com.mapquest.tilemap.Size;
import flash.display.Bitmap;
import com.mapquest.tilemap.TileMap;
import com.mapquest.tilemap.controls.inputdevice.MouseWheelZoomControl;
import com.mapquest.tilemap.controls.shadymeadow.SMLargeZoomControl;
 import com.mapquest.tilemap.controls.shadymeadow.SMViewControl;




function displayMap():void{
    trace("displaying Map");
            //turn scaling off
            this.stage.scaleMode = StageScaleMode.NO_SCALE;

            // create a new TileMap object, passing your platform key



            var myMap:TileMap = new TileMap("Fmjtd%7Cluur2g0an0%2C2s%3Do5-9azwdr");

                        myMap.size = new Size(800, 533);
            myMap.addControl(new SMLargeZoomControl());
            myMap.addControl(new MouseWheelZoomControl());
            myMap.setCenter(new LatLng(-21.060478, 164.861113),12);     



            //add the map to the sprite.
            addChild(myMap);

var myPoi:Poi;
                  //ICONES BATTERIES
             [Embed (source="huiles.png")] 
            var HuilesImg:Class;
            var embeddedIconPoi:Poi;

              var myIcon:MapIcon = new MapIcon();

                myIcon.setImage(new HuilesImg(),22,32);
              embeddedIconPoi = new Poi(new LatLng(-11.71199, 12.647725));
              embeddedIconPoi.rolloverAndInfoTitleText = "Info about that place";
              embeddedIconPoi.icon = myIcon;
              myMap.addShape(embeddedIconPoi);

VisibleButton();

          }      

//This function makes a button visible at the left corner of the screen
function VisibleButton():void{
              var skip:MovieClip;
              skip = new skype
              addChild(skip);
              skip.addEventListener(MouseEvent.CLICK, closeMap, false, 0, true);

          }

//I'd like to close the map when the user click on the skip button

          function closeMap(e:MouseEvent):void{
              var myMap:TileMap = new TileMap("Fmjtd%7Cluur2g0an0%2C2s%3Do5-9azwdr");
              trace("ferme carte");
              trace(myMap.parent == null);


          }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-24 06:46:53

首先删除:

代码语言:javascript
复制
var MyMap:TileMap = new TileMap("KEY_OF_MAP");

因为您已经准备好在第一行代码中启动map实例。

我不认为你会需要它后,第一次修复,但如果你仍然有错误,你可以用这个代替。

代码语言:javascript
复制
MyMap.parent.removeChild(MyMap);

如下所示:

代码语言:javascript
复制
stop();

    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.display.StageScaleMode;
    import com.mapquest.tilemap.*;
    import com.mapquest.LatLng;
    import com.mapquest.tilemap.pois.*;
    import com.mapquest.services.directions.Directions;
import com.mapquest.services.directions.DirectionsConstants;
import com.mapquest.services.directions.DirectionsEvent;
import com.mapquest.services.geocode.Geocoder;
import com.mapquest.services.geocode.*;
import com.mapquest.services.geocode.GeocoderEvent;
import com.mapquest.services.geocode.GeocoderLocation;
import com.mapquest.tilemap.Size;
import flash.display.Bitmap;
import com.mapquest.tilemap.TileMap;
import com.mapquest.tilemap.controls.inputdevice.MouseWheelZoomControl;
import com.mapquest.tilemap.controls.shadymeadow.SMLargeZoomControl;
 import com.mapquest.tilemap.controls.shadymeadow.SMViewControl;

// create a new TileMap object, passing your platform key
 var myMap:TileMap = new TileMap("Fmjtd%7Cluur2g0an0%2C2s%3Do5-9azwdr");

function displayMap():void{
    trace("displaying Map");
            //turn scaling off
            this.stage.scaleMode = StageScaleMode.NO_SCALE;







                        myMap.size = new Size(800, 533);
            myMap.addControl(new SMLargeZoomControl());
            myMap.addControl(new MouseWheelZoomControl());
            myMap.setCenter(new LatLng(-21.060478, 164.861113),12);     



            //add the map to the sprite.
            addChild(myMap);

var myPoi:Poi;
                  //ICONES BATTERIES
             [Embed (source="huiles.png")] 
            var HuilesImg:Class;
            var embeddedIconPoi:Poi;

              var myIcon:MapIcon = new MapIcon();

                myIcon.setImage(new HuilesImg(),22,32);
              embeddedIconPoi = new Poi(new LatLng(-11.71199, 12.647725));
              embeddedIconPoi.rolloverAndInfoTitleText = "Info about that place";
              embeddedIconPoi.icon = myIcon;
              myMap.addShape(embeddedIconPoi);

VisibleButton();

          }      

//This function makes a button visible at the left corner of the screen
function VisibleButton():void{
              var skip:MovieClip;
              skip = new skype
              addChild(skip);
              skip.addEventListener(MouseEvent.CLICK, closeMap, false, 0, true);

          }

//I'd like to close the map when the user click on the skip button

          function closeMap(e:MouseEvent):void{

              trace("ferme carte");
              trace(myMap.parent == null);

              if (myMap.parent == this)
              {
                   removeChild(myMap);
              }
          }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24378439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档