如何撰写mini[i].x = i * 1280;
?在下面的代码中,将一个图像加载到另一个图像旁边。
让我们说7张图片 - 所有图片都有不同的宽度。因为此mini[i].x = i * 1280;
仅适用于宽度相同的图片。
xml1 = new XML(URLLoader(event.target).data);
var i:Number;
mini = new Array(xml1.obrazek.length());
count = xml1.obrazek.length();
for (i=0; i<count; i++)
{
mini[i] = new Miniaturka(xml1.obrazek[i].attribute("id"),i);
addChild(mini[i]);
mini[i].x = i * 1280;
}
我不想像你在这个网站上找到的那样......:
答案 0 :(得分:0)
您可以使用变量来跟踪当前x
位置,并在循环对象时继续添加它:
xml1 = new XML(URLLoader(event.target).data);
var i:Number;
var currentX:Number = 0;
mini = new Array(xml1.obrazek.length());
count = xml1.obrazek.length();
for (i=0; i<count; i++)
{
mini[i] = new Miniaturka(xml1.obrazek[i].attribute("id"),i);
addChild(mini[i]);
mini[i].x = currentX;
currentX += mini[i].width;
}
修改强>
由于收集对象的宽度是一个异步过程,因此在尝试创建和定位下一个实例之前,您可能需要等待每个Miniaturka
从sizeHandler
方法接收到其宽度。 Miniaturka
。
您可以这样做的一种方法是从PARSE_COMPLETE
重新发送sizeHandler
事件,并在您实例化Miniaturka
的代码中侦听该事件。
你必须摆脱for循环,而是在处理完事件后定位旧实例并创建新实例。