浏览iPhone部分全景图。 其中有40多种,似乎移动设备上的内存已用完。
此外,使用A-frame 0.5.0版,以下代码可在台式机上运行,但在最新的0.9.2版中无效。
<a-entity id="pano_01" visible="true">
<a-curvedimage asset-on-demand="src: ../Html_Templates/pix/Upgrade.jpg" height="145" radius="100" theta-length="300" rotation="0 33 0"></a-curvedimage>
<a-sky asset-on-demand="src: ../Html_Templates/pix/Upgrade_sky.jpg" rotation="0 -90 0"></a-sky>
<a-image asset-on-demand="src: ../Html_Templates/pix/UI_Next.png" position="0 -0.5 -3" scale="0.35 0.35 0.35" onclick="setpano_02()"></a-image>
</a-entity>
<a-entity id="pano_02" visible="false">
<a-sky asset-on-demand="src: ../Html_Templates/pix/JRO_Arrive_sky.jpg"></a-sky>
<a-curvedimage asset-on-demand="src: ../Html_Templates/pix/JRO_Arrive.jpg" height="140" radius="100.0" theta-length="300" rotation="0 60 0"></a-curvedimage>
<a-image asset-on-demand="src: ../Html_Templates/pix/UI_Next.png" position="1 -0.5 -3" scale="0.35 0.35 0.35" onclick="setpano_03()"></a-image>
<a-image asset-on-demand="src: ../Html_Templates/pix/UI_Back.png" position="-1 -0.5 -3" scale="0.35 0.35 0.35" onclick="setpano_01()"></a-image>
</a-entity>
支持上述内容的Java:
function setpano_01() {
document.getElementById('pano_01').setAttribute('visible', 'true')
document.getElementById('pano_02').setAttribute('visible', 'false')
}
function setpano_02() {
document.getElementById('pano_01').setAttribute('visible', 'false')
document.getElementById('pano_02').setAttribute('visible', 'true')
document.getElementById('pano_03').setAttribute('visible', 'false')
我的期望是按需资产脚本将有助于释放内存资源,但似乎不适用于该策略。 另外,我希望最新版本的A-Frame能够改善内存管理。
(我希望这个问题现在措辞更好)
答案 0 :(得分:0)
有一个自定义组件,称为按需资产。 https://www.npmjs.com/package/aframe-asset-on-demand-component
它动态地将图像作为资产加载,也将其从内存中删除。 这可能会解决您的图形内存问题。
“不再需要从内存中删除资产。如果仅从实体中删除纹理,则不会从THREE.JS中完全删除它,而仍会使用宝贵的内存(特别是在移动设备上非常宝贵)。A帧Asset OnDemand确保以释放可用内存的方式删除Asset。”
我通过搜索“ aframe动态加载资产”发现了这一点