2013-09-11 3 views
0

В настоящее время у меня есть 3 кнопки с именами start_btn, about_btn и stats_btn которые movieClips.All 3 из них находятся в контейнере (также MovieClip) с именем group_btn. Так что мой вопрос заключается в том, как я могу указать точный элемент, чтобы изменить его ScaleX и ScaleY, когда im использует только один MouseEventListener для всех трех из них. Я сделал цифру, что вам нужно определить, какой из них щелкнут, но потом, после этого я не знаю, что делать. поэтому у меня есть этот код до сих пор:Как изменить кнопку Clicked

private function onAddedToStage(eve:Event):void { 
     trace("we are good to go"); 
     this.group_btn.start_btn.addEventListener(MouseEvent.MOUSE_OVER, makeButtonBigger) 
     this.group_btn.start_btn.addEventListener(MouseEvent.MOUSE_OUT, makeButtonSmaller) 
     this.group_btn.about_btn.addEventListener(MouseEvent.MOUSE_OVER, makeButtonBigger) 
     this.group_btn.about_btn.addEventListener(MouseEvent.MOUSE_OUT, makeButtonSmaller) 
     this.group_btn.stats_btn.addEventListener(MouseEvent.MOUSE_OVER, makeButtonBigger) 
     this.group_btn.start_btn.addEventListener(MouseEvent.MOUSE_OUT, makeButtonSmaller) 

    } 

private function makeButtonBigger(ev:MouseEvent):void{ 
     var nameOfButton:String = ev.currentTarget.name; 
     //this.group_btn.nameOfButton.scaleX = 1.2 <--- doesnt work 
     trace(nameOfButton) 

    } 

ответ

0

Вы должны получить доступ к свойству с помощью квадратных скобок; то, как вы это делаете, подразумевается, что есть кнопка, которая буквально называется «nameOfButton», поэтому она терпит неудачу. Попробуйте следующее:

private function makeButtonBigger(ev:MouseEvent):void{ 
    var nameOfButton:String = ev.currentTarget.name; 
    this.group_btn[nameOfButton].scaleX = 1.2; 
    trace(nameOfButton); 
} 

Это будет использовать фактическую захваченную строку, а не само имя переменной.

Хотя, вы также можете получить доступ к кнопке непосредственно от мероприятия currentTarget собственности:

private function makeButtonBigger(ev:MouseEvent):void{ 
    ev.currentTarget.scaleX = 1.2; 
} 
Смежные вопросы