AS3:更改按钮上的手柄图形

时间:2012-02-27 11:27:03

标签: actionscript-3 mouseover

我想用自定义图形替换当使用buttonMode = true悬停在动画片段上时出现的小手柄。

有没有办法在我的整个应用程序中全局执行此操作,或者我必须转到每个按钮,添加MOUSE_OVER,MOUSE_OUT和MOUSE_MOVE处理程序,这些处理程序将隐藏并显示鼠标光标以及将handgraphics置于其上并定位它正确吗?

似乎乏味......

2 个答案:

答案 0 :(得分:1)

似乎有办法改变原生光标; http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/ui/Mouse.html#registerCursor()

但你必须只针对Flash Player 10.2+ ...

答案 1 :(得分:-1)

您可以编写一组MOUSE_OVER,MOUSE_MOVE和MOUSE_OUT处理程序,按照您的描述进行替换和定位,然后将侦听器添加到指向这些处理程序的所有按钮。请记住,相同的处理程序可用于多个对象。

或者,假设您的“按钮”是MovieClip,您可以编写一个自定义ActionScript类来扩展MovieClip,定义此默认功能,然后让所有按钮实例使用此类作为基础。见下文:

    public class ButtonMovieClip extends MovieClip {

        public function ButtonMovieClip() {
            addEventListener(MouseEvent.MOUSE_OVER, buttonOver);
            addEventListener(MouseEvent.MOUSE_OUT, buttonOut);
            addEventListener(MouseEvent.MOUSE_MOVE, buttonMove);
        }

        public function buttonOver(event:MouseEvent) {
            //Hide mouse and add replacement graphic
        }

        public function buttonOut(event:MouseEvent) {
            //Show mouse and remove graphic
        }

        public function buttonMove(event:MouseEvent) {
            //Position graphic where mouse should be
        }
    }

然后关键是确保所有按钮都是从这个类创建的(通过代码或从Flash IDE中创建)。