0

目前我有 3 个名为start_btnabout_btnstats_btn的按钮,它们是movieClips。它们都在一个名为group_btn的容器(也是一个movieClip)中。所以我的问题是我如何告诉确切的元素来改变它的ScaleX和 ScaleY,当我为所有 3 个只使用一个 MouseEventListener 时。我确实认为我必须检测到哪个被点击了,但是之后我不知道该怎么做。所以到目前为止我有这个代码:

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)

    }
4

1 回答 1

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;
}
于 2013-09-11T18:28:04.953 回答