Minha primeira experiência com o Adobe AIR
Escrito por Igor Costa em 29th, outubro, 2007Semana passada eu tive minha primeira experiência com o Adobe AIR, eu decidir só postar hoje por que foi onde arranjei tempo suficiente para escrever com mais calma antes que perca o vôo.
Para os que me conhecem de perto eu não gosto e nem dou muita importância ao AIR, enquanto ele não tiver o que preciso que é parcialmente:
- Comunicação com DLL
- Acesso a ODBC
- Acesso à registro da Máquena(win)
Quando ele tiver isso eu volto à postar coisas legais que nele podem ser feitas, mais por produção eu continuo usando o ZINC, que ai sim, sendo franco funciona que é uma beleza para o que “Professional” usam no dia-a-dia.
Mais em fim, não tou aqui para falar mal do AIR mais sim falar da minha primeira experiência com a tecnologia.
Primeiro passo eu instalei o Run-time e depois criei meu primeiro projeto usando o Flex Builder 3 beta 2 para o que precisava. Então vi que por padrão o AIR tem um componente baseado no webkit que renderiza páginas em HTML com suporte ao tag(embed), o que para eu é ótimo. Em fim, comecei a testar e percebi das seguintes limitações.
O componente HTML não aceita ser adicionado em viewStack, então para criar ou você coloca em um Container(Panel, Canvas,HBox,VBox,…,etc), ou você está em apuros por que não vai funcionar.
Sobre o Run-time, ele tem um esquema legal, cria e atualiza sozinho a parte de instalador com acesso ao root Package do Windows para instalar o programa, porém quando tentei executar o tal do locale em jp_JP ele não aceita, fica meio que uma mistura da torre de Babel, inglês e Japonês unidos.
Resumidamente foi isso que aconteceu com a minha primeira experiência com o AIR, já fiz alguns testes hoje por 30 minutos no Drag,Drop de arquevos e pode ser feita alguma coisa legal com esse tipo de recurso.
O resultado de 4 horas de uso do AIR deu-se nisso, no código fonte abaixo, que é um Navegador com Abas, igualzinho no Firefox. Eu tentei usar um leitor de RSS, mais o tempo foi meu rival.
O nome do experimento é Adobe AIR Navigator, o código está logo abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | < ?xml version="1.0" encoding="utf-8"?> <mx :WindowedApplication creationComplete="init()" xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="1092" height="540" xmlns:code="http://code.google.com/p/flexlib/"> </mx><mx :Script> < ![CDATA[ import mx.core.IFlexDisplayObject; import mx.events.CloseEvent; import mx.managers.PopUpManager; import views.RSSViewer; import mx.collections.ArrayCollection; public var protocol:String = "http://"; public var protocolRSS:String = "feed://"; public var queryGoogle:String = "http://www.google.com/search?hl=en&q="; [Bindable] public var collectionLocations:ArrayCollection; public var objLocation:Object; // adding new view, added as bindable to enable change from input checkfields. [Bindable]public var rssView:RSSViewer = new RSSViewer(); private function init():void { collectionLocations = new ArrayCollection(); // add listeners to the button rssButton.addEventListener(MouseEvent.CLICK,createAndViewRSS); } public function createAndNavigate():void { objLocation = new Object(); objLocation.url = protocol + adress.text; objLocation.query = queryGoogle + querySearch.text; collectionLocations.addItem(objLocation); } public function navigate():void { navigatorContainer.location = objLocation.url; } public function navigateIntoItem():void { navigatorContainer.location = collectionLocations.getItemAt(tabs.selectedIndex).url.toString(); } private function searchQuery():void { navigatorContainer.location = queryGoogle +querySearch.text; } // creating the rss view public function createAndViewRSS(event:Event):void { PopUpManager.addPopUp(rssView,this,false); PopUpManager.centerPopUp(rssView); rssView.addEventListener(CloseEvent.CLOSE,closeIt); } private function closeIt(event:CloseEvent):void { PopUpManager.removePopUp(event.currentTarget as IFlexDisplayObject); } ]]> </mx> <mx :VBox width="100%" height="100%"> </mx><mx :ApplicationControlBar x="0" y="0" width="100%"> </mx><mx :VBox width="100%" height="100%" verticalAlign="middle"> </mx><mx :HBox width="100%"> <mx :Label text="Adobe Air Navigator - BETA" fontWeight="bold"/> <mx :Spacer width="100%"/> <mx :Label text="{'Número de abas:'+collectionLocations.length.toString()+' '+'aberta(s)'}" id="info"/> </mx> <mx :HBox width="100%" verticalAlign="middle"> <mx :Button visible="false" id="rssButton" label="RSS"/> <mx :Label text="Endereço:"/> <mx :TextInput focusIn="adress.selectionEndIndex" enter="createAndNavigate()" id="adress" width="100%"/> <mx :Button label="Ir!" click="createAndNavigate()"/> <mx :Label text="Pesquensar :"/> <mx :TextInput enter="searchQuery()" focusIn="querySearch.text =''" text="Google!" id="querySearch"/> <mx :Button click="searchQuery()" label="OK"/> </mx> <mx :VBox width="100%" height="100%" verticalGap="2"> <code :SuperTabBar labelField="url" itemClick="navigateIntoItem()" childAdd="navigate()" id="tabs" dataProvider="{collectionLocations}"/> </mx><mx :HBox id="InternalViews" width="100%" height="100%" y="28"> <mx :HTML id="navigatorContainer" width="100%" height="100%"/> </mx> <mx :HBox width="100%"> <mx :Spacer width="100%"/> <mx :Label fontSize="9" text="v 1.0 - by Igor Costa"/> </mx> |
Espero caro leitor que você goste do AIR e começe a fazê-lo funcionar. O código fonte é gratuito, pode ser usado em seu aplicativo com tato que mencione a origem. O resto é por conta de vocês.




Comentários feitos