-1

JSON ファイルを読み取って、作成中のゲームのレベルに関する情報をインポートするコードがあります。コードは正常に実行され、コンパイルされていましたが、ビルドしようとするたびに突然、FlashDevelop が実際にエラーを出さずに「ビルドに失敗しました」というエラーを開始しました。

コードを mxmlc コンパイラで実行すると、エラー メッセージが表示され、次の行に「エラー: 未定義のプロパティ JSON へのアクセス」というエラーが返されました。

var level:Object = JSON.decode(json);

JSON ライブラリがファイルの先頭に「import com.adobe.serialization.json.JSON;」と明確に含まれているため、これは紛らわしいですが、このエラーはそれ自体で完全に発生し始めました。

package
{
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.utils.ByteArray;
import net.flashpunk.Entity;
import com.adobe.serialization.json.JSON;

public class LevelParser
{
    public static function GetLevelByID(ID:int, source:Class):Level
    {
        // Store new entity
        var populated:Vector.<Entity> = new Vector.<Entity>();

        // Parse file into string
        var bytes:ByteArray = new source();
        var json:String = bytes.readUTFBytes(bytes.length);
        var level:Object = JSON.decode(json);

        // Find correct level
                    ...

編集: 奇妙なことに、それを呼び出す行とこの関数をコメントアウトすると、コードは mxmlc で正常にコンパイルされますが、Flashdevelop ではエラーなしで「ビルドに失敗しました」と表示されます

4

1 に答える 1

1

これは実際には参照エラーです。

AS3 SDK 4.5 以降、JSON は SDK 内のネイティブ クラスになりました。以前のバージョンでは、adobe serialize クラスをダウンロードして JSON にアクセスする必要がありましたが、これが問題になる可能性があります。

mxmlc を使用すると、sdk flex-config.xml で指定されたすべての付属ライブラリでコンパイルされます。FlashDevelop では、含めたクラスのみを使用します。

解決策: adobe serialize クラスをプロジェクトに追加します。

于 2013-02-12T21:04:30.090 に答える