演示工具的Flex / AIR布局(调整大小逻辑,宽高比等)

时间:2010-09-14 12:40:32

标签: flex actionscript-3 layout air resolution

我正在为AIR开发一个演示工具(与PowerPoint一起使用,或作为PowerPoint的替代品),但我是灵活布局的新手。

从图像中可以看出,演示者可以从主窗口打开各种应用程序。 这些应用程序中的每一个都在具有不同视觉特征的新窗口中打开;一些使用主要内容区域来显示图形,其他一些子弹点。大多数应用程序窗口都有按钮和带有嵌入式Flash资源的视图堆栈(使用s:SpriteVisualElement)。

我的问题如下:

1a上。使用Flex开发类似PowerPoint的演示文稿工具时,哪种布局类型(基本,垂直等)将提供最大的灵活性?

1b中。如何确保在各种投影仪屏幕上不会发生削波 - 我应该考虑哪种宽高比?

2a上。如何根据窗口分辨率按比例调整SpriteVisualElement容器中的子sprite?

2B。我在哪里放置这个调整大小的逻辑 - 在每个组件(sprite)上使用resizeHandlers或在一个resizeHandler / window中?

如果您希望我进一步详细说明,请使用评论主题。感谢。

alt text

1 个答案:

答案 0 :(得分:1)

由于您是Flex新手,我非常了解Flex Component LifeCycle。

1a. When developing a PowerPoint-like presentation tool with
     

Flex,布局类型(基本,   垂直等)将提供最多   灵活性?

您选择的布局取决于您要显示的内容。我不认为布局是“灵活的”。他们做好自己的工作并适当地定位自己的元素我可以很容易地想象在这样一个复杂的应用程序中使用所有类型的布局,每个布局都有不同的用途。

1b. How do I make sure no clipping occurs on various projector screens -
     

我应该拥有哪个宽高比   介意吗?

我不太确定我理解这个问题意味着什么,但我认为这意味着您希望避免在您的应用中出现滚动条。要做到这一点,您必须开发布局代码,以便为您的孩子调整大小和位置,使他们不会超出可用内容空间的高度和宽度。在Flex 3(Halo)体系结构中,这可以通过为组件编写updateDisplayList()方法来完成。在Flex 4(Spark)架构中,这可能是通过为您的外观类编写updateDisplayList()方法来完成的。

2a. How can I resize children sprites in the SpriteVisualElement
     

容器与窗口成比例   分辨率?

我相信我的上述答案已经解决了这个问题。

2b. And where do I place this resize logic - on each component
     

(精灵)与resizeHandlers或在一个   resizeHandler / window?

在resize处理程序中,我很可能会使用invalidateSkinState和/或invalidateDisplayList。调整大小代码将位于皮肤和/或updateDisplayList中。