如何检测Flex中的屏幕宽度/高度变化

时间:2010-12-02 19:06:13

标签: flex

我使用x / y坐标将对象放在屏幕上。我想要一种方法来根据屏幕宽度/高度的变化更新它。因此,如果使用重新调整大小的浏览器窗口x / y应该更改。每次重新调整屏幕大小时,如何关闭某个功能。

3 个答案:

答案 0 :(得分:4)

您可以通过将ResizeEvent侦听器附加到要跟踪的任何对象来执行此操作:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/events/ResizeEvent.html

public class Main extends Sprite {
    public function Main (  ) {

      stage.addEventListener(Event.RESIZE, resizeListener);
    }

    private function resizeListener (e:Event):void {
      trace("The application window changed size!");
      trace("New width:  " + stage.stageWidth);
      trace("New height: " + stage.stageHeight);
    }
  }

答案 1 :(得分:1)

您可以在mxml右侧的Resize标记上设置Application事件的监听器。

虽然您可能希望探索基于百分比的设置,但在大多数情况下,这样做的工作量会减少。

答案 2 :(得分:1)

检测屏幕分辨率变化的最佳方法是在应用程序级别添加事件监听器并使用事件属性检测更改


private function init():void
{
    this.addEventListener(ResizeEvent.RESIZE, resizeApplication);
}

public function resizeApplication(event:ResizeEvent):void
{
     if(this.stage.stageHeight != event.oldHeight)
     {
        //perform action here or just use the above properties in any way you want
     }

}

我公开了这个函数,以便它可以在应用程序的任何地方使用,以防事件被触发但附加到它的视图没有监听。