- 使用 Firefox 10.0.2 从此项目中打开 Framework.html:http ://code.google.com/p/unitspeeds-vhh/ (编辑:我现在正在预加载图标。如果您愿意,请使用此修订版尝试调试原始问题。)
- 按 F5 刷新。
- 快速按 F5 几次。
预期:单元图标(代码中的 unitIconObj)应始终呈现。
实际:它们永远不会在第一页加载时呈现。首先 F5 通常会显示所有图标。一些非常快速的 F5 重复会导致大多数(但不是全部)图标显示。
我要解决的基本问题是第一次无法正确渲染图标,我认为这意味着我需要预加载图像。我一直在尝试几种不同的方法来做到这一点,但这种行为并不是严格可重现的,而且我认为我对刷新和缓存的了解还不够,无法自己解决这个问题。图标本身是非常小的图像文件,所以我很惊讶地发现这是一个问题。
非常抱歉混乱的代码和问题——我是菜鸟!任何的建议都受欢迎。
编辑:这是我加载图像文件并渲染它的部分:
for (var x = 0; x < sortedOutput.length; x++)
{
// Draw the unit icon
var unitIconObj = new Image();
if (sortedOutput[x].Filename == "--") // I don't have real icons for a few units
{
unitIconObj.src = "Icons/Creep.jpg";
} else
{
unitIconObj.src = "Icons/" + sortedOutput[x].Filename + ".jpg";
}
speedContext.drawImage(unitIconObj, ChartBuffer+textBlock+2+4*iconSpace, 50+(x*iconSpace), BarHeight, BarHeight);
}