2013-02-12 42 views
-1

我有讀取JSON文件的代碼來導入我正在製作的遊戲中關於某個關卡的信息。代碼正在運行並編譯正常,直到我每次嘗試構建時突然出現,FlashDevelop開始錯誤地「構建失敗」而未實際發出錯誤。AS3訪問未定義的屬性錯誤

我通過mxmlc編譯運行的代碼,給我一個錯誤信息,並返回一個錯誤說

VAR級別:對象= JSON.decode:本着「錯誤未定義的屬性JSON的訪問」 (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中是說:「構建失敗」,並沒有錯誤

回答

1

這是其實是一個參考錯誤。

從AS3 SDK 4.5開始,JSON成爲SDK中的本地類。在以前的版本中,您將不得不下載Adobe序列化類來訪問JSON - 這可能是您的問題。

當使用mxmlc時,它將使用您的sdk flex-config.xml中指定的所有包含的庫進行編譯。在FlashDevelop中,它只會使用你包含的類。

解決方法:添加土坯序列化類項目

+0

,但它是事前的工作,我還沒有更新的SDK或任何東西,如果我嘗試導入序列化,一個我在我的src目錄下只有一個可用 我離開flashdevelop關閉了一會兒,然後重新打開它,它將它自行排除......這有點搞砸了,也許有一些flashdevelop必須刷新的文件?不知道... – 2013-02-12 21:48:28

+0

只要它有效。 – 2013-02-13 14:49:37

+0

我會將您的解決方案標記爲正確。雖然它沒有解決我的問題,但它似乎是解決其他人有這種mxmlc錯誤... – 2013-02-13 20:59:51

相關問題