Можно ли предотвратить изменение размера приложения Flex во время выполнения? - PullRequest
0 голосов
/ 14 сентября 2010

Исходя из того, что я могу извлечь, свойство изменения размера приложения Flex задается в файле конфигурации XML:

<!--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();
}

Любая помощь будет принята с благодарностью.

Ответы [ 5 ]

4 голосов
/ 02 февраля 2011

Есть другой способ сделать это без установки свойства файла дескриптора.

Вот код:

<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 голос
/ 14 сентября 2010

Вам нужно будет создать новый экземпляр NativeWindow и добавить в него новое приложение.Когда вы создаете новое NativeWindow, у вас есть опции, которые вы можете установить во время инициализации, в том числе изменяемые размеры.http://help.adobe.com/en_US/FlashPlatform//reference/actionscript/3/flash/display/NativeWindowInitOptions.html

0 голосов
/ 23 марта 2012

Поскольку это было уже некро, и мне было любопытно:

Мне удалось реализовать переход с изменяемого размера на не с помощью следующего кода:

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
}

Однако пользователю по-прежнему отображаются значки мыши с измененным размером по краям приложения.

0 голосов
/ 22 марта 2012

Попробуйте добавить возврат:

evt.preventDefault();
return;
0 голосов
/ 14 сентября 2010

Согласно руководству , resizable доступно только для чтения.Так что, вероятно, это невозможно.

...