Как прослушать или обнаружить, что текстура была загружена/применена к материалу/объекту в A-Frame?

Как понять, когда текстура применяется к объекту?

<a-entity material="src: url(mytexture.png)"></a-entity>

Событие material-texture-loaded (https://aframe.io/docs/0.2.0/components/material.html), но это, похоже, срабатывает только после того, как текстура полностью доставлена ​​в браузер (а не применяется на самом деле).


person ngokevin    schedule 16.08.2016    source источник


Ответы (1)


Событие materialtextureloaded применяется сразу после того, как мы установили material.map и material.needsUpdate с помощью three.js.

Мы обнаружили, что ширина/высота изображения текстуры не имеют разрешения степени двойки (например, 64 x 64, 512 x 512, 128 x 1024). Это особенно важно для больших текстур, таких как равноугольные фотографии, используемые в a-sky.

Из-за этого three.js потребовалось некоторое время, чтобы изменить размер текстуры во время выполнения. Как только мы изменили размер текстуры, событие срабатывало ближе ко времени отображения текстуры на экране.

myEntityEl.addEventListener('materialtextureloaded', function () {
  setTimeout(function () {  // setTimeout for good measure.
    console.log('material now showing on screen');
  }, 200);
});
person ngokevin    schedule 16.08.2016