Flash Player 11和AIR 3.0的JSON编码
我有以下代码: thinkGearSocket=新套接字() 它适用于flash player 10,但对于flash player 11,我会收到一个错误消息: 1061:通过静态类型为flash.net:socket的引用调用可能未定义的方法encode 我在解码时遇到了同样的错误:Flash Player 11和AIR 3.0的JSON编码,json,actionscript-3,air,Json,Actionscript 3,Air,我有以下代码: thinkGearSocket=新套接字() 它适用于flash player 10,但对于flash player 11,我会收到一个错误消息: 1061:通过静态类型为flash.net:socket的引用调用可能未定义的方法encode 我在解码时遇到了同样的错误: private function dataHandler(e : ProgressEvent){ //read data from the socket var packetString
private function dataHandler(e : ProgressEvent){
//read data from the socket
var packetString : String = thinkGearSocket.readUTFBytes(thinkGearSocket.bytesAvailable);
thinkGearSocket.flush();
//split the data into an array
var packets : Array = packetString.split(/\r/);
var data:Object;
//iterate through array elements
for each (var packet:String in packets){
//sometimes the packet is empty
if(packet != "") {
try {
data = JSON.decode(packet);
//trace(packet);
} catch ( jError: JSONParseError) {
// do exception handling here
label1.text = jError.text;
}
但我改变了:
data = JSON.decode(packet);
致:
现在我没有发现这部分的错误。如何修复Flash player 11和AIR 3.0的编码部分?您需要使用
stringify
方法,而不是对Flash 11或更高版本进行编码
stringify(value:Object, replacer:* = null, space:* = null):String
您可以在AS3 livedocs for stringify中看到更多信息
data = JSON.parse(packet);
stringify(value:Object, replacer:* = null, space:* = null):String