Flash AS3如何设置舞台上按钮的索引?

时间:2012-08-21 01:40:57

标签: actionscript-3 flash

我手动将大约60个按钮添加到时间线。我需要指定每个索引,但索引是根据我从库中删除舞台上的对象的顺序给出的。 我不想通过名称以编程方式指定每个按钮的索引,因为没有简单的模式可供遵循。

private function buttonHandler(event:MouseEvent):void
        {
            event.target.parent.getChildIndex(event.target));
}

我可以获得所有这样的索引,但它们不是我想要的顺序。 谢谢

1 个答案:

答案 0 :(得分:1)

要手动更改索引的顺序,请使用addChildAt (DisplayObject, index) 如果你想要两个displayobject索引开关。请使用以下内容。 swapChildren(DisplayObject1,DisplayObject2) swapChildrenAt(index1,index2)

如果你看下面的图片,舞台上就会有一个MovieClip 6实例。但索引是任意的。取决于真正创建订单或从库中拖放订单。所以我按照顺序按名称重新排序索引。

enter image description here

import flash.display.MovieClip;

var mc:MovieClip;
for(var i:int = 0; i<this.numChildren; i++)
{
    mc = this.getChildAt(i) as MovieClip;
    trace("before clipName: " + mc.name);
}

//re-ordering
for(i = 0; i<this.numChildren; i++)
{
    mc = this.getChildByName("mc"+i) as MovieClip;
    addChildAt(mc,i);
}

for(i = 0; i<this.numChildren; i++)
{
    mc = this.getChildAt(i) as MovieClip;
    trace("after clipName: " + mc.name);
}

console:

before clipName: mc1
before clipName: mc4
before clipName: mc3
before clipName: mc5
before clipName: mc2
before clipName: mc0

after clipName: mc0
after clipName: mc1
after clipName: mc2
after clipName: mc3
after clipName: mc4
after clipName: mc5