2011-09-11 95 views
2

如果满足某些条件,我需要添加一些代码,以使我的Flex应用程序崩溃。我需要它能够在Flex应用程序所处的任何状态下工作(也许它没有完全初始化,可能还有一些组件仍在加载等)崩溃Flex应用程序的最可靠方法是什么?

什么是最可靠的方法来实现它?

+0

抛出异常? –

+0

它保证会崩溃的应用程序?如果我没有弄错,URLLoader会在有一个未捕获的ioError但会导致应用程序崩溃时抛出异常,是吗? –

+1

为什么你不显示模式弹出窗口,阻止用户与你的应用程序进行交互? – moropus

回答

3

尝试使用unresolved crash bugs之一,例如, this one

public function TestVerify() { 
    try { 
     with (this) { 
      return; 
     } 
    } 
    catch (e) { 
     trace('catch'); 
    } 
    finally { 
     trace('finally'); 
    } 
} 
0

评论有点拖着;但我想发布一些代码来证明关于未捕获异常和崩溃应用程序的一点。所以,在这里。

如果要引起例外,请使用throw commandError class。未捕获的异常不会导致应用程序崩溃。

下面是一个可以复制并粘贴并运行的示例。

<?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;行。但是,在评论中你坚持认为这不是你想要做的。

+0

呵呵我喜欢最后一句话。 –

相关问题