O que está acontecendo isso porque o flex carrega o objeto quando ele é
desenhado na tela ou seja apenas depois que você clica no tabBar,
geralmente e usado uma variavel Binding boolean e em vez de mandar o
comando para o objeto Button você envia para a variavel boolean. Veja
abaixo:

//cria variavel do tipo Binding
*[Binding]*
*public var ativoId2:Boolean = false;*

No código mxml do seu Button fica assim

*<s:Button id="id2" x="38" y="62" label="id2" enabled="{ativoId2}"/>*

A segundo opção que não é muito recomendada mais funciona seria forçar o
flex a criar todos os seus componentes ao iniciar. No seu ViewStack ficaria
assim

*<mx:ViewStack creationPolicy="all">...*

usando a propriedade creationPolicy para forçar a criação de todos os
objetos que estão dentro dele.


Em 12 de abril de 2014 20:10, Robinho de Morais
<[email protected]>escreveu:

> Estou tentando desabilitar um botão que está em outro navigatorContent do
> mesmo viewstack e eu tenho o seguinte erro
>
> TypeError: Error #1009: Cannot access a property or method of a null
>> object reference.
>
> at
>> telas.pes::cadPessoas/__id1_click()[C:\xampp\htdocs\AppInnovation\src\telas\pes\cadPessoas.mxml:294]
>
>
> Abaixo o código que montei de teste do erro que está ocorrendo....
>
>
> <mx:ViewStack id="viewstack1" x="955" y="75" width="200" height="200">
>> <s:NavigatorContent width="100%" height="100%" label="View 1">
>> <s:Button id="id1" x="15" y="44" label="desabilita id2">
>> <s:click>
>> <![CDATA[
>> this.id2.enabled = false;
>> ]]>
>> </s:click>
>> </s:Button>
>> </s:NavigatorContent>
>> <s:NavigatorContent width="100%" height="100%" label="end">
>> <s:Button id="id2" x="38" y="62" label="id2"/>
>> </s:NavigatorContent>
>> <s:NavigatorContent width="100%" height="100%" label="ema">
>> <s:Button id="id3" x="65" y="49" label="habilita id2">
>> <s:click>
>> <![CDATA[
>> this.id2.enabled = true;
>> ]]>
>> </s:click>
>> </s:Button>
>> </s:NavigatorContent>
>> </mx:ViewStack>
>> <s:TabBar x="887" y="75" dataProvider="{viewstack1}"/>
>
>
> Depois que eu clico no tabBar do botão id2 ai sim eu consigo desabilitar
> ou habilitar ele de qualquer outra aba, porque isso ocorre ?
>
> --
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para [email protected]
> Para sair da lista, envie um email em branco para
> [email protected]
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
> ---
> Você recebeu essa mensagem porque está inscrito no grupo quot;flexdev" dos
> Grupos do Google.
> Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie
> um e-mail para [email protected].
> Para mais opções, acesse https://groups.google.com/d/optout.
>

-- 
-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
--- 
Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" dos 
Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um 
e-mail para [email protected].
Para obter mais opções, acesse https://groups.google.com/d/optout.

Responder a