2011-09-06 55 views
0

我有一个常见的Flash问题。我有2个.SWF包装器(Playbook和Android,完美地工作),它接受任何.SWF文件并将其作为应用程序包装起来。我希望制作1个应用程序,并将它运行在Blackberry Playbook和任何Android设备上。技术上一切都很完美,但我遇到的问题是布局。Flash中的动态对象布局

例如,如果一个对象放置在x = 512 y = 400处,那么它在Playbook上看起来不错,但在非1024x800px的Android屏幕上看起来很糟糕。我想要做的就是像(x = DeviceWidth/2),(y = DeviceHeight/2),这样它就可以自动调整大小和重新定位。在那里我需要改变代码的示例如下所示

bt1.tween("_y", 400, 0.5, "easeOutBack"); 

这可能吗?如果是这样的语法是什么或在哪里可以找到这个信息?

感谢您的帮助

问候

+0

当你说“看起来可怕”你说的是你的资产或位置?在Flex的上下文中,您可以在updateDisplayList()中布局您的子元素/元素,它将为您提供容器的高度和宽度。任何大小/定位通常应该与传递给updateDisplayList()的unscaledWidth,unscaledHeight值有关。 – JeffryHouser

+0

对不起,我提到的位置,例如,如果它的中心集中在我希望它在Galaxy Tab,Xoom等中心剧本。 – Roksalt

+0

你是如何放置元素呢?看起来你正在使用绝对定位。别。覆盖updateDisplayList并根据您拥有的空间计算它们的位置[和可能的大小]。 – JeffryHouser

回答

1

什么Flextras说是正确的,你可以重写updateDisplayList函数来计算东西应该去哪里,但你正在尝试使用补间(这我不知道为什么)。如果您将它包含在组或任何其他基于绝对的容器中,则也可以使用绝对居中(horizo​​ntalCenter = 0,verticalCenter = 0),但它不会帮助补间。

在你的情况,你可能会想要做这样的事情:

bt1.tween("_y", (stage.height - bt1.height)/2, 0.5, "easeOutBack");