Flex/AIR:调整 WindowedApplication 内所有组件的大小

发布于 2024-11-07 08:51:14 字数 1394 浏览 0 评论 0原文

这很有趣。如果设置 stage.scaleMode = StageScaleMode.EXACT_FIT; 当您调整窗口大小时,所有组件都会调整大小,但窗口底部有一条灰色条纹,但并未调整。

这意味着什么?

顺便问一下,可以把窗户上的灰线/条纹去掉吗?

尝试调整此窗口的大小,您会看到会发生什么:

<?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                   xmlns:s="library://ns.adobe.com/flex/spark" 
                   xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:local="*"
                    applicationComplete="initApplication(event)" width="800" height="600" preloaderChromeColor="#FFFCFC">
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
    <![CDATA[
        import mx.events.FlexEvent;
        private function initApplication( evt:FlexEvent):void{
            stage.scaleMode = StageScaleMode.EXACT_FIT;
            var timer:Timer = new Timer(3000);
            timer.addEventListener( TimerEvent.TIMER, onTimer );
            timer.start();

        }

        private function onTimer( evt:TimerEvent ):void{
            this.width = 600;

            trace(this.stage.stageWidth, this.stage.stageHeight);
        }
    ]]>
</fx:Script>
<s:Button x="185" y="245" label="Button" width="112" height="61"/>
</s:WindowedApplication>

还有一个计时器,用于检查舞台的大小是否与应用程序窗口的大小相同。

It's interesting. If you set stage.scaleMode = StageScaleMode.EXACT_FIT; all components are resized when you resize the window, BUT there is a grey stripe at the bottom of the window that is not.

What does that mean?

By the way, is it possible to take that grey line/stripe off from the window?

Try to resize this window and you'll see what happens:

<?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                   xmlns:s="library://ns.adobe.com/flex/spark" 
                   xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:local="*"
                    applicationComplete="initApplication(event)" width="800" height="600" preloaderChromeColor="#FFFCFC">
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
    <![CDATA[
        import mx.events.FlexEvent;
        private function initApplication( evt:FlexEvent):void{
            stage.scaleMode = StageScaleMode.EXACT_FIT;
            var timer:Timer = new Timer(3000);
            timer.addEventListener( TimerEvent.TIMER, onTimer );
            timer.start();

        }

        private function onTimer( evt:TimerEvent ):void{
            this.width = 600;

            trace(this.stage.stageWidth, this.stage.stageHeight);
        }
    ]]>
</fx:Script>
<s:Button x="185" y="245" label="Button" width="112" height="61"/>
</s:WindowedApplication>

There is also a timer just for checking if the Stage's size is the same as the application window's one.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

阿楠 2024-11-14 08:51:14

灰色条纹是 WindowedApplication 类的 statusBar 属性。通过在 WindowedApplication 标记内设置 showStatusBar="false" 将其关闭。

The gray stripe is the statusBar property of the WindowedApplication class. Turn it off by setting showStatusBar="false" inside the WindowedApplication tag.

假装不在乎 2024-11-14 08:51:14

底部的灰色条纹是 Windows chrome 的状态栏,您需要在应用程序 xml 描述符文件中将 'systemChrome' 标记设置为 false 以将其删除或执行 showStatusBar="false"。

That grey stripe at the bottom is the statusbar from the windows chrome, you need to set the 'systemChrome' tag to false in the app xml descriptor file to remove it or do showStatusBar="false".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文