Se eu precisasse fazer algo do gênero, o faria assim:
1) Criaria um componente custom que herda Canvas.2) Criaria um segundo componente custom que herda Canvas e possui dentro dele um componente Image (para o ícone) e um Text (para o Label) 3) Faria um método AddIcon(iconSource:String, x:int, y:in, label:String) no componente 1 que, ao ser chamado, instanciaria um componente 2. Coloco este componente 2 dentro do meu componente 1(this.addChild). 4) Seto o source da imagem para o iconSource, o text do Text para label e seto o x e y do componente 2 dentro do canvas para x * componente2.width. O mesmo para y. 5) Usando os macanismos de drag & drop do Flex, seto os componentes 2 presente no meu componente 1 como draggable e o meu componente 1 como drop. O evento de drop no componente 1 me dá as coordenadas de drop e então eu movo o componente 2 sendo arrastado para as coordenadas do mouse do evento drop.
Mais ou menos isso... não é trivial mas também não é lá tão complicado.Com um pouquinho de cálculo e um pouco de criatividade, dá pra deixar exatamente igual ao Windows 7 (incluindo o drop shadow no label e até o efeito meio transparente ao arrastar o ícone).
-------------------------------------------------- From: "Hugo Rabelo" <hugo.fac...@gmail.com> Sent: Tuesday, November 17, 2009 5:48 PM To: "flexdev" <flexdev@googlegroups.com> Subject: [flexdev] Re: Componente de icones como se fosse um desktop
Ivan, eu já desenvolvi algo similiar ao que você está querendo. No meu sistema, eu posso puxar um item de menu, de um menubar e colocá- lo em um Canvas, como um botão clicável. Para isto, eu mexi com DragManager, DragSource, DragEvent.. Dá uma googlada e olha o último link que a Gabriela passou, pra ver se dá uma iluminada no seu pensamento. Qquer coisa, pode perguntar ae... Mas, na teoria, todos os componentes podem ser arrastáveis.. --~--~---------~--~----~------------~-------~--~----~ Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.comPara sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.comMais opções estão disponíveis em http://groups.google.com/group/flexdev -~----------~----~----~----~------~----~------~--~---
smime.p7s
Description: S/MIME cryptographic signature