Actionscript 3 使用闪存将bytearray流式传输到服务器
我可以使用以下代码轻松地将bytearray发送到服务器:Actionscript 3 使用闪存将bytearray流式传输到服务器,actionscript-3,flash,Actionscript 3,Flash,我可以使用以下代码轻松地将bytearray发送到服务器: var req:URLRequest = new URLRequest(_var1); req.contentType = 'application/octet-stream'; req.method = URLRequestMethod.POST; req.data = DATAS; var loader:URLLoader = new URLLoader(req); 在这个数据中,数据是一个bytearray,它已经准备好了
var req:URLRequest = new URLRequest(_var1);
req.contentType = 'application/octet-stream';
req.method = URLRequestMethod.POST;
req.data = DATAS;
var loader:URLLoader = new URLLoader(req);
在这个数据中,数据是一个bytearray,它已经准备好了,但我想发送实时生成的byterray,实际上没有长度
我想通过阵列进行流式传输,我如何才能做到这一点?您需要套接字连接:
var socket:Socket = new Socket();
socket.connect(host, port);
socket.addEventListener(Event.CONNECT, function(event:Event):void
{
socket.writeBytes(DATAS);
});
注释测试代码的UPD:
var _buffer:ByteArray = new ByteArray();
_buffer.writeByte(0xFF);
trace("_buffer=",ByteArrayUtil.getHexBytesString(_buffer));
var ou:ByteArray = new ByteArray();
ou.writeBytes(_buffer , 0 ,_buffer.length);
_buffer.clear();
trace("ou=\t", ByteArrayUtil.getHexBytesString(ou));
trace("_buffer=", ByteArrayUtil.getHexBytesString(_buffer));
public static function getHexBytesString(array:ByteArray, colons:Boolean=false, position:int = 0, len:int = 0):String {
var s:String = "";
if(!array)
return s;
if(len)
{
len += position;
len = Math.min(len, array.length);
}
else
len = array.length;
for (var i:int=position;i<len;i++) {
s+=("0"+array[i].toString(16)).substr(-2,2).toUpperCase();
if (colons && i<len-1) s+= "-";
}
return s;
}
@fsbmin:我还想将一些字节数组复制到另一个字节数组,并清除第一个字节数组,但意外的结果是,当我清除bytearray one时,bytearray 2将变为空,您知道问题出在哪里吗?::var ou:ByteArray=new ByteArray();ou.writeBytes(_buffer,0,_buffer.length)_buffer.position=0_buffer.clear();我对你的代码没有这个问题,ou字节数组没有被清除。可能是缓冲区从一开始就是空的。我用测试更新了我的答案。是的,是的,问题来自我,非常感谢,你对flash有很好的了解,谢谢
_buffer= FF
ou= FF
_buffer=