获取错误#1007:尝试对非构造函数进行实例化

时间:2013-03-24 10:31:36

标签: xml actionscript-3

过去几天我一直在绞尽脑汁试图弄清楚这一点:

我目前正在使用Flashpunk制作基于关卡的游戏。我处理级别的方法是简单地将OGMO编辑器文件(它基本上只是一个具有不同扩展名的xml文件)传递给数组,如下所示:

public static var worldOneList:Array = new Array(LEVEL_WORLD_1_1, LEVEL_WORLD_1_2,etc..);
public static var worldTwoList:Array = new Array(LEVEL_WORLD_1_1, LEVEL_WORLD_1_2,etc..);

public static var worldLists:Array = new Array(worldOneList,worldTwoList,etc...);

然后以处理地图创建和级别逻辑的类的形式调用它:

    public static function toLevel(worldID:int, levelID:int):void
    {
        FP.world = new LevelBase(worldLists[worldID][levelID]);
    }

我可以通过级别选择屏幕访问级别,但是在完成一个级别并选择前进到下一个级别后,我会被抛出:

Error #1007: Instantiation attempted on a non-constructor.

堆栈顶部指向(在FP中):

        public static function getXML(file:Class):XML
    {
        var bytes:ByteArray = new file;
        return XML(bytes.readUTFBytes(bytes.length));
    }

奇怪的是,前两个级别会很好,然后是第三个级别,之后的任何级别,它都会引发错误。

这是我用来改变等级的代码:

if (GlobalVar.currentLevel[1] != GlobalVar.maxLevelsInSet)
{
            LevelLists.toLevel(GlobalVar.currentLevel[0], GlobalVar.currentLevel[1] + 1);
}

读取ogmo文件的代码(在LevelBase.as中):

public function LevelBase(levelFile:Class)
{

        levelData = FP.getXML(levelFile); //Parse the .oel file and give data to levelData

我猜我在做一些非常简单的错误?任何帮助,将不胜感激。干杯:)

1 个答案:

答案 0 :(得分:0)

好吧,我看不出GlobalVar是什么,或者是currentLevel,但是你的评论是在最后添加一个数字,而不是添加 - 看起来GlobalVar.currentLevel [1]是一个字符串。因此,为了添加值,首先转换为int或Number,而不是操作。