2010-09-14 56 views
0

從我可以收集,Flex應用程序的調整大小的屬性在XML配置文件設置:是否可以防止在運行時調整Flex應用程序的大小?

<!--Whether the user can resize the window. Optional. Default true.--> 
<!--<resizable></resizable>--> 

但是,如果我這個屬性設置爲true,有沒有一種方法來動態地關閉這個功能運行?例如,我的應用程序有兩種視圖模式 - 迷你和最大。我想阻止最終用戶在迷你模式下調整應用程序的大小。我試圖阻止使用下面的代碼調整大小,但它似乎並沒有工作:

private function creationComplete():void { 
    this.systemManager.stage.addEventListener(Event.RESIZE, resizeListener); 
} 

private function resizeListener(evt:Event):void { 
    evt.preventDefault(); 
} 

任何幫助將不勝感激。

+1

此xml摘錄來自AIR應用程序配置。你在使用AIR嗎? – alxx 2010-09-14 11:05:32

+0

是的,我正在使用Flex 3創建Adobe AIR應用程序 – 2010-09-14 11:31:01

回答

1

您需要創建一個新的NativeWindow實例並將該應用程序重新導入到該實例中。當您創建新的NativeWindow時,您可以在初始化時設置選項,包括可調整大小。 http://help.adobe.com/en_US/FlashPlatform//reference/actionscript/3/flash/display/NativeWindowInitOptions.html

+0

嗨,感謝您的鏈接。這可能是我正在尋找的。您是否有一些示例代碼可用於在mini模式和maxi模式之間切換(反之亦然),其中mini不可調整大小,maxi是? – 2010-09-15 12:29:00

+0

沒關係,我設法篩選了文檔。再次感謝您的帖子,這非常有幫助。對於任何絆腳石的人,可以在這裏找到NativeWindow文檔(關於如何在方法描述之後創建一個新窗口,有一個很好的例子):http://help.adobe.com/en_US/FlashPlatform/reference/動作/ 3 /閃光/顯示/ NativeWindow.html?filter_flex = 4.1&filter_flashplayer = 10.1&filter_air = 2 – 2010-09-15 12:39:39

0

根據manualresizable是隻讀屬性。 所以這可能是不可能的。

3

還有另一種方法可以在不設置描述符文件屬性的情況下做到這一點。

下面是代碼:

<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" showGripper="false" 
        layout="vertical" showStatusBar="false" 
        applicationComplete="init()"> 

<mx:Script> 
    <![CDATA[ 
     import mx.events.FlexNativeWindowBoundsEvent; 

     private function init():void 
     { 
      this.stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE; 
      nativeWindow.addEventListener(NativeWindowBoundsEvent.RESIZING, onAppResize); 
     } 

     private function onAppResize(e:NativeWindowBoundsEvent):void 
     { 
       e.preventDefault(); 
     } 

    ]]> 
</mx:Script> 

希望這有助於。

-1

嘗試添加回報:

evt.preventDefault(); 
return; 
0

由於這已經necro'd,和我很好奇:

我是能夠實現從調整大小開關不與下面的代碼:

private var maxMode:Boolean = true; 

protected function switchMode():void 
{ 
    if (maxMode){ 
     //I chose to freeze the app at current size 
     //You could also set the min/max to hard coded values 
     this.maxWidth = this.width; 
     this.minWidth = this.width; 
     this.maxHeight = this.height; 
     this.minHeight = this.height; 
    } 
    else { 
     //default values for WindowedApplication 
     this.maxWidth = 2880; 
     this.minWidth = 0; 
     this.maxHeight = 2880; 
     this.minHeight = 0; 
    } 

    maxMode= !maxMode 
} 

然而,用戶仍然在應用程序邊緣顯示調整大小鼠標圖標。

相關問題