我是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:呼叫可能 未定义的方法笑脸。
我对这个问题的位置感到困惑。提前谢谢。
答案 0 :(得分:2)
您的“笑脸”尚未与ActionScript一起使用。就你的脚本而言,它不存在。
在库中的“Smiley”的符号属性中,选中“Export for ActionScript”。
答案 1 :(得分:0)
在您的图书馆中,您需要导出Smiley for Actionscript。打开库,选择方块,然后通过右键单击或cmd +单击选择“属性”。如果它尚未打开,请向下旋转“高级”部分,然后选择“导出for Actionscript”。在“类”字段中,您可能会看到与库中的名称相同的名称“Smiley”。这将创建自己的类,该类具有您在Flash中设计的影片剪辑的属性。
在此字段下方,您将看到“基类”,它应该具有“flash.display.MovieClip”。这意味着你的笑脸已经是一个movieclip,它只是扩展为一个额外的特殊类型,现在称为Smiley,因此当你实例化时,你不必在代码中将它声明为MovieClip,因为Smiley已经是一个MovieClip。
现在回到你的行动,你将把实例化的行改为:
var smiley:Smiley = new Smiley();
addChild(smiley);
通常,您希望首先调用类的构造函数,即:“new Smiley()”,然后将其添加到显示列表中,而不是尝试一次完成所有操作。