当用户单击“后退”按钮时,我试图关闭地图。
我正在为Adobe应用程序使用AS3。
为了关闭函数,我尝试用removeChild(MyMap)调用一个函数,但是它不能工作(错误#2025:提供的显示对象必须是调用方的子函数)。
你知道我该怎么做吗?
这是我的密码:
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“的按钮。行动守则是:
goMapButton.addEventListener(MouseEvent.CLICK, callDisplayMap, false, 0, true);
function callDisplayMap(event:MouseEvent):void{
displayMap();
}在我的第12张图片中,我得到了一个动作代码:
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);
}发布于 2014-06-24 06:46:53
首先删除:
var MyMap:TileMap = new TileMap("KEY_OF_MAP");因为您已经准备好在第一行代码中启动map实例。
我不认为你会需要它后,第一次修复,但如果你仍然有错误,你可以用这个代替。
MyMap.parent.removeChild(MyMap);如下所示:
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);
}
}https://stackoverflow.com/questions/24378439
复制相似问题