Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.10.2011, 15:24
Профессор
Посмотреть профиль Найти все сообщения от Solovei95
 
Регистрация: 15.03.2011
Сообщений: 353

Фигня с ArrayBuffer
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.
Ответить с цитированием
  #2 (permalink)  
Старый 07.10.2011, 15:40
Профессор
Посмотреть профиль Найти все сообщения от Solovei95
 
Регистрация: 15.03.2011
Сообщений: 353

И вообще ОГРОМНЕЙШАЯ проблема с определением типа массива:
Вот мне дано: h (как uint32array). h может быть и другим типом! Как определить тип массива h?
Ответить с цитированием
  #3 (permalink)  
Старый 07.10.2011, 16:18
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от Solovei95
Как определить тип массива h?
Так как это встроенный тип, то можно проверить так:
Object.prototype.toString.call( uint32array ) == "[object Uint32Array]"
Ответить с цитированием
  #4 (permalink)  
Старый 07.10.2011, 16:50
Профессор
Посмотреть профиль Найти все сообщения от Solovei95
 
Регистрация: 15.03.2011
Сообщений: 353

Как переименовать Uint8Array в UnsignedChar ?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск