0

我是 Actionscript 的新手,这是我自己的第一个“脚本”之一,如果这很明显,请原谅我。

我有一个名为“笑脸”的电影剪辑

这是我在动作层第1 帧中的动作脚本

stage.addEventListener(MouseEvent.MOUSE_MOVE, mousePosition);

var smiley:MovieClip = addChild(new Smiley) as MovieClip; // **ERROR HERE**
stage.addEventListener(MouseEvent.MOUSE_DOWN,toggleSmiley);
stage.addEventListener(MouseEvent.MOUSE_UP,toggleSmiley); 

function mousePosition(event:MouseEvent) {
smiley.x = mouseX; smiley.y = mouseY;

}

function toggleSmiley(e:MouseEvent):void
{
    smiley.visible = (e.type == MouseEvent.MOUSE_DOWN); 
    }

请参阅上面标有“ERROR HERE”的行,这就是 Flash 引发错误的地方。
我收到此错误:

场景 1,图层“动作”,第 1 帧,第 6 行 1180:调用可能未定义的方法 Smiley。

我对问题出在哪里感到困惑。提前致谢。

4

2 回答 2

2

您的“笑脸”尚未与 ActionScript 关联使用。据您的脚本所知,它不存在。

在库中,在“Smiley”的符号属性中,选中“Export for ActionScript”。

于 2013-06-02T18:39:34.010 回答
0

在您的库中,您需要为 Actionscript 导出您的笑脸。打开您的库,选择正方形,然后通过右键单击或 cmd+单击选择“属性”。如果“高级”部分尚未打开,请向下旋转它,然后选择“导出为 Actionscript”。在“类”字段中,您可能会看到与库中相同的名称“笑脸”。这将创建自己的类,该类具有您在 Flash 中设计的影片剪辑的属性。

在此字段下方,您会看到“基类”,它应该有“flash.display.MovieClip”。这意味着您的笑脸已经是一个电影剪辑,并且它只是被扩展为一个现在称为笑脸的额外特殊类型,所以当您实例化它时,您不必在代码中将其声明为电影剪辑,因为笑脸已经影片剪辑。

现在回到您的操作,您将实例化它的行更改为:

var smiley:Smiley = new Smiley();
addChild(smiley);

一般来说,你希望先调用一个类的构造函数,即:“new Smiley()”,然后将其添加到显示列表中,而不是试图一次全部完成。

于 2013-06-15T07:27:22.050 回答