如何更改单击的按钮

时间:2013-09-11 18:23:22

标签: actionscript-3

目前我有3个名称为 start_btn about_btn stats_btn 的按钮,这些按钮是movieClips。其中3个位于容器中(也是一个名为 group_btn 的movieClip。所以,我的问题是,当我只为所有3个鼠标使用一个MouseEventListener时,我如何告诉确切的元素更改其ScaleX和ScaleY。 我确实认为生病必须检测哪一个被点击但是之后,我不知道该怎么做。 所以到目前为止我有这个代码:

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)

    }

1 个答案:

答案 0 :(得分: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;
}