2012-06-13 43 views
1

我試圖將JSON加載到我的Flash程序中。 JSON與fla和swf文件位於同一個目錄中。我能夠加載JSON到一個字符串變量,當我做跟蹤時,我看到JSON。 JSON格式有效,請檢查:http://www.jsonlint.org/。 問題是當我嘗試將JSON解碼爲對象時。 我收到以下錯誤:「RangeError:錯誤#1506:指定的範圍無效。」 我正在使用來自ac3corelib的JSON庫來解碼字符串。 這裏是所有代碼:在AS3中加載JSON

import com.rational.serialization.json.JSON; 
import flash.display.Loader; 
import flash.external.ExternalInterface; 
import flash.events.IOErrorEvent; 
import flash.net.URLLoader; 

var _jsonLoader:URLLoader = new URLLoader(); 
_jsonLoader.load(new URLRequest("JSON.json")); 
_jsonLoader.addEventListener(Event.COMPLETE, processJson); 
_jsonLoader.addEventListener(IOErrorEvent.IO_ERROR, _notify); 

function _notify(e:IOErrorEvent):void 
{ 
    trace("error"); 
    e.target.removeEventListener(IOErrorEvent.IO_ERROR, _notify); 
} 
function processJson(e:Event):void 
{ 
    var stringJson:String; 
    var temp:Object; 
    stringJson = String (e.target.data); 
    trace(stringJson); 
    temp = JSON.decode(stringJson); 
trace(temp) 
} 

請告知爲什麼我得到這個錯誤

謝謝大家, 摩西·S,

+2

您可能要添加的JSON代碼,以及 - 這是一個解碼錯誤。 – weltraumpirat

回答

3

沒有看到你的JSON代碼,它是很難說。但是,您使用的是什麼版本的Flash?從Flash 11和Air 3.0(以及Flex 4.6)開始,您將獲得本機JSON支持。

看看本機分析器給你任何不同的信息:

temp = JSON.parse(stringJson); 
+0

我需要這個使用Flash Player 9的AS3項目。 – user1427658

+0

您可能只是在FP11中創建一個小的示例項目並嘗試一下?只是爲了獲得關於發生的事情的額外信息? (或向我們展示JSON,以便我們可以更好地幫助您) –

+0

這是JSON
{「pages」:[{「pageId」:「index」,「uiFlowType」:「main」,「pageName」:「Wellcome」}} ,{「pageId」:「contact」,「uiFlowType」:「formRedirect」,「offerName」:「ContactUs」}],「globalParams」:{「users」:[{「name」:「admin」 :[「modify」,「DBAccess」,「userMAnger」],「pages」:[{「name」:「index」,「flows」:[「masterpage」,「index」]}],「live」:false }],「params」:[{「key」:「debug」,「value」:「true」}],「strings」:[{「key」:「legalText」,「value」:「apilegalsimpletext」啓用「:true},{」key「:」agrreementText「,」value「:」 ClickHere tocheckoursite「,」enabled「:true}]} } – user1427658