Desenvolvimento - ActionScript
Comunicação entre dois aplicativos Flex usando uma conexão local na porta 8101
Esta artigo é traduzido pelo evangelist técnico Christophe Coenraets, do site blog, devido ao pedido de muitos desenvolvedores (inclusive eu) que ao ler seu blog, pediram um exemplo de como poderia ser feito tal situação.
por Igor CostaOlá pessoal. O tema deste artigo é a comunicação entre dois aplicativos Flex usando uma conexão local na porta 8101.
Essa matéria é traduzida pelo evangelista técnico Christophe Coenraets, do site blog, devido ao pedido de muitos desenvolvedores (inclusive eu) que ao ler seu blog, pediram um exemplo de como poderia ser feito tal situação.
Demorou um tempo, mas aí está a resposta.
O exemplo trás a comunicação entre dois aplicativos flex rodando simultaneamente, e se estes poderiam se comunicar. A resposta é sim, a classe de palavras que um aplicativo flex envia a um arquivo para um evento em outro aplicativo em flex rodando ao mesmo tempo, como mostra o exemplo abaixo:
1. Aplicação de envio
Listagem 1: Aplicação de envio
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" initialize="initialize()"> <mx:Script> var myConnection; // declara a variavel minhaConexao function initialize() { myConnection = new LocalConnection(); // usada como conexão local myConnection.onStatus = mx.utils.Delegate.create(this, onStatus); } // cria a função de envio para a outra aplicação chamada de application_b function sendMessage() { myConnection.send("application_b", "messagePosted", myMessage.text); } function onStatus(result) {// função de erro com operador ternário status.text=result.level == "error"?"Operation failed":"Operation succeeded"; } </mx:Script> // feito os procedimentos de script partiremos para a confecção da página <mx:TextInput id="myMessage" /> <mx:Button click="sendMessage()" label="Send"/> <mx:Label id="status"/> </mx:Application>
Código Comentado:
myConnection = new LocalConnection(); Cria uma instancia de classe de conexão local
myConnection.onStatus = mx.utils.Delegate.create(this, onStatus); O evento onStatus é tomado depois do método chamado, fazendo com que você responda com sucesso ou falhe.
myConnection = new LocalConnection(); Cria uma instancia de classe de conexão local
myConnection.onStatus = mx.utils.Delegate.create(this, onStatus); O evento onStatus é tomado depois do método chamado, fazendo com que você responda com sucesso ou falhe.
myConnection.send("receivingapp", "messagePosted", myMessage.text);
- "reveivingapp" é o nome de aplicativo receptor usado na conexão;
- "messagePosted" É o evento que recebe da aplicação;
- myMessage.text é um dado que passa a receber do aplicativo, vc pode passar os objetos ou multiplicar os valores separadamente.
2. Aplicativo que "Recebe"
Listagem 2: Aplicativo de "Recebimento"
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" initialize="initialize()"> <mx:Script> var myConnection; function initialize() { myConnection = new LocalConnection(); myConnection.messagePosted = mx.utils.Delegate.create(this, messagePosted); myConnection.connect("receivingapp"); } function messagePosted(message) { messageList.text+=message+"\n"; } </mx:Script> <mx:TextArea id="messageList" width="300" height="300"/> </mx:Application>
Código Comentado:
myConnection = new LocalConnection(); Cria uma instância com classe da LocalConnection
>myConnection.messagePosted = mx.utils.Delegate.create(this, messagePosted); Deleta mensagem postada para função de mensagem enviada
myConnection.connect("receivingapp"); Conexão usada como "receivingapp" como nome de conexão
É isso ai pessoal o Flex mal saiu nas prateleiras e o pessoal já está devorando aos extremos, mas enfim, espero que tenham gostado da matéria do Christophe e aprendido um pouco.
Ao pessoal que participou dos testes por favor apareçam, estamos precisando da sua força.
Um grande abraço para todos e espero que dúvidas aparecam, as fontes da informações e informações adicionais podem ser encontradas relacionadas abaixo:
Documentações para começar com o Flex: livedocs.macromedia.com/flex
- Custom Events + AMF + AS3 + ColdFusion – Casamento que dá certo!Flash
- Actionscript AS3 + AMFPHPActionScript
- Trabalhando com a classe DataGrid – Pacote fl.controlsActionScript
- Video-player em AS3 no Flash - Parte 1ActionScript
- Upload de arquivos em Flash (parte 2)ActionScript