Actionscript 3 创建电影剪辑的矢量数组AS3

Actionscript 3 创建电影剪辑的矢量数组AS3,actionscript-3,vector,flash-cs6,Actionscript 3,Vector,Flash Cs6,我有几个电影剪辑在我的主。佛罗里达州命名为btn1-btn7,将作为按钮的阶段。我有一个名为Functions.as的类文件,单击按钮时在其中创建事件侦听器。onButtonClicked只是指向时间线上的一个帧 obj.addEventListener(MouseEvent.CLICK, onButtonClicked); 我希望能够同时设置所有按钮的按钮模式、可见性等。我已经研究了几个小时,没有找到任何解决方案。我现在正在考虑将它们添加到向量中(这对我来说是一个新概念),但我不确定如何正确

我有几个电影剪辑在我的主。佛罗里达州命名为btn1-btn7,将作为按钮的阶段。我有一个名为Functions.as的类文件,单击按钮时在其中创建事件侦听器。onButtonClicked只是指向时间线上的一个帧

obj.addEventListener(MouseEvent.CLICK, onButtonClicked);
我希望能够同时设置所有按钮的按钮模式、可见性等。我已经研究了几个小时,没有找到任何解决方案。我现在正在考虑将它们添加到向量中(这对我来说是一个新概念),但我不确定如何正确执行。这就是我目前所拥有的

public var buttons:Vector.<MovieClip >  = new Vector.<MovieClip > ();


        function addButtons()
        {
            buttons.push(btn1,btn2,btn3,btn4,btn5,btn6,btn7);

            for (var i:int; i<buttons.length; i++)
            {
                trace(buttons[i].name);
            }


        }
公共变量按钮:向量新载体。();
函数addButtons()
{
按钮。按下(btn1、btn2、btn3、btn4、btn5、btn6、btn7);

对于(var i:int;i您只需在示例代码中使用.name属性即可。您需要循环遍历数组中的每个按钮(或向量,如果您愿意)。下面是一个如何设置buttonMode属性的示例:

function setButtonMode(b:Boolean):void {
    for(var i:int=0; i<buttons.length; i++) {
        var btn:MovieClip = buttons[i]; //store the current reference in a var for faster access
        btn.buttonMode = b;
        btn.mouseChildren = !b;
    }
}
函数setButtonMode(b:Boolean):void{

对于(var i:int=0;i我将告诉您使用时间线代码,并且已经在舞台上放置了按钮的实例。因此,首先,创建向量:

var _btns:Vector.<MovieClip> = new Vector.<MovieClip>;
_btns.push(btn1,btn2,btn43....) //add all the buttons
var\u btns:Vector.=新矢量。;
_按(btn1、btn2、btn43…)//添加所有按钮
然后,您可以初始化所有按钮的属性:

var _mc:MovieClip;//helper var
for(var i:int=0,i<_btns.length;i++)
{
   _mc = _btns[i];
   _mc.visible = false;
   _mc.buttonMode = true;
   _mc.addEventListener(MouseEvent.CLICK, onClick);
}
var\u mc:MovieClip;//helper var

对于(var i:int=0,我非常感谢你帮我解决这个问题。它现在可以正常工作了。
function onClick(e:MouseEvent):void
{
  for(var i:int=0,i<_btns.length;i++)//reset all the buttons
  {
    _btns[i].visible = false;
  }

  _mc = MovieClip(e.eventTarget);
  _mc.visible = true; //make visible the clicked one
}