Olá, Visitante. Por favor Entre ou Registe-se se ainda não for membro.
4 de Dezembro de 2008, 20:12:22
Início Ajuda Pesquisa Entrar Registe-se
Notícias: REGISTE-SE JÃ NO REDCODESTUDIO!
A sua Comunidade de Desenvolvimento Web


+  Redcodestudio
|-+  Webmaster's Lounge
| |-+  Tutoriais e Howto's
| | |-+  [Tutorial] Flash Remoting
« anterior seguinte »
Páginas: [1] Ir para o fundo Imprimir
Autor Tópico: [Tutorial] Flash Remoting  (Lida 4287 vezes)
yarcub
Aprendiz
**
Offline Offline

Mensagens: 138


Ver Perfil
« em: 18 de Dezembro de 2006, 16:42:44 »

Resolvi partilhar os meus primeiros passos neste pequeno tutorial.

"Over'n'Out"
Registado
gimbras
Emblema de Prata
****
Offline Offline

Mensagens: 1103



Ver Perfil WWW
« Responder #1 em: 18 de Dezembro de 2006, 17:18:16 »

Elah!
Muito interessante. Bom contributo!

Cumps.
Registado

alftuga
Aprendiz
**
Offline Offline

Mensagens: 202


Ver Perfil WWW
« Responder #2 em: 18 de Dezembro de 2006, 19:05:38 »

Olá e parabens pelo Tutorial

dispatchEvent({type:"onLoad", target:re.result});


este evento serve para escutar a class Blog() ?
Registado
alftuga
Aprendiz
**
Offline Offline

Mensagens: 202


Ver Perfil WWW
« Responder #3 em: 18 de Dezembro de 2006, 19:19:57 »

mais uma coisa e espero que não leves a mal o que vou dizer...

import mx.utils.Delegate;

não serve a nada fazer um import de uma class que não utilizas.

Acho que é muito imortante destacar que a grande vantagen do Remoting (AMF) é os dados chegarem o flash +- serializados essa é a grande vantagem do Remoting.

+ uma vez parabens para o tutorial!
Registado
yarcub
Aprendiz
**
Offline Offline

Mensagens: 138


Ver Perfil
« Responder #4 em: 18 de Dezembro de 2006, 20:28:00 »

Citação de: "alftuga"
Olá e parabens pelo Tutorial

dispatchEvent({type:"onLoad", target:re.result});

este evento serve para escutar a class Blog() ?

Sim.

Citação de: "alftuga"
mais uma coisa e espero que não leves a mal o que vou dizer...

O feedback é smp positivo, principalmente quando adiciona algo construtivo.

Citação de: "alftuga"
import mx.utils.Delegate;

não serve a nada fazer um import de uma class que não utilizas.

Obg, já editei.
É o que dá o copy&paste. Smiley
Como escrevi, o service browser gera o AS base, e ele importa essa classe por defeito.
Como este exemplo é simples ñ foi necessária.

Citação de: "alfatuga"
Acho que é muito imortante destacar que a grande vantagen do Remoting (AMF) é os dados chegarem o flash +- serializados essa é a grande vantagem do Remoting.

Ainda ñ percebi bem o conceito de serializaçäo.
É manter(+/-) o Data Type entre as duas plataformas?
Neste exemplo, o php retorna um array associativo e no Flash obtenho um objecto com essas propriedades. É isso?
Registado
alftuga
Aprendiz
**
Offline Offline

Mensagens: 202


Ver Perfil WWW
« Responder #5 em: 18 de Dezembro de 2006, 21:02:32 »

Citar

Ainda ñ percebi bem o conceito de serializaçäo.
É manter(+/-) o Data Type entre as duas plataformas?
Neste exemplo, o php retorna um array associativo e no Flash obtenho um objecto com essas propriedades. É isso?


Exactamente!
não me parece que seja uma coisa para esquecer ja vistes o conforto?

Recebes logo o objecto e pode tb ser um array(o flash diz que é objecto mas se é Array ele funciona como um array), ou uma string ou um booleano enfim nada a ver com xml...

Porque xml é tudo string sem falar que tens que sempre arrumar o xml dentro um array ou um objecto.
xml = + trabalho lol menos conforto se por acaso o xml é dinamico o seja é criado no run time da query demora + tempo pede mais recursos o server.

eu sou 200% remoting se o cliente é so flash.

outra coisa isso funciona dos dois lados o seja tb podes mandar objectos o  PHP nada mal Wink

Código:

dispatchEvent({type:"onLoad", target:re.result});


Se este evento vem da class Blog porqué target:re.result
atenção com estas coisas...

Neste caso o evento diz que o target é "re.result" mas não da class Blog e isso no as2 é uma dor de cabeça depois para detectar (debuging).

Esses erros no AS3 ja não te vai deixar fazer coisas dessas.

Geralmente quando se cria eventos tb tens que criar uma função para os remover a mesma coisa tb para os listeners.

E agora que estamos na onda do AMF é bom saber que os dados são mais leves que o XML.

E o mais engraçado é que toda gente fala do ajax mas poucos do AMF que é o concurente directo do ajax.

Enfim parabens pelo tutorial tenho a certeza que vai servir a muitos!





[/code]
Registado
yarcub
Aprendiz
**
Offline Offline

Mensagens: 138


Ver Perfil
« Responder #6 em: 18 de Dezembro de 2006, 21:52:48 »

Citação de: "alftuga"
Exactamente!
não me parece que seja uma coisa para esquecer ja vistes o conforto?

Foi exactamente esse conforto que me despertou a curiosidade.

Uhm, aquele target:re.result ñ é necessário?
Pelo help smp pensei que era necessário definir o eventObj.

Exemplo:
Código:
myListener.onLoad = function(eventObj):Void{
var path:Array = eventObj.target;
var n:Number = path.length-1;
for(var i:Number=0;i<n;i++){
trace(path[i].Text);
trace(path[i].Categorie);
trace(path[i].Date);
}
}


Qual é a maneira mais correcta então?
Registado
alftuga
Aprendiz
**
Offline Offline

Mensagens: 202


Ver Perfil WWW
« Responder #7 em: 18 de Dezembro de 2006, 22:10:27 »

Citar
Uhm, aquele target:re.result ñ é necessário?
Pelo help smp pensei que era necessário definir o eventObj.


claro que é necesario definir o event target o problema é que se tentas de ouvir a class Blog com esse evento ele não te vai dar nada porque o target não é a class Blog.

Dai que eu fiz essa pergunta no inicio da converça Wink

entendes?
Registado
alftuga
Aprendiz
**
Offline Offline

Mensagens: 202


Ver Perfil WWW
« Responder #8 em: 18 de Dezembro de 2006, 22:16:22 »

tenta de criar um listener e de ouvir esse evento. e depois falamos amanha eu tenho que ir jantar.
Registado
yarcub
Aprendiz
**
Offline Offline

Mensagens: 138


Ver Perfil
« Responder #9 em: 19 de Dezembro de 2006, 17:47:04 »

Citação de: "alftuga"
claro que é necesario definir o event target o problema é que se tentas de ouvir a class Blog com esse evento ele não te vai dar nada porque o target não é a class Blog.

Acho que ñ estamos a falar da mm coisa. Vou tentar explicar a ideia com que fiquei de como isto funciona.

Aquele método (dispatchEvent) "cria" um evento da classe Blog de maneira a que depois eu o posso escutar com um listener de um objecto dessa classe.

Código:
//Dentro de Blog.as
dispatchEvent({type:"onLoad",target:re.result});

Aquele target é apenas uma propriedade do eventObj na qual eu guardo a instance do resultado que veio do remoting para depois o poder utilizar.
A escolha foi infeliz, devia ter utilizado, por ex. resultado:re.result pq assim ñ me sobrepunha ao default (target:this).
Mas também ñ me importa mt, pq neste caso, o re.result é o único objecto a que quero aceder quando o evento ocorrer.

Só depois fora da classe é que adiciono e removo os Listeners como bem entender. Neste caso, a implementação é do tipo:
Código:
//Timeline
var myBlog:Blog = new Blog();
var myListener:Object = new Object();

myBlog.readPost();

myListener.onLoad = function(eventObj):Void{
var path:Array = eventObj.resultado;
var n:Number = path.length-1;
for(var i:Number=0;i<n;i++){
trace(path[i].Text);
trace(path[i].Categorie);
trace(path[i].Date);
}
}

myBlog.addEventListener("onLoad",myListener);
Registado
alftuga
Aprendiz
**
Offline Offline

Mensagens: 202


Ver Perfil WWW
« Responder #10 em: 19 de Dezembro de 2006, 19:20:09 »

eu não estou com tempo para testar o codigo tou mesmo de saida mas olha tens a certeza que consegues ouvir esse evento assim ?

testastes esse codigo?
Registado
yarcub
Aprendiz
**
Offline Offline

Mensagens: 138


Ver Perfil
« Responder #11 em: 19 de Dezembro de 2006, 19:45:39 »

Sim, o swf de exemplo que tenho no blog está com o código que tenho lá. Por isso é que insisti na questão.
Registado
alftuga
Aprendiz
**
Offline Offline

Mensagens: 202


Ver Perfil WWW
« Responder #12 em: 20 de Dezembro de 2006, 16:56:04 »

Bom olha acabei de dar uma vista de olhos a nossa converça e peço te desculpa porque realmente o teu codigo deve funcionar.

No entanto so quero alertar que o scope do teu evento não é a Class Blog mas sim do objecto "RelayResponder" o que me parece não ser a melhor situação. O meu ver quando se começa a brincar com eventos é muito importante saber realmente de onde vem, as reparar que esse evento nunca te diz que vem da class Blog.

e continuo a dizer que é muito importante criares funções para tirar os eventos e não so os listeners.
Registado
Páginas: [1] Ir para o topo Imprimir 
« anterior seguinte »
Ir para:  


Entrar com nome de utilizador, password e duração da sessão


Powered by MySQL Powered by PHP Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks
XHTML 1.0 válido! CSS válido!
Página criada em 0.066 segundos com 20 procedimentos.