JavaScript падает на отрисовке canvas - что делаю не так?
От: Basil2 Россия https://starostin.msk.ru
Дата: 25.02.19 16:26
Оценка:
С веб-сокета приходит сообщение, в нем M на N пикселей для отрисовки. Далее код такой:
function onOpen(this) {
    const canvas = <HTMLCanvasElement>document.getElementById("TheMap");
    canvas.width = window.innerWidth;
    canvas.height = window.innerWidth; // e.g. full screen square

    const ctx = canvas.getContext("2d");
    ctx.imageSmoothingEnabled = true;
  
    this.onmessage = function(event) {
        onMessage(canvas, ctx, event);
    }
}

function onMessage(canvas, ctx, event) {
    const reader = new FileReader();
    
    reader.onloadend = function(evt) {
        const data = <ArrayBuffer>reader.result;
        const array8 = new Uint8ClampedArray(data);
        PaintFrame(canvas, ctx, array8);
    };
    reader.readAsArrayBuffer(event.data);
}

function PaintFrame(canvas, ctx, data): void {
    const width = From2Bytes(data[0], data[1]);
    const height = From2Bytes(data[2], data[3]);
    const imageData = new ImageData(data.slice(4), width, height);

    canvas.width = width;
    canvas.height = height;
    ctx.putImageData(imageData, 0, 0);
}


Все это завернуто в PhoneGap и выложено как приложение. Говорят, что на старых планшетах оно через 2-3 минуты вылетает с ошибкой.

Куда копать??
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.