2013-06-02 38 views
0

我是Actionscript的全新产品,这是我自己的第一个“脚本”,所以如果明显的话,请原谅我。Actionscript 3:调用未定义的方法

我有一个名为 “笑脸”

一个影片剪辑,这是我动作操作层

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); 
    } 

见1线条为标志“ERROR这里“上面,这就是Flash在抛出错误。
我收到此错误:

Scene 1, Layer 'actions', Frame 1, Line 6 1180: Call to a possibly undefined method Smiley.

很困惑,问题出在哪里。提前致谢。

回答

2

您的“笑脸”尚未链接到ActionScript的使用。就你的脚本所知,它不存在。

在库中的“Smiley”的符号属性中,选中“导出为ActionScript”。

+0

Perfecto!非常感谢你! :) – Ryan

0

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

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

现在回到你的行动,你会改变你初始化它行:

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

一般情况下,你想先调用类的构造函数,即:“新的笑脸()“,然后将其添加到显示列表中,而不是一次尝试完成。

相关问题