AS3:为什么我会收到这么多错误 1120?

AS3: Why do I get so many error 1120s?

我今天在 Flash CC 中创建了一个新的 AS3 文档。我的舞台是空的。我将文档 class 制作成一个名为 test.as 的 .as 文件 - 我的 .fla 也被称为 test.fla.

所以我创建了一个名为mirror的movieclip,并给它一个AS3链接名mirror。我把它放在我的图书馆里,然后从舞台上删除了它。然后我转到我的外部 .as 文件并写了这个:

package  {

    import flash.display.MovieClip;
    import flash.events.MouseEvent;


    public class test extends MovieClip {

        public var mirror1:MovieClip = new mirror();

        public function dragMirror1(event:MouseEvent):void
        {
            mirror1.startDrag();
        }
        public function releaseMirror1(event:MouseEvent):void
        {
            mirror1.stopDrag();
        }
        mirror1.addEventListener(MouseEvent.MOUSE_DOWN,dragMirror1);
        mirror1.addEventListener(MouseEvent.MOUSE_UP,releaseMirror1);
    }

}

这似乎是完全无害的代码,但是当我 运行 代码时我得到了四个错误:

C:\Users\Raphael\Creative Cloud Files\LightStage\Testing\test.as, Line 20, Column 48    1120: Access of undefined property releaseMirror1.
C:\Users\Raphael\Creative Cloud Files\LightStage\Testing\test.as, Line 20, Column 3 1120: Access of undefined property mirror1.
C:\Users\Raphael\Creative Cloud Files\LightStage\Testing\test.as, Line 19, Column 50    1120: Access of undefined property dragMirror1.
C:\Users\Raphael\Creative Cloud Files\LightStage\Testing\test.as, Line 19, Column 3 1120: Access of undefined property mirror1.

有人知道为什么会这样吗?也许我遗漏了一些基本的东西,但我已经创建了一些新的 .fla 和 .as 文件来测试它并且它一直在发生,即使我重写代码并使用不同的 AS3 链接名称也是如此。

为避免这些错误,在将 mirror 对象添加到舞台后,您必须在 class 的构造函数中使用 mirror1.addEventListener()

public class Test extends MovieClip {

    public var mirror1:MovieClip = new mirror();

    public function Test():void 
    {
        addChild(mirror1);
        mirror1.addEventListener(MouseEvent.MOUSE_DOWN, dragMirror1);
        mirror1.addEventListener(MouseEvent.MOUSE_UP, releaseMirror1);
    }
    public function dragMirror1(event:MouseEvent):void
    {
        mirror1.startDrag();
    }
    public function releaseMirror1(event:MouseEvent):void
    {
        mirror1.stopDrag();
    }

}

希望能帮到你。