我已完成Adobe AIR程序并已发布,但已安装的程序无法正常运行。有些对象正确加载,但有些对象没有加载。
具体来说,我有大约20个图像在Y:459处排成一行,所以Y值在被推入数组之前被设置在一个循环中。然后通过引用它们在数组中的位置来设置x值。图像全部出现在X轴的0位置。
对于AIR中的数组的特殊注意事项,我有什么不了解的吗? 程序的其他问题也可能与数组有关;有没有人知道为什么?
程序在测试时在Flash中正常运行,因此我不明白为什么AIR中存在问题。我做了一些故障排除并将AIR更新到15.0.0.356版。
我试图找到一些方法来查看正在运行的程序中的错误消息,这样我就可以看到它失败的原因,但没有运气。
非常感谢你的建议。
EDIT 非常感谢您的回复。 第一个屏幕截图是从Flash测试的程序,显示了在Y:459排列的四个图像和分别设置的不同X位置。 http://i60.tinypic.com/r8f0gw.png
第二个屏幕截图是已发布的已安装程序,它显示了在Y:459排列的四个图像,但它们都是X:0。 http://i58.tinypic.com/1z58dmv.png
我遍历一个加载器数组,从每个加载器中制作一个位图,应用平滑,添加到一个movieclip,以便在将它们推入'lightImgs'数组之前,可以使用我自己的:Image类调整它们的大小。因为它们都需要是Y:459,我在循环中完成了这个,然后改变了循环外的X位置(你可以看到前四个图像X位置被设置)
lightImgs = new Array ();
for (var i:int = 0; i < 21; i++){
trace (i);
var bmp:Bitmap = Bitmap (lightImages[i].content);
bmp.smoothing = true;
var tempMC:MovieClip = new MovieClip ();
tempMC.addChild (bmp);
var p:Point = new Point (150, 150);
var tempImg:Image = new Image (tempMC, p);
tempMC.x -= tempMC.width/2;
tempMC.y -= tempMC.height/2;
lightImgs.push (tempImg);
tempImg.y = 459;
addChild (tempImg);
trace ('x ' + tempImg.x + ' y ' + tempImg.y);
}
lightImgs[0].x = 110;
lightImgs[1].x = 270;
lightImgs[2].x = 430;
lightImgs[3].x = 590;
如果这不是'方式',请原谅我,我不是专业人士,随时随地学习。我很有兴趣知道为什么它在测试时有效但在发布时没有:-s。谢谢!
P.P.S我很抱歉我没有足够的代表直接发布图片。
答案 0 :(得分:0)
数组只是数据列表。问题将放置在页面上将与您分配图像的X位置相关。 image.x =?如果您使用相同的X加载了所有的X,或者您没有设置X位置。然后他们将堆叠在彼此之上。另一种可能是您在设置X值时不考虑图像的实际宽度。没有代码示例很难诊断问题。此外,除非您检查错误或记录某些事件,否则无法从正在运行的示例中看到错误。如果所有内容都显示在屏幕上,则应用程序会认为一切正常运行。