Os erros na aplicação Flex

Todos sabem que erros são ruim para a aplicação, e todos devem ver o quanto aperto a tecla de concertar erros quando pedem sugestões. Mais o que alguns não sabem é que muitas falhas de funcionalidade são decorrente destas falhas.

/* Você que vive triste, cansado, não sabe porque não funciona?
  Não se desespere, seus problemas acabara-se
  Leia os traces, arrume e a solução aparecerá */

Veja o caso do código abaixo:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  layout="absolute"
  creationComplete="init()">
  <mx:Script>
    <![CDATA[
      private function init():void
      {
        vbox1.visible = false
      }
    ]]>
  </mx:Script>
  <mx:ViewStack>
    <mx:Canvas>
      <mx:Button click="viewstack1.selectedIndex = 1"/>
    </mx:Canvas>
    <mx:Canvas>
      <mx:HBox id="vbox1">

      </mx:HBox>
    </mx:Canvas>
  </mx:ViewStack>
</mx:Application>

A primeira impressão esta correto, mais se executar na aparecerá a seguinte tela.

Mais porque deste erro? E verás que quando acessar o segundo item do ViewStack ele ainda estará visível! E porque esta nulo?

Este é apenas um exemplo prático de um erro que atrapalha a sua aplicação. Você muitas vezes irá a luta, bater, chorar, pensar em desistir, fuguir de casa, mais nada disso fará com que seu VBox fique invisivel.

Neste caso em específico (e o que mais atrapalha) é que o segundo item do ViewStack não esta criado, o VBox não existe ainda e não pode ser acessado. é isso que diz o trace!

Então, todos os alertas de trace de erro do Flash player Debug devem ser corrigidos pois alguns podem fazer com que sua app não funcione corretamente.

Mais se você nunca viu nenhuma destas telas, é porque seu Flash player não possui o debugger. Então vá até a página de download do Flash player e, http://www.adobe.com/support/flashplayer/downloads.html, procure por “Adobe Flash Player XX ? Debugger Versions (aka debug players or content debuggers)” e baixe a versão mais apropriada para seu abiente de desenvolvimento.

Agora vem o momento do desespero. Porque tantas linhas?

TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula.
    at teste/init()[W:apachewwwlogcodepost223src	este.mxml:9]
    at teste/___teste_Application1_creationComplete()[W:apachewwwCDsrc	este.mxml:4]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.core::UIComponent/dispatchEvent()[C:autobuild3.2.0frameworksprojectsframeworksrcmxcoreUIComponent.as:9298]
    at mx.core::UIComponent/set initialized()[C:autobuild3.2.0frameworksprojectsframeworksrcmxcoreUIComponent.as:1169]
    at mx.managers::LayoutManager/doPhasedInstantiation()[C:autobuild3.2.0frameworksprojectsframeworksrcmxmanagersLayoutManager.as:718]
    at Function/http://adobe.com/AS3/2006/builtin::apply()
    at mx.core::UIComponent/callLaterDispatcher2()[C:autobuild3.2.0frameworksprojectsframeworksrcmxcoreUIComponent.as:8628]
    at mx.core::UIComponent/callLaterDispatcher()[C:autobuild3.2.0frameworksprojectsframeworksrcmxcoreUIComponent.as:8568]

De baixo para cima é a execução da thread que fez o erro acontecer, mais é de cima para baixo que deve ser lida.

Neste caso ele disse que na linha 9 do teste.mxml que iniciou o chamado, que resultou no erro acima. Valide corrija que seu código irá funcionar.

Fique por dentro de nossas novidades, ideias e atualizações