首先让我说我对Flash开发完全不熟悉,但不是OOP。我的任务是以面向对象的方式创建一个实时(意味着使用游戏循环)Flash游戏。我一直在网上关注指南,我想我已经掌握了基础知识,但我的播放器精灵没有出现。
我将图像导入Flash,然后将其转换为名为Player
的符号,现在它是一个影片剪辑。我将其导出为ActionScript,并调用了类com.Player
。
另外,我已将文档的类设置为com.Engine
(这是我计划将游戏循环调用到其他类的方法)。
然后,我在与com
相同的目录中创建了一个名为.fla
的目录。在该目录中,我创建了Engine.as
和Player.as
,这里是他们的代码:
package com {
import flash.display.MovieClip;
import flash.display.Stage;
public class Engine extends MovieClip {
public function Engine() {
// Create a player instance
var player:Player = new Player();
stage.addChild(player);
player.x = stage.stageWidth / 2;
player.y = stage.stageHeight / 2;
}
}
}
-
package com {
import flash.display.MovieClip;
public class Player extends MovieClip {
public function Player() {
}
}
}
据我所知,当我运行它时,应该让玩家出现在屏幕的中央,但事实并非如此。我已经验证了Engine
类和构造函数是使用trace("hello world")
调用的,我得到了那个输出。我也知道使用相同的方法调用Player
类的构造函数。我只是不明白为什么播放器没有出现在屏幕上。
如果我将Player
符号(正确的术语?)从我的库中拖到舞台上,播放器精灵就会出现......所以我知道附有图像。
任何人都知道会出现什么问题?提前谢谢你:)
答案 0 :(得分:0)
玩家精灵中有什么东西吗?如果您在.fla文件中制作了一个精灵,或者您应该从该名称扩展,那么:
public class Player扩展了PlayerSpriteNameThatIsInYourFla
或者您应该尝试在您的播放器类中绘制一些图形以检查您的班级是否实际显示:
public class Player extends MovieClip()
{
this.graphics.beginFill(0x00FF00);
this.graphics.drawRect(0,0,100,100);
this.graphics.endFill();
}
还要确保添加了所有正确的导入:)