【发布时间】:2014-03-13 08:45:20
【问题描述】:
我目前已经尝试过类似的方法,但不幸的是它无法编译。
public function processPacket(event:PacketEvent):void {
var packetType:int = event.packetType;
var packetData:String = event.packetData;
var size:int = ((((byte)packetData.charAt(0)) & 0xff) << 24) | ((((byte)packetData.charAt(1)) & 0xff) << 16) |
((((byte)packetData.charAt(2)) & 0xff) << 8) | (((byte)packetData.charAt(3)) & 0xff);
//...
//TODO: Retrieve String based on the size above.
// processedSize += size;
//Then if(packetData.length > processedSize) size = old string +1
}
我得到的错误
C:\src\flash.mxml(111): Error: Syntax error: expecting rightparen before packetData.
var size:int = ((((byte)packetData.charAt(0)) & 0xff) <<
24) | ((((byte)packetData.charAt(1)) & 0xff) << 16) |
C:\src\flash.mxml(111): Error: Syntax error: expecting semicolon before rightparen.
var size:int = ((((byte)packetData.charAt(0)) & 0xff) <<
24) | ((((byte)packetData.charAt(1)) & 0xff) << 16) |
是否有任何函数也可以在一行中完成,可能是通过字符串索引。
我知道我没有使用可能没有问题的 ByteArray。但是在套接字中我做了这样的事情
recvPacketData = socket.readUTFBytes(recvPacketSize);
所以我目前无法访问任何 ByteArray。
【问题讨论】:
标签: string actionscript-3 apache-flex integer endianness