Ola pessoal.Estava procurando pela internet como deixar o LinkBar mais bonito, e hoje meu amigo @fredy_gadotti encontrou a solucao.Vejam:Fonte disponivel, botao direito do mouse e "View Source"Achado em http://eaigurus.com/blog/?p=19Vlw pessoal. Palavras perfeitas do Igor Costa, vale a pena ler todo o post dele:http://www.igorcosta.com/blog/?p=1472 Ola pessoal, apos muito tempo sumido, por falta de tempo. Voltei para mais um post.Hoje vou mostrar algo que tive que implementar em um DataGrid ou AdvancedDataGrid.Necessidade:Poder copiar os registros selecionados para o clipboard, tambem poder adicionar registros vindos de uma tabela no excel, atraves do CTRL+C e CTRL+V.Solucao:Implementar as funcoes de COPY e PASTE em um datagrid, podendo copiar os itens selecionados, e tambem adicionar novos itens (desde que estejam com a mesma quantidade de colunas).Na pratica: Error: Embedded data could not be displayed. Pode utilizar os atalhos do teclado tambem.Voce pode colar o texto abaixo em cima do grid: abc1 cdf2 ghi3 jkl4 mno5 pqr6 stu7 vxz8 Codigo:<?xml version="1.0" encoding="utf-8"?><s:Application creationComplete="application1_creationCompleteHandler(event)" minHeight="600" minWidth="955" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:ui="flash.ui.*"> <fx:Script> <![CDATA[ import flash.desktop.Clipboard; import flash.desktop.ClipboardFormats; import flash.events.Event; import mx.collections.ArrayCollection; import mx.events.FlexEvent; [Bindable] private var array:ArrayCollection = null; private function onEvent(evt:Event):void { switch (evt.type) { case "paste": { var clipboadStr:String = Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT) as String; var arrayItem:Array = clipboadStr.split("\n"); for each (var item:String in arrayItem) { if (item.length>0) { var arrayValorItem:Array = item.split("\t"); var obj:Object = new Object(); var cont:int = 0; for each (var col1:Object in evt.currentTarget.columns) { obj[col1.dataField] = arrayValorItem[cont]; cont++; } evt.currentTarget.dataProvider.addItem(obj); } } break; } case "cut": { break; } case "copy": { if (evt.currentTarget.selectedItems.length>0) { var str:String = ""; for each (var itemObj:Object in evt.currentTarget.selectedItems) { for each (var col:Object in evt.currentTarget.columns) { str += itemObj[col.dataField]+"\t"; } str += "\n"; } System.setClipboard(str); } break; } case "selectAll": { var indexArr:Array = []; for (var i:uint = 0; i<evt.currentTarget.dataProvider.length; i++) { indexArr.push(i); } evt.currentTarget.selectedIndices = indexArr; break; } default: { break; } } } private function menuSelect(evt:ContextMenuEvent):void { evt.currentTarget.contextMenu.hideBuiltInItems(); } protected function application1_creationCompleteHandler(event:FlexEvent):void { array = new ArrayCollection(); var obj:Object = new Object(); obj.coluna1 = "asd1"; obj.coluna2 = "asd2"; obj.coluna3 = "asd3"; obj.coluna4 = "asd4"; array.addItem(obj); obj = new Object(); obj.coluna1 = "qwe1"; obj.coluna2 = "qwe2"; obj.coluna3 = "qwe3"; obj.coluna4 = "qwe4"; array.addItem(obj); obj = new Object(); obj.coluna1 = "zxc1"; obj.coluna2 = "zxc2"; obj.coluna3 = "zxc3"; obj.coluna4 = "zxc4"; array.addItem(obj); } ]]> </fx:Script> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <mx:VBox> <mx:DataGrid id="dgMain" width="100%" height="100%" allowMultipleSelection="true" copy="onEvent(event)" cut="onEvent(event)" dataProvider="{array}" paste="onEvent(event)" selectAll="onEvent(event)"> <mx:contextMenu> <!-- contextMenu: Habilita as opcoes com o botao direito do mouse --> <ui:ContextMenu clipboardMenu="true" menuSelect="menuSelect(event);"> <ui:clipboardItems> <ui:ContextMenuClipboardItems copy="true" cut="false" paste="true" selectAll="true"/> </ui:clipboardItems> </ui:ContextMenu> </mx:contextMenu> <mx:columns> <mx:DataGridColumn dataField="coluna1" headerText="Coluna 1"/> <mx:DataGridColumn dataField="coluna2" headerText="Coluna 2"/> <mx:DataGridColumn dataField="coluna3" headerText="Coluna 3"/> <mx:DataGridColumn dataField="coluna4" headerText="Coluna 4"/> </mx:columns> </mx:DataGrid> </mx:VBox></s:Application>Bom pessoal, por hoje e isso, espero que tenham gostado.Comentem, divulguem, curtam. A Adobe lancou o pre-release do Flex SDK 4.6 (aqui) com muitos componentes novos e alguns Bugs corrigidos.Mais informacoes aqui. ATUALIZACAO: 16/08/2013 ApacheFlex 4.10Pequeno tutorial (copiado e traduzido do Apache Flex) para instalar o Adobe Flash Builder 4.7 junto com a ultima versao do SDK o Apache Flex SDK 4.10 que foi lancado dia 06/08/2013.Entao,