Hi
My goal is to avoid black screen blinking when using Object VR panorama.
Here's my test link: https://immersiveprod.com/mbf/demo360/
I wrote a function to preload every level1 tiles from the multires frames as u plugin first, then displaying the pano.
Unfortunately black tiles blinking still here..
i use min size of 512 tiles, to avoid poor resolution preview, that's why i need to preload them because they're heavier.
Here's my xml .
Despite the preloading of the tile, black blinking tiles still occurs when rotating the object by clicking or buttons.
Code
<krpano version="1.17.4" onstart=" ">
<include url="skin/objectskin.xml" />
<image type="CYLINDER" hfov="1.00" vfov="0.666667" voffset="0.00" multires="true" tilesize="512" progressive="true" frames="80" frame="1">
<level tiledimagewidth="5616" tiledimageheight="3744">
<cylinder url="img_5526.tiles/%0f/l3/%v_%h.jpg" />
</level>
<level tiledimagewidth="2808" tiledimageheight="1872">
<cylinder url="img_5526.tiles/%0f/l2/%v_%h.jpg" />
</level>
<level tiledimagewidth="1404" tiledimageheight="936" aspreview="true">
<cylinder url="img_5526.tiles/%0f/l1/%v_%h.jpg" />
</level>
</image>
<plugin name="loadermask" preload="true" type="container" width="100%" height="100%" zorder="500" keep="true" bgalpha="1" bgcolor="0x000000" handcursor="false" bgcapture="true" autoalpha="true" capture="false" />
<plugin name="loadertxt" preload="true" url="assets/plugins/textfield.swf" align="lefttop" edge="lefttop" width="200" height="20" html="" zorder="501"/>
<!-- plugin that lauched preloading of the named objectVR-->
<plugin name="img_5526" frames="80" keep="true" url="skin/arrow.png" width="0" height="0" onloaded="preloadobject360(get(name),get(frames));" />
<action name="preloadobject360">
<!-- calculates the total tiles of the object and preloads them-->
<!-- 1. parameter = object ID, 2. parameter = total frame number-->
mul(totaltilestoload,%2,6); <!-- 6 level1 tiles/frame( 6 tiles : 1_1, 1_2, 1_3, 2_1, 2_2, 2_3) -->
for( set( iframe,1 ), iframe LT %2, inc(iframe),
if(iframe LT 10,
txtadd(correctedframeid,0,get(iframe)); <!-- formating 1 into 01, 2 into 02 ... for tiles folder access -->
preloadframe(%1,get(correctedframeid));
,
preloadframe(%1,get(iframe));
);
);
</action>
<action name="preloadframe">
<!-- preload the 6 level1 tiles of a frame-->
<!-- 1. parameter = object ID, 2. parameter = frame ID -->
preloadtile(%1_%2_1_1, %1, %1.tiles/%2/l1/1_1.jpg);
preloadtile(%1_%2_1_2, %1, %1.tiles/%2/l1/1_2.jpg);
preloadtile(%1_%2_1_3, %1, %1.tiles/%2/l1/1_3.jpg);
preloadtile(%1_%2_2_1, %1, %1.tiles/%2/l1/2_1.jpg);
preloadtile(%1_%2_2_2, %1, %1.tiles/%2/l1/2_2.jpg);
preloadtile(%1_%2_2_3, %1, %1.tiles/%2/l1/2_3.jpg);
</action>
<action name="preloadtile">
<!-- preload a tile ; shows object VR when all tiles preloaded in memory -->
<!-- 1. parameter = frame ID, 2. parameter = object ID, 3. parameter = url -->
addplugin(pre_%1);
set(plugin[pre_%1].visible, false);
set(plugin[pre_%1].onloaded, <!-- pop that a tile is loaded -->
removeplugin(pre_%1);
dec(totaltilestoload);
set(plugin[loadertxt].html,get(totaltilestoload));
if(totaltilestoload == 6, <!-- when last 6 tiles are preloaded -->
set(plugin[loadertxt].html,'allloaded!');
tween(plugin[loadermask].alpha,0,5); <!-- reveals panorama -->
);
);
set(plugin[pre_%1].url, %3);
</action>
</krpano>
Alles anzeigen