如何使用类属性使用gotoandplay场景链接(外部code.as)

时间:2012-12-25 06:25:54

标签: actionscript-3 flash flash-cs5

我使用此代码使用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")
        }
    }

}

您可以使用此link

下载Flash文件

2 个答案:

答案 0 :(得分:0)

只是一个快速的猜测,它看起来无法找到MovieClip方法...尝试导入MovieClip类。

添加您班级中的其他导入声明:

import flash.display.MovieClip;

答案 1 :(得分:0)

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

所以你可以扩展flash.display.Sprite然后为每个状态添加4个DiplayObjects(MovicLip或Sprite或Bitmap),up等。 然后监听适当的鼠标事件MouseEvent.ROLL_OVER,MouseEvent.ROLL_OUT等...然后根据需要切换四个显示的可见性。 还设置时间轴上的状态,并创建扩展flash.display.Movieclip的文档类,并监听不同的鼠标事件并调用gotoAndStop(frame / label); 例如 : 假设你将使用第二个解决方案,并在你的fla中设置4个不同的状态,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")
        }
    }
}