2
在 Flex/AIR 中创建应用程序的最佳方式是什么,
无论屏幕如何,外观和感觉都相同
解析度?
4

3 回答 3

3

在您的 flex 应用程序中创建布局时,您可以通过使用相对缩放来实现与屏幕分辨率无关的一致外观。

这很类似于使用 HTML 创建一个流动的布局。

例如,要创建一个简单的两列应用程序(左侧导航和内容),您只需要两个容器,一个是预定义的,一个是左侧可以无限扩展的。

如下:

<mx:HBox width="225">
    <mx:Button label="Menu 1"/>
    <mx:Button label="Menu 2"/>
    <mx:Button label="Menu 3"/>
</mx:HBox>
<mx:HBox width="100%">
    Any content here will flow fluidly across the entire screen regardless of window size/screen resolution.
</mx:HBox>

使用上述基础知识,您可以创建适用于任何屏幕的应用程序布局。


但是,有时您需要创建一个更精细的布局方案,其中包含许多可以动态调整大小以适应窗口的互换组件。

为此,您可以进行绝对定位。覆盖组件 updateDisplayList() 函数并创建自己的大小/定位规则。

这当然需要您在 Canvas 容器内或将主应用程序容器设置为绝对布局。

一个简单的例子:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Script>
        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number) : void 
        {
            //find out how big we are
            var stageWidth:int = this.width;
            //center the box in the middle of the page.
            centeredBox.x = stageWidth - (centeredBox/2);
        }
    </mx:Script>
    <mx:HBox id="centeredBox" width="500"/>
</mx:Application>

通过重写 updateDisplayList(),您可以创建无穷无尽的方法来更好地动态定位和调整组件的大小,从而更好地使用屏幕不动产。

于 2009-08-14T00:37:47.363 回答
0

您可以创建一个具有与容器相应的高度和宽度的应用程序,以便所有组件在所有屏幕分辨率下都可以正常显示。

于 2009-08-11T08:48:35.967 回答
0

我们通常创建一个 MainFrame.mxml 作为我们的主要组件,并具有其他人提到的布局相对缩放。然后我们创建一个 AIR 应用程序,它只嵌入了一个 MainFrame.mxml 和另一个嵌入它的 Flex 应用程序。这样我们就可以将整个应用程序保留在 MainFrame 中,而不必担心它是在 Flex 还是 Air 中。话虽这么说,您需要确保您不使用任何不会转换到另一个的特定于 AIR 或特定于 Flex 的调用。

于 2009-11-20T17:04:13.357 回答