我今天在Flash CC上开始了一个新的AS3文档。我的舞台空无一人。我将文档类设为一个名为test.as的.as文件 - 我的.fla也称为test.fla。
所以我创建了一个名为mirror的动画片段,并为它提供了一个镜像的AS3链接名称。我把它放在我的库中并从舞台上删除它。然后我去了我的外部.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链接名称。
答案 0 :(得分:0)
为避免这些错误,您必须在将mirror1.addEventListener()
对象添加到舞台后,在班级的构造函数中使用mirror
:
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();
}
}
希望可以提供帮助。