我有代码读取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中说“构建失败”没有错误
答案 0 :(得分:1)
这实际上是一个参考错误。
从AS3 SDK 4.5开始,JSON成为SDK中的本机类。在以前的版本中,您必须下载adobe序列化类才能访问JSON - 这可能是您的问题。
使用mxmlc时,它将使用sdk flex-config.xml中指定的所有包含的库进行编译。在FlashDevelop中,它只使用您包含的类。
解决方案:将adobe序列化类添加到项目中