2013-12-09 8 views
0

У меня есть несколько видеоклипов на сцене моего основного .fla с именем btn1-btn7, которые будут выступать в качестве кнопок. У меня есть файл класса с именем Functions.as, где прослушиватель событий создается при нажатии кнопки. onButtonClicked просто идет к кадру на временной шкале.Создание векторного массива клипов AS3

obj.addEventListener(MouseEvent.CLICK, onButtonClicked); 

Я бы хотел установить кнопкуMode, видимость и т. Д. Всех кнопок одновременно. Я занимаюсь этим несколько часов и не могу найти никаких решений. Теперь я изучаю их добавление к вектору (который для меня представляет собой новую концепцию), но я не уверен, как это сделать правильно. Это то, что у меня есть до сих пор.

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); 
      } 


     } 

Как бы я мог, например, добавить слушателя событий ко всем объектам? Я также установил для параметра buttonMode значение true и сделав их невидимыми одновременно. Я даже не знаю, можно ли это сделать. Заранее благодарю вас за любые предложения.

ответ

0

Я собираюсь предполагаю, что вы используете временную шкалу коды, и есть экземпляры кнопок уже размещенных на сцене. Итак, во-первых, создать вектор:

var _btns:Vector.<MovieClip> = new Vector.<MovieClip>; 
_btns.push(btn1,btn2,btn43....) //add all the buttons 

Чем, вы можете инициализировать свойства всех кнопок:

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); 
} 

Затем обработчик события:

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 
} 
+0

Спасибо вам большое за то, что помогли мне разобраться в этом. Теперь он функционирует правильно. – brianh

0

Вам просто нужно сделать то, что вы делаете, с свойством .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; 
    } 
} 
Смежные вопросы