Вход

Просмотр полной версии : Фигня с ArrayBuffer


Solovei95
07.10.2011, 15:24
var Stream = function(buffer){
this.off = 0;
this.bin = buffer;
}

Stream.prototype.read = function(h,offset,length){
var x = new Uint8Array(this.bin,this.off,length);
h.set(x.buffer,offset);
this.off += length;
}

Stream.prototype.seek = function(h,length){
this.off += length;
}

Stream.prototype.feof = function(){
return (this.off >= this.bin.byteLength);
}

Когда делаю:
...
buf = new Uint32Array(1);
st.read(buf,0,4);
...
Сталкиваюсь с проблемой №1: typedarray.set не поддерживает arrayBuffer. А это единственный способ правильно прочитать 4 байта.
Помогите как раз с arrayBuffer.

Solovei95
07.10.2011, 15:40
И вообще ОГРОМНЕЙШАЯ проблема с определением типа массива:
Вот мне дано: h (как uint32array). h может быть и другим типом! Как определить тип массива h?

Sweet
07.10.2011, 16:18
Как определить тип массива h?
Так как это встроенный тип, то можно проверить так:
Object.prototype.toString.call( uint32array ) == "[object Uint32Array]"

Solovei95
07.10.2011, 16:50
Как переименовать Uint8Array в UnsignedChar ?