一种新的动作脚本,我只是想制作一个简单的tamagoci游戏。我已经编写了所有代码,但没有收到编译器错误,但由于某种原因,我也没有收到任何鼠标事件监听器的输出消息。这是我的所有代码,我真的找不到问题,任何帮助将不胜感激。谢谢。
package{
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class Main extends MovieClip{
public var feedButton:MovieClip;
public var tamagoci:MovieClip;
public var disButton:MovieClip;
public var dietButton:MovieClip;
public function Main() {
this.init();
}
private function init():void {
this.feedButton.addEventListener(MouseEvent.MOUSE_DOWN, onfeedMouseDownHandler);
this.disButton.addEventListener(MouseEvent.MOUSE_DOWN, ondisMouseDownHandler);
this.dietButton.addEventListener(MouseEvent.MOUSE_DOWN, ondietMouseDownHandler);
}
private function onfeedMouseDownHandler(event:MouseEvent)void{
this.tamagoci.scaleX += 0.1;
this.tamagoci.scaleY += 0.1;
}
private function ondisMouseDownHandler(event:MouseEvent)void{
this.tamagoci.gotoAndPlay(5);
}
private function ondietMouseDownHandler(event:MouseEvent)void{
this.tamagoci.scaleX -= 0.1;
this.tamagoci.scaleY -= 0.1;
}
答案 0 :(得分:0)
您使用的是Flash Professional吗?
您在此处在班级中声明您的变量类型;
public var feedButton:MovieClip;
public var tamagoci:MovieClip;
public var disButton:MovieClip;
public var dietButton:MovieClip;
但是在你的构造函数中,你所做的只是运行init();
public function Main() {
this.init();
}
所以,这可能是一些事情之一。最有可能的是你已经声明了你的变量,但你还没有初始化它们。您已创建了用于保存对象的变量,但根据您的代码,它们会被清空。更具体地说,不将对象分配给对象类型变量的变量或类属性将包含默认值null
。
您只需在init();
方法中添加条件,就可以在代码中证明这一点;
if(tamagoci == null){
trace("I haven't been assigned an object of type class yet!")
}
所以它可能是这3件事中的一件:
1:如果您已为这些类属性/变量编写了自己的类,则需要使用new
关键字对它们进行实例化。一般语法是;
variable_name = new ClassName(parameter_1, parameter_2);
如果您使用自己编写的类,则必须创建对象的实例,将其分配给变量,然后使用addChild();
将其添加到舞台。例如,假设您已经编写了自己的Tamagoci
类;
tamagoci =新的Tamagoci(); tamagoci.x = 100; //设置x位置 tamagoci.y = 200; //设置y位置 的addChild(tamagoci);
请注意Tamagoci
的使用。这只是一个例子,但这是类名,不应该与变量/属性名混淆。它可能很容易;
tamagoci = new MovieClip();
但是,这只是一个空的MovieClip。它需要一个属性才能在屏幕上显示。 Shape
,A Bitmap
或其他容器类对象,如MovieClip
或Sprite
(容器类允许您在其中嵌套显示对象)。但在基本层面上,必须包含一个可视组件才能出现在舞台上。
<强> 2 强>
您是否已将Main
作为文档课程?这是在播放Flash影片时自动调用的类。要设置此项,请单击您的舞台,然后在右侧的属性对话框的 PUBLISH 下,键入您的班级名称,即&#34; Main&#34;。
第3:强>
如果您已在Flash Professional库中创建了MovieClip,则需要转到库中,右键单击MovieClip,然后选择属性。从那里,您需要确保勾选 Export for Actionscript 。
现在,如果您点击舞台上的MovieClip,然后打开Flash Professional默认布局右上角的“属性”标签,则顶部右侧应为文本字段,如果您将鼠标悬停在它,实例名称将弹出为工具提示。这是您为舞台对象命名的地方。完成后,您可以在时间轴中访问它们。
如果您已完成此操作,则不需要在main
类中声明变量,因为Flash Professional已在舞台上声明这些变量并自动实例化