【问题标题】:How do I get the Application Width/Height based on Browser Height/Width如何根据浏览器高度/宽度获取应用程序宽度/高度
【发布时间】:2019-09-27 05:11:13
【问题描述】:

我正在尝试动态更改组件在我的应用中的位置。每次用户更改他/她的浏览器窗口的大小时,我是否可以调用调整大小事件监听器?

【问题讨论】:

    标签: apache-royale


    【解决方案1】:

    是的,将 BrowserResizeHandler 作为一个小珠添加到应用程序中,并在 initialView 上监听“sizeChanged”。

    类似这样的伪代码(未测试):

    <js:Application applicationComplete="{myView.addEventListener("sizeChanged", sizeChangedHandler)}>
    <js:beads>
    <js:BrowserResizeHandler/>
    </js:beads>
     <initialView>
       <MyView id="myView/>
     </initialView>
    </js:Application>
    

    【讨论】:

    • 感谢您的回答。它帮助提出了解决方案。我用我使用的方法回答了这个问题。
    【解决方案2】:

    我不知道如何使珠子起作用。在找到正确的问题时遇到问题。但是,我使用以下方法来调用调整大小:

    <js:Application applicationComplete="initiateApplication(event)">   
          <fx:Script>
            <![CDATA[
            protected function initiateApplication(event:Event):void{
                        window.addEventListener("resize", resizeApp);
            }
            protected function resizeApp():void{
                        trace(this.height=document.documentElement.clientHeight)
                        trace(this.width=document.documentElement.clientWidth)
            }
        ]]>
        </fx:Script>
    </js:Application>
    

    如果有人用过其他方法,请分享。

    【讨论】:

    【解决方案3】:

    扩展https://stackoverflow.com/users/11577184/yishayw的回答: 当应用更改大小时,BrowserResizeHandler 珠会从视图中调度 sizeChanged 事件,因此这样的事情应该会有所帮助:

    <js:Application applicationComplete="onComplete()">
      <fx:Script>
        <![CDATA[
          protected function onComplete():void{
            myView.addEventListener("sizeChanged", handleResize);
          }
          protected function handleResize():void{
            // do something with the new size...
            trace(this.height)
            trace(this.width)
          }
        ]]>
      </fx:Script>
      <js:beads>
        <js:BrowserResizeHandler/>
      </js:beads>
      <initialView>
        <MyView id="myView/>
      </initialView>
    </js:Application>
    

    如果您的视图位于单独的 MXML 文件中,则处理调整大小的代码将放在那里,而不是主应用程序 mxml 文件。

    我建议查看各种风格的 Flex 布局珠,因为我发现这使得调整大小处理程序几乎是不必要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 2016-01-13
      • 2014-02-16
      • 2012-06-15
      • 1970-01-01
      • 2011-01-21
      • 1970-01-01
      相关资源
      最近更新 更多