Какой самый надежный способ сбить приложение Flex? - PullRequest
2 голосов
/ 11 сентября 2011

Мне нужно добавить код, который может привести к сбою моего приложения Flex, если будут выполнены определенные условия. Мне нужно, чтобы оно работало в любом состоянии, в котором находится приложение Flex (возможно, оно не полностью инициализировано, возможно, некоторые компоненты все еще загружаются и т. Д.)

Какой самый надежный способ сделать это?

Ответы [ 2 ]

3 голосов
/ 11 сентября 2011

Попробуйте одну из неразрешенных ошибок при сбое , например этот :

public function TestVerify () { 
    try { 
        with (this) { 
            return; 
        } 
    } 
    catch (e) { 
        trace('catch'); 
    } 
    finally { 
        trace('finally'); 
    } 
} 
0 голосов
/ 13 сентября 2011

Комментарии как бы тянутся; но я хотел опубликовать некоторый код, чтобы доказать точку зрения о необработанных исключениях и сбое приложения. Итак, вот оно.

Если вы хотите вызвать исключение, используйте команду throw и класс Error . Необработанное исключение не приведет к сбою приложения.

Вот пример, который вы можете скопировать, вставить и запустить.

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx" applicationComplete="windowedapplication1_applicationCompleteHandler(event)">
    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;

            protected function windowedapplication1_applicationCompleteHandler(event:FlexEvent):void
            {
                var error : Error = new Error();
                throw error;
            }

        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>



    <s:Button />
</s:WindowedApplication>

Если вы запустите это приложение из Flash Builder, вы увидите, что появляется «стандартная» ошибка. Но как только вы нажмете «Отклонить», вы все равно можете нажать на кнопку и взаимодействовать с приложением.

Наличие необработанного исключения - не то же самое, что сбой приложения; или запретить пользователям взаимодействовать с приложением.

Если вы просто хотите запретить пользователям взаимодействовать с приложением, вы должны сделать что-то вроде FlexGlobals.topLevelApplication.enabled == false;. Но в комментариях вы продолжаете настаивать, что это не то, что вы хотите сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...