Perdão, vou colocar o código completo:
// codigo do presentation
override public function close():void
{
ScreenFactory.removeByKey(ScreenIDs.NOME_TELA);
}
// codigo para remover a tela
public static function removeByKey(keyValue : String):void {
var i : int = screenKeys.getItemIndex(keyValue);
if (i > -1) {
PopUpManager.removePopUp(screens.removeItemAt(i) as IFlexDisplayObject);
screenKeys.removeItemAt(i);
}
}
Tanto pelo botão como pelo 'X' da TitleWindow passa tudo pelos códigos acima
sem erro, porém pelo 'X' dá erro no FocusManager.as no método abaixo (agora
que cheguei la no debug)
private function childHideHandler(event:Event):void
{
var target:DisplayObject = DisplayObject(event.target);
// trace("FocusManager focusInHandler in = " +
this._form.systemManager.loaderInfo.url);
// trace("FM " + this + " focusInHandler " + target);
if (lastFocus && !isEnabledAndVisible(DisplayObject(lastFocus)))
{
DisplayObject(form).stage.focus = null; // Aqui da o erro, no
caso o 'stage' está null
lastFocus = null;
}
}
2011/7/18 bruno bg <[email protected]>
> vc não passou como parâmetro o valor de I , do seu array.
> coloque lá um BREAK e faz o debug.
>
> --
> ****************************************************
> www.brbsoftware.com.br
> [email protected] (MSN & Skype)
> blogflex.brunobg.com
> @brunogrohs
> (21) 9913-2397
>
>
>
>
> Em 18 de julho de 2011 10:54, Leonardo Ribeiro
> <[email protected]>escreveu:
>
>> Pessoal,
>>
>> Tenho uma janela TitleWindow e nessa janela eu tenho um botão fechar.
>> Tanto o botão fechar quando o botão evento close da TitleWindow ( botão
>> 'X')
>> eu chamo o método close do meu Presentation (Swiz).
>> Esse método do Presentation apenas remove o popup (janela no caso), porém
>> se eu clico no botão fechar (Button) tudo ocorre bem, já se eu clico no
>> 'x' da janela
>> recebo erro
>>
>> TypeError: Error #1009: N⭠矰oss쵥l acessar uma propriedade ou um m賯do de
>> uma refer魣ia de objeto nula.
>> at
>> mx.managers::FocusManager/childHideHandler()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\FocusManager.as:1759]
>> at flash.events::EventDispatcher/dispatchEventFunction()
>> at flash.events::EventDispatcher/dispatchEvent()
>> at
>> mx.core::UIComponent/dispatchEvent()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:12528]
>> at
>> mx.core::UIComponent/setVisible()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:3088]
>> at mx.core::UIComponent/set
>> visible()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:3047]
>> at
>> mx.binding::Binding/defaultDestFunc()[E:\dev\4.x\frameworks\projects\framework\src\mx\binding\Binding.as:270]
>> at Function/http://adobe.com/AS3/2006/builtin::call()
>> at
>> mx.binding::Binding/innerExecute()[E:\dev\4.x\frameworks\projects\framework\src\mx\binding\Binding.as:475]
>> at Function/http://adobe.com/AS3/2006/builtin::apply()
>> at
>> mx.binding::Binding/wrapFunctionCall()[E:\dev\4.x\frameworks\projects\framework\src\mx\binding\Binding.as:385]
>> at
>> mx.binding::Binding/execute()[E:\dev\4.x\frameworks\projects\framework\src\mx\binding\Binding.as:321]
>> at
>> mx.binding::Binding/watcherFired()[E:\dev\4.x\frameworks\projects\framework\src\mx\binding\Binding.as:501]
>> at
>> mx.binding::Watcher/notifyListeners()[E:\dev\4.x\frameworks\projects\framework\src\mx\binding\Watcher.as:311]
>> at
>> mx.binding::PropertyWatcher/eventHandler()[E:\dev\4.x\frameworks\projects\framework\src\mx\binding\PropertyWatcher.as:377]
>> at flash.events::EventDispatcher/dispatchEventFunction()
>> at flash.events::EventDispatcher/dispatchEvent()
>> at
>> mx.core::UIComponent/dispatchEvent()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:12528]
>>
>>
>>
>> Na tela a configuração do botão 'X' é
>>
>> close="{nomeDoPM.close()}"
>>
>> e no botão fechar o click está configurado da mesma forma como acima.
>>
>> O método do meu Presentation só faz isso
>>
>> PopUpManager.removePopUp(screens.removeItemAt(i) as IFlexDisplayObject);
>>
>> Onde screens é um arrayCollection contendo as telas abertas...
>>
>>
>> --
>> []'s
>> Leonardo
>>
>> Linux User #488650
>> Ubuntu User #27045
>> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>>
>> --
>> 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 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
--
[]'s
Leonardo
Linux User #488650
Ubuntu User #27045
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
--
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