|
O que fizeste não é de todo errado, mas implica que os componentes
saibam demasiada info uns dos outros. O ideal é: - Não usares a classe Event, mas sim estenderes a classe Event (PageEvent, por exemplo); - Adicionares a propriedade page:Number a essa classe, e se quiseres para simplificar a propriedade page ao construtor dessa classe; - Lançares o evento PageEvent com a pagina certa preenchida; - Apanhares o PageEvent, e retirares a pagina do evento. O Custom Event pode ser criado assim: public class PageEvent extends Event { public static const CHANGE:String="change"; public var page:Number; public function PageEvent(page:Number, type:String, bubbles:Boolean=false, cancelable:Boolean=false) { this.page=page; super(type, bubbles, cancelable); } } Depois lanças o evento assim: <comp:controlBar gotoPage="gotoPage(new PageEvent(controlBar.selectedIndex, PageEvent.CHANGE))" id="controlBar"/> Mudas a metadata para: [Event(name="change", type="o.meu.package.PageEvent")] E no handler que apanha o evento, acedes à pagina assim: public function pageChangeHandler(ev:PageEvent):void{
var selectedPage:int = ev.page;
}
Mais info: http://www.riapt.org/2008/07/13/utilizacao-de-custom-events-para-transportar-informacao-entre-componentes-fracamente-acoplados/ :) João Saleiro CTO @ Webfuel Adobe Community Expert Co-founder of the Portuguese RIA Community rui wrote: Boa tarde!Pessoal tenho uma duvida estupida! estou completamente em branco :p É assim, eu tenho um componente, e dentro desse componente tenho metadatas com eventos. depois na aplicação quando clico num botao dentro do componente é disparado o evento e eu chamo a função... até aqui tudo bem.. Mas não estou a ver como é que envio informaçao do target que clicou... na aplicaçao o meu target é o componente.... E eu estou a disparar um evento no change de uma tilelist... e preciso de saber o selectedItem ou currentIndex Entao em resumo tenho no componente: <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Metadata> [Event(name="gotoPage", type="flash.events.Event")] </mx:Metadata> <mx:Script> <![CDATA[ private var eventGoToPage:Event = new Event("gotoPage"); ]]> </mx:Script> <mx:TileList change="dispatchEvent(eventGoToPage)" id="pageList"/> </mx:Canvas> E depois na aplicação tenho: <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:comp="componentes.main.*"/> <mx:Script> <![CDATA[ public function gotoPage(goto:Event):void{ /// O meu goto Event refere-se ao componente e não ao tilelist do componente... /// Pra encontrar o selectedIndex fiz assim: var selectedPage:int = controlBar.pageList.selectedIndex; } ]]> </mx:Script> <comp:controlBar gotoPage="gotoPage(event)" id="controlBar"/> </mx:WindowedApplication> Será a melhor maneira!!!??!!!??? p.s- Não se esqueçam de dar uma olhadela ao http://adigitalbook.com e opinem... --~--~---------~--~----~------------~-------~--~----~ Recebeu esta mensagem porque está inscrito em Grupo "Mailing List da Comunidade Portuguesa de Desenvolvimento de RIAs - www.riapt.org" do Grupos Google. Para enviar mensagens para este grupo, envie um email para [email protected] Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED] Para mais opções, visite este grupo em http://groups.google.com/group/riapt?hl=pt-PT -~----------~----~----~----~------~----~------~--~--- |
- [riapt] metadata events rui
- [riapt] Re: metadata events João Saleiro
- [riapt] Re: metadata events João Fernandes
- [riapt] Re: metadata events rui
- [riapt] Re: metadata events João Fernandes
- [riapt] Re: metadata events rui
- [riapt] Re: metadata events rui
- [riapt] Re: metadata events João Fernandes
- [riapt] Re: metadata events rui
- [riapt] Re: metadata events João Fernandes
