Talvez alguns se perguntarão, porque HTTP-SERVICE ja no nível iniciante?
Respondo já, é algo prático que mostra resultado de forma a mostrar o que o flex pode fazer, com poucas linhas de código.
Bom, pra muitos só as palavras “HTTP-SERVICE” já dá um nó no cérebro, mas aqui falarei um pouco dele e mostrarei como usar.
Primeiro defino que utilizarei a idéia de componentes, onde voce cria um componente dentro do mesmo projeto e depois em sua aplicacao chama este componente para facilitar o desenvolvimento.
(Obs, ainda nao sei formatar no WordPress de forma que fique bunito que nem nos blogs pagos, se alguem souber, dá um apoio.)
Utilizarei então dois arquivos principais:
- photosFLK
- componenteFLK
Primeiro passo
-Crie um projeto (chamarei de photosFLK), isso gera uma aplicacao com o mesmo nome (File > new > flexProject)
- Após criado o projeto, digite este código dentro de sua aplicação:
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml”
backgroundGradientColors=”[0xFFFFFF, 0xAAAAAA]“
horizontalAlign=”left”
verticalGap=”15″
horizontalGap=”15″ creationComplete=”addListenerToControls()”><mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.events.FlexEvent;
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
[Bindable]
private var photoFeed:ArrayCollection;
// add a event listener to textInput control using the Event Listeners
// You can search more at addEventListeners on this site
private function addListenerToControls():void {
searchTerms.addEventListener(FlexEvent.ENTER,requestPhotos);
}
// Request photos based on keyword criteria you insert
private function requestPhotos(event:Event):void {
// if the photoService is still loading we cancel to prevent errors
// then we call again.
photoService.cancel();
var params:Object = new Object();
params.format = ‘rss_200_enc’;
params.tags = searchTerms.text;
photoService.send(params);
}
// Handler the result function from HTTPService request you did
// and convert the result into a Array Collection
private function photoHandler(event:ResultEvent):void {
photoFeed = event.result.rss.channel.item as ArrayCollection;
}
// If the HTTPService had errors, we handle it here show an alert message
// like we have in Javascript
private function photoFaultHandler(event:FaultEvent):void {
Alert.show(“Impossible to load or reach photos from services”,”Error”);
}
]]>
</mx:Script>
<mx:HTTPService id=”photoService” showBusyCursor=”true”
url=”http://api.flickr.com/services/feeds/photos_public.gne”
result=”photoHandler(event)” fault=”photoFaultHandler(event)”
/>
<mx:HBox>
<mx:Label text=”Flickr tags or search terms:” />
<mx:TextInput id=”searchTerms” />
<mx:Button label=”Search”
click=”requestPhotos(event)” />
</mx:HBox>
<mx:TileList width=”100%” height=”100%”
dataProvider=”{photoFeed}”
itemRenderer=”componentFlk”>
</mx:TileList>
</mx:Application>
Segundo passo
Agora crie um componente do tipo VBOX, renomeando ele para “componenteFlk”
Digite o código abaixo dentro dos códigos do component.
<?xml version=”1.0″ encoding=”utf-8″?> <mx:VBox xmlns:mx=”http://www.adobe.com/2006/mxml”
width=”125″ height=”125″
paddingBottom=”5″ paddingLeft=”5″ paddingTop=”5″ paddingRight=”5″
horizontalScrollPolicy=”off” verticalScrollPolicy=”off”
horizontalAlign=”center”>
<mx:Image width=”75″ height=”75″
source=”{data.thumbnail.url}”/>
<mx:Text text=”{data.credit}”/>
</mx:VBox>
Terceiro passo
Pronto, agora é só rodar o projeto, clicando no “Play”.
Como este tutorial é somente para ilustar o uso do HTTP Service, defino que:
1-Criamos um projeto e uma aplicacao
2-Criamos um component
3-Definimos de onde viria os dados via HTTP Service. (exemplo abaixo)
<mx:HTTPService id=”photoService” showBusyCursor=”true”
url=”http://api.flickr.com/services/feeds/photos_public.gne”
result=”photoHandler(event)” fault=”photoFaultHandler(event)”
/>
Agora os dados são puxados do site da FLICKR, onde ja possui uma lista de imagens e as respectivas no servidor.
E nosso TileList está usando o componentFlk criado
<mx:TileList width=”100%” height=”100%”
dataProvider=”{photoFeed}”
itemRenderer=”componentFlk”>
</mx:TileList>
Pronto, espero ter ajudado. Passando como utilizar o HTTP Service.
Observe o exemplo de como ficou abaixo…
Boa Sorte!





Posted by Fechine on March 5, 2009 at 11:50 am
Só uma correção.
Em alguns momentos você informa “componenteFlk”, mas, no código, está “componentFlk” (sem o “e”).
Aguardo os novos tutorias.. vlws!
Posted by flashewill on October 30, 2009 at 2:45 am
Ixi, é mesmo?
Valeu pela observação,
Gostaria de fazer mais, mas o tempo está tão maluco que não consigo nem responder as mensagens aqui.
Mas obrigado pela mensagem e presteza.
Posted by Marco on December 5, 2009 at 3:10 am
Achei o site através de uma busca sobre http service.
Estou comecando a mexer com Flex ha pouco tempo e me dei de cara com o httpservice que me é muito útil para puxar .xml q uso como banco de dados de leitura.
O .xml está na raiz do src e em url coloquei url=”bd.xml” para apontar pro diretorio raiz, correto? Compilo em meu pc perfeitamente e faco um Export. Quando eu levo a pasta exportada para outros pcs eu tenho um Fault Error do httpservice como se aparentemente ele não estivesse encontrando o .xml.
Ja tentei colocar url=”C:\bd.xml”, exportei e levei os arquivos para outro pc onde coloquei o bd.xml no diretorio manualmente em C:\. Infelizmente ocorre o mesmo erro. Não sei o que fazer e talvez voce possa me ajudar.
Obrigado,
Marco
Posted by flashewill on January 28, 2011 at 4:08 pm
bom, primeiramente sempre deixe os caminhos relativos, e nao absolutos(se nao souber a diferença de uma fuçada por ai).
Boa sorte
Posted by Lucas Pasquetto on April 26, 2010 at 7:52 pm
Ola.
Amigo.. estou com um problema..
quando eu abro minha galeria.. imprime as fotos td normal, porém.. quando eu desço a barra de rolabem, e volto para cima, as fotos mudam de posição.. como se fosse aleatorio, e quando clico.. abre a foto certa, mas com a miniatura errada..
oque pode ser?
Posted by flashewill on January 28, 2011 at 4:07 pm
deve ser problema de chache, limpe ou desative-a.
boa sorte!
Posted by Estevan on September 22, 2010 at 4:15 am
Parabéns pelo blog, ja está nos favoritos !!
aguardando novidades!!!
Posted by flashewill on January 28, 2011 at 4:06 pm
valeu, nao prometo colocar material em breve pois esta uma correria maluca aqui, mas se um projeto que estou vendo, vingar, ai sim, vai tudo para o blog.
valeu pela visita
Posted by flashewill on January 28, 2011 at 4:09 pm
Valeu Estevan, vamos ver se consigo lançar mais materiais, eu gostaria de até montar um grupo de estudos aqui em sao paulo, vamos ver o que da.
Obrigado.
Posted by fredman on October 26, 2010 at 11:10 pm
Interessante. Poderia mandar este tutorial em pdf.
Poderia também mandar um tutorial passo-a-passo com conexão e operação com algum Banco de Dado,
Att,
Fredman
Posted by flashewill on January 28, 2011 at 4:04 pm
acho que nao, nao sou um criador de tutoriais, escrevo pouco e somente neste formato.
valeu pela visita