像Don說的那樣,使用資產上的crossorigin
標誌使其與您的<a-sky>
一起工作。
一旦你有了這個,你可以聽到img.onload
/loaded
就像你正常的DOM事件。下面我換一個A字架組件,自動掛接到現場裏面的一些代碼:
<script>
// Do something on asset load.
AFRAME.registerComponent('do-on-asset-load', {
schema: {
src: {type: 'selector'}
},
init: function() {
var el = this.el;
var assetEl = this.data.src;
assetEl.addEventListener('load', function() {
// Do something with your element.
});
}
});
</script>
<a-scene>
<a-assets>
<img id="my-asset" src="https://..." crossorigin="anonymous">
</a-assets>
<a-sky src="#my-asset" do-on-asset-load="#my-asset"></a-sky>
</a-scene>
如果你沒有使用的資產,你必須深入到材料搶內部創建的圖像:
document.querySelector('a-sky').components.material.material.map.image