0

我正在使用gotoandplay此代码逐个场景链接。如果我在同一时间线(内部)中使用它,它可以正常工作,但是当我将此代码作为一个类使用时,我会收到此错误:

调用可能未定义的方法 MovieClip。

我在时间轴上使用此代码

b_enter.addEventListener(MouseEvent.CLICK, fl_ClickToGoToScene_enter1);
function fl_ClickToGoToScene_enter1(event:MouseEvent):void
{
    MovieClip(this.root).gotoAndPlay("p menu", "Menu");
}

我在课堂上使用此代码

package  {

    import flash.display.SimpleButton;


    public class next extends SimpleButton {


        public function next() {
            // constructor code
            MovieClip(this.root).gotoAndStop("p2", "page2")
        }
    }

}

您可以使用此链接下载 Flash 文件

4

2 回答 2

0

只是快速猜测一下,它似乎找不到 MovieClip 方法...尝试导入 MovieClip 类。

在课堂上的其他导入语句旁边添加:

import flash.display.MovieClip;
于 2012-12-25T06:58:55.747 回答
0

如果我理解正确,您正在尝试制作自定义按钮类:

所以你可以扩展一个 flash.display.Sprite 然后为每个状态添加 4 个 DiplayObjects(MovicLip 或 Sprite 或 Bitmap),向上等。然后监听适当的鼠标事件 MouseEvent.ROLL_OVER、MouseEvent.ROLL_OUT 等。 . 然后根据需要切换四个显示的可见性。还设置时间轴上的状态并制作扩展 flash.display.Movieclip 的文档类并监听不同的鼠标事件并调用 gotoAndStop(frame/label); 例如:假设您将使用第二种解决方案,并在您的 fla 中设置 4 种不同的状态 over、up、down 和 click

package
{
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.events.MouseEvent;

    public class MyCustomButton extends MovieClip
    {
        public function MyCustomButton()
        {
            if(stage)init();
            else this.addEventListener(Event.ADDED_TO_STAGE, init);
        }
        protected function init(event:Event=null):void
        {
            this.addEventListener(MouseEvent.ROLL_OVER,onOver);
            this.addEventListener(MouseEvent.ROLL_OUT,onOut);
            this.addEventListener(MouseEvent.CLICK,onClick);
            this.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
        }

        protected function onDown(event:MouseEvent):void
        {
            //  gotoAndStop("down") or gotoAndPlay("down")
        }

        protected function onClick(event:MouseEvent):void
        {
            //  gotoAndStop("click") or gotoAndPlay("click")
        }

        protected function onOut(event:MouseEvent):void
        {
            //  gotoAndStop("out") or gotoAndPlay("out")
        }

        protected function onOver(event:MouseEvent):void
        {
            //  gotoAndStop("over") or gotoAndPlay("over")
        }
    }
}
于 2012-12-25T16:53:37.597 回答