在嵌入地图的前面放置一个"back"按钮



我在我的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中!

希望有帮助!

这是因为你先添加了后退按钮确保先添加地图然后添加按钮

相关内容

最新更新