放一个"回来"嵌入地图前面的按钮

时间:2014-06-23 05:35:01

标签: actionscript-3 air mapquest

我在我的Adobe Air应用程序(在AS3中)中集成了MapQuest中的地图。

地图正按照我的要求拍摄所有屏幕。

但是,我想添加一个“后退”按钮,以便返回上一个菜单。

这是我的代码:

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:错误#2006:索引是关闭限制”。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在这种情况下,我使用这样的持有人:

private var bgHolder:Sprite;
private var contentHolder:Sprite;
private var menuHolder:Sprite;

在构造函数的某处,我运行一个方法来设置我的持有者。例如:

function setHolders() 
{
    bgHolder = new Sprite();
    addChild(bgHolder);

    contentHolder = new Sprite();
    addChild(contentHolder);

    menuHolder = new Sprite();
    addChild(menuHolder);
}

然后我只是按照目标持有者之间的任何顺序将我的内容添加到所需的持有者,我总是可以确保将我的内容添加到正确的“图层”;

所以只需将后退按钮添加到menuHolder:

menuHolder.addChild(back);

不要担心将其添加到地图下方或索引之外,因为在这种情况下,地图会被添加到contentHolder!

希望有所帮助!

答案 1 :(得分:0)

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