2010-12-02 135 views
2

我使用x/y坐标将对象放置在屏幕上。我想要一种方法来根据屏幕宽度/高度的更改进行更新。所以如果使用重新调整大小的浏览器窗口x/y应该改变。每次屏幕重新调整大小时,我如何才能启动一项功能。如何检测Flex中的屏幕宽度/高度变化

回答

3

你可以做到这一点通过附加的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

你可以设置一个监听器上在MXML中Application标签右边的Resize事件。

尽管您可能想要探索基于百分比的设置,但在大多数情况下,这样做的效果会更差。

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 
    } 

} 

我做了这个功能公开,以便它可以在任何地方使用的最佳途径在应用程序中,如果事件被解雇但附加到它的视图没有收听。

相关问题