不同分辨率下位置对象的问题

时间:2010-02-17 10:23:07

标签: flex background positioning resolution

场合
Flex项目导出为投影仪,显示全屏。该项目有一个背景和几个点,每个点代表一个“位置”。这些位置是从XML文件中获取的,其位置设置为百分比。以像素为单位的位置按应用程序的宽度和高度计算(按预期工作)。点正确放置。

背景是JPG,分辨率为1280 * 1024。目前,背景设置在Canvas backgroundSize = auto上。这会将图像放在中心而不会拉伸它。拉伸导致丑陋的像素化图像,并将这些比例分开。

问题
当我们以2种不同的分辨率(1 = 1280 * 1024; 2 = 1024 * 768)查看项目时,点处于良好位置,背景图像清晰。但是 - 由于背景具有与1相同的分辨率,背景未在分辨率2中完全显示(因为它没有被拉伸。逻辑结果。

这就是我尝试拉伸背景的原因。结果:
Dots placed in the correct way http://i733.photobucket.com/albums/ww336/winkelman66/example1.jpg

较小/其他分辨率:
alt text http://i733.photobucket.com/albums/ww336/winkelman66/example2.jpg

解决方案吗
我该如何解决这个问题?我想到总是把背景放在底部,让比例保持原样。由于缺少图像的细节/部分,因此不能选择此选项。拉伸导致难看的像素化图像不成比例 我知道拉伸可能是解决分辨率问题而不会丢失部分图像的唯一选择,但是如何解决点不在合适位置的问题(如图2所示)。

2 个答案:

答案 0 :(得分:1)

不知道这是不是你的意思,但我会试一试:P

  1. 获取原始背景尺寸
  2. 获取拉伸背景的大小
  3. 计算宽度和高度差
  4. 反映积分位置的差异

答案 1 :(得分:0)

大问题,简单的解决方案(在工作时间之后)。 我们在计算中忘记了一件简单的事情:反映位置中点的大小(宽度/高度)......

因此,如果您在计算百分比的像素位置时遇到同样的问题,请不要忘记在计算中包含(viewToBePositioned.width / 2): - )