é o 'true" no parametro bubble... qdo vc dispara um evento ele sempre vai 'pra cima' na cadeia do 'parent' to teu componente. agora se vc coloca o parâmetro 'bubble=true', após 'subir' na cadeia o event faz meia volta e desce de novo... daí o que acontece... o teu componente recebe um CloseEvent... e o que é que vc está fazendo no Closeevent... manda outro CloseEvent pra percorrer o mesmo caminho... isto se chama loop meu caro :-) só podia dar em stack overflow mesmo...
julio On 16 fev, 22:43, RafaelViana <rfl.vi...@gmail.com> wrote: > Quando rodo no servidor do Eclipse, ele funciona sem problema.Porém, > quando executo como Flex Application, dá esse erro ao fechar a janela: > > Error: Error #1023: Stack overflow occurred. > at flash.events::EventDispatcher/dispatchEventFunction() > at flash.events::EventDispatcher/dispatchEvent() > at mx.core::UIComponent/dispatchEvent()[C:\autobuild\3.2.0\frameworks > \projects\framework\src\mx\core\UIComponent.as:9298] > at br.com.cauirs.view.components::CommonTitleWindow/fecharJanela()[F: > \Projetos\SisMaconaria\src_flex\br\com\cauirs\view\components > \CommonTitleWindow.mxml:18] > at br.com.cauirs.view.components::CommonTitleWindow/ > ___CommonTitleWindow_TitleWindow1_close()[F:\Projetos\SisMaconaria > \src_flex\br\com\cauirs\view\components\CommonTitleWindow.mxml:5] > > Após uma pesquisa na internet achei esse > link:http://curtismorley.com/2007/08/19/flashflex-as3-error-1023-stack-ove... > > Error #1023: Stack overflow occurred > at MyClass/get id() > > Description: > This will happen if the stack has so much data that it is full. > Nothing like Thanksgiving dinner to overflow my stack. What is a > stack and how does it get full you ask. Simply put each method > (function) has a stack and that stack stores data associated with the > method such as local variables with the method. Although it is a good > idea to understand what a stack is you really you don't need to have > an in depth understanding of stacks to understand this error and it's > solution. Basically this error is saying that you are most likely > calling the function recursively. Or in other words you might be > calling the function from within itself. > > Solution: > To rid yourself of ActionScipt error 1023 make sure that you don't > call the method from within itself which will eliminate any type of > recursion in your method call. You may be tempted to do this by > setting a variable name the same as the function name. Change either > one and this will go away. Notice in the 'Bad Code1' example that each > time the getter returns what you think is an 'int' you actually are > calling the setter function again recursively. The trace statement > will also produce AS3 Error #1023 > > O erro está na função de fechar janela, mas não vejo nenhuma > recursividade como é citada no link, ou algum erro semelhante. > > public function fecharJanela():void { > dispatchEvent(new > CloseEvent(CloseEvent.CLOSE, true)); > PopUpManager.removePopUp(this); > } > > O que estou fazendo errado? > > On 16 fev, 14:37, RafaelViana <rfl.vi...@gmail.com> wrote: > > > Conseguiu ^^ > > Erro bobo meu, não sabia que os métodos que são executados no > > eventListener, necessitam receber um evento como parametro. > > Colocando no método o parametro event:CloseEvent, funcionou. > > > On 16 fev, 08:32, RafaelViana <rfl.vi...@gmail.com> wrote: > > > > Não funcionou... > > > > Não sei por que, no debugger peguei isso, ele está disparando o > > > evento, só não está conseguindo "ouvir" ele (eu acho), ou executar a > > > função > > > > at flash.events::EventDispatcher/dispatchEventFunction() > > > at flash.events::EventDispatcher/dispatchEvent() > > > at > > > mx.core::UIComponent/dispatchEvent()[C:\autobuild\3.2.0\frameworks > > > \projects\framework\src\mx\core\UIComponent.as:9298] > > > at br.packages...::CommonTitleWindow/fecharJanela()[F:\Projetos > > > \SisMaconaria\src_flex\br\com\view\components\CommonTitleWindow.mxml: > > > 20] > > > at br.packages...::CommonTitleWindow/ > > > ___CommonTitleWindow_TitleWindow1_close()[F:\Projetos\src_flex\br\com > > > \view\components\CommonTitleWindow.mxml:5] > > > > A funçao está correta, então acredito que é o listener que não está > > > correto, mas fiz conforme o que voces falaram, e mesmo assim não > > > funcionou... > > > > Não sei, se tem alguma relação por eu criar as janelas de modo > > > dinâmico? > > > > PopUpManager.createPopUp(this, classRef, false).addEventListener > > > (CloseEvent.CLOSE, abrirMenu); > > > > Realmente, não sei o que está errado... > > > > On 15 fev, 19:12, Gabriela Trindade Perry <gabrielape...@hotmail.com> > > > wrote: > > > > > Nao precisa disso nao. > > > > Mas se um dia ficares curioso, olha o fonte do Cairngorm, que e assim > > > > que ele funciona. > > > > > Enfim: se passares um CloseEvent, da StackOverFlow. Sei la porque. > > > > Se disparas um evento qualquer, funciona blz. > > > > > APP > > > > d = PopUpManager.createPopUp(this, Dialog, false) as Dialog; > > > > d.addEventListener("fechar", fecharMenu); > > > > > TTW > > > > <mx:TitleWindow > > > > xmlns:mx="http://www.adobe.com/2006/mxml" > > > > layout="absolute" width="200" height="200" > > > > showCloseButton="true" > > > > close="fechar()"> > > > > > <mx:Script> > > > > <![CDATA[ > > > > import mx.managers.PopUpManager; > > > > > private function fechar():void{ > > > > this.dispatchEvent(new Event("fechar", > > > > true)); > > > > PopUpManager.removePopUp(this); > > > > } > > > > ]]> > > > > </mx:Script> > > > > > <mx:Label text="JANELA"/> > > > > </mx:TitleWindow> --~--~---------~--~----~------------~-------~--~----~ Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com Mais opções estão disponíveis em http://groups.google.com/group/flexdev -~----------~----~----~----~------~----~------~--~---