我在我的Adobe Air应用程序中集成了MapQuest的地图(在AS3中)。
地图占用了我想要的所有屏幕。
但是,我想添加一个"返回"按钮,以便返回到上一个菜单。
下面是我的代码:
var NoumeaNord:TileMap = new TileMap("KEYcode");
//set the size of the map
NoumeaNord.size = new Size(800, 533);
//add the map to the sprite.
addChild(NoumeaNord);
NoumeaNord.addControl(new SMLargeZoomControl());
NoumeaNord.addControl(new MouseWheelZoomControl());
NoumeaNord.addShape(new Poi(new LatLng(-22.2758000,166.4580000)));
NoumeaNord.setCenter(new LatLng(-22.2758000,166.4580000),15);
function addBackBtn():void{
var back:MovieClip;
back = new backBtn
addChild(back);
back.x = 0;
back.y = 400;
setChildIndex(back,0);
}
不知道为什么,但是BackBtn不会在地图的前面!我试过setChildIndex(back,-1);但是它产生了一个错误:"RangeError: error #2006: index is off limit"。
你知道吗?
在这种情况下,我使用这样的holder:
private var bgHolder:Sprite;
private var contentHolder:Sprite;
private var menuHolder:Sprite;
在构造函数的某处,我运行了一个方法来设置holder。例如:
function setHolders()
{
bgHolder = new Sprite();
addChild(bgHolder);
contentHolder = new Sprite();
addChild(contentHolder);
menuHolder = new Sprite();
addChild(menuHolder);
}
然后我将我的内容添加到所需的holder中,在目标holder之间的任何顺序,我总是可以确保将我的内容添加到正确的"图层";
所以只需将后退按钮添加到menuHolder:
menuHolder.addChild(back);
不要担心将它添加到地图的下方或索引之外,因为在这种情况下,地图将被添加到contentHolder中!
希望有帮助!
这是因为你先添加了后退按钮确保先添加地图然后添加按钮