我试图创建一个Flash游戏,但我的课程遇到了麻烦。我在主脚本上导入类。他们进口好了,我已经测试过了。但我不知道如何在另一个类中使用类
这是我到目前为止所得到的:
class Class.Player {
public static var self:MovieClip;
public static var bullet:Class.Bullet;
function controls() {
//Shoot
if (Key.isDown(Key.SPACE)) {
bullet = new Bullet(100, 100);
}
}
它加载类并声明变量,但它声称"子弹"不是现有的方法。它是一个现有的方法,当我从主脚本调用它时它可以工作。
另外,我是否需要声明像public static var bullet:Class.Bullet;
这样的类?这是对我有用的唯一方法,但想知道是否有更好的方式?
答案 0 :(得分:1)
看起来你的课程命名有问题。您不必调用类Class.Name。只需使用名称。
在您的情况下,您可以拥有一个名为
的文件Player.as
有了这个内容:
package {
import flash.display.MovieClip;
public class Player extends MovieClip {
public private var bullet:Bullet;
public function Player(){
//constructor
}
function controls() {
//Shoot
if (Key.isDown(Key.SPACE)) {
bullet = new Bullet(100, 100);
}
}
}
}
然后是一个名为
的文件Bullet.as
有了这个内容:
package {
import flash.display.MovieClip;
public class Bullet extends MovieClip {
public function Bullet(x:Number, y:Number){
//constructor
}
}
}
您可以在此处阅读有关创建和使用自定义类的更多信息:http://www.flashandmath.com/bridge/intro/class.html
答案 1 :(得分:0)
您将package information放在班级名称中。我不知道这对你来说是如何编译的(特别是考虑到Class是一个保留字。
您的文件应该更像:
package somePackage {//somePackage instead of the reserved word Class you were using import someOtherPackage.Bullet; public class Player extends MovieClip { public var bullet:Bullet; public function Player():void { super(); //other constructor logic here } } }