di: Nicola Strisciuglio 04 Marzo 2011
Con la release 10.1 del Flash Player, Adobe ha introdotto una funzionalità importante per gli sviluppatori di Rich Internet Applications in Flex. La novità riguarda la possibilità di gestire le eccezioni non gestite ed evitare, quindi, la visualizzazione dei fastidiosissimi popup di errore o, in casi estremi, il blocco totale dell'applicazione.
Per utilizzare la funzionalità di catch globale delle eccezioni è necessario compilare le nostre applicazioni per essere eseguite con il flash player 10.1 (o AIR 2.0).
Creiamo il progetto nel Flash Builder (o in alternativa Eclipse con installato il plugin Adobe Flash Builder 4), selezionando l'SDK Flex 4.1 per la compilazione, come mostrato in figura 1:
Figura 1
Dopo aver creato il progetto, dobbiamo forzare l'utilizzo del Flash Player 10.1, altrimenti, quando utilizzeremo la funzionalità di catch globale, l'editor segnalerà un errore in fase di compilazione e non sarà possibile lanciare la nostra applicazione. Per fare ciò, dalle preferenze del progetto selezioniamo la voce “Flex Compiler” e impostiamo la versione del player come mostrato nella figura seguente:
Figura 2
A questo punto siamo pronti per utilizzare il Global Exception Handler!
Prima di implementare l'handler globale, creiamo una semplice applicazione che, al click di un pulsante, genera un'eccezione che non viene gestita con un blocco try/catch.
Di seguito è riportato il codice dell'applicazione:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="250" height="200"
creationComplete="initApplication(event)">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
/**
* Invocato al caricamento dell'applicazione
* Aggiunge il listener al click del pulsante
*/
private function initApplication(event:FlexEvent) : void {
buttonError.addEventListener(MouseEvent.CLICK, onClickButtonError);
}
/**
* Invocato quando si clicca sul pulsante buttonError
* Genera un'eccezione
*/
private function onClickButtonError(event:MouseEvent) : void {
throw new Error("ECCEZIONE NON GESTITA");
}
]]>
</fx:Script>
<s:Button x="50" y="70" label="Genera un errore!" width="150" height="60" id="buttonError"/>
</s:Application>
|
Creare l'effetto Time Machine di Leopard in Actionscript 3.0 |
Guida ActionScript 3 di baseApprendere, in poche lezioni, le nozioni fondamentali per gestire... |
Guida FlashDevelopInstallare e usare FlashDevelop, potente ambiente di sviluppo open... |
Guida Flash Builder 4Un percorso alla scoperta delle potenzialità più importanti... |
Ogni martedì, guide, articoli, FAQ, movie, audio su Macromedia Flash e Actionscript direttamente nella tua casella di posta
Iscriviti alla newsletter
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |