私は過去数日間、これを理解しようとして頭を悩ませてきました:
私は現在、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));
}
奇妙なことに、最初の 2 つのレベルは問題なく動作し、3 番目以降はエラーが発生します。
これは、レベルを変更するために使用するコードです。
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
私はかなり単純な間違ったことをしていると思いますか?どんな助けでも大歓迎です。乾杯 :)