Agora, se me permite uma outra dica, eu faço assim há anos:

//tenho uma classe chamada ObjetoRemoto:
package Servicos
{
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.remoting.mxml.RemoteObject;
 public class ObjetoRemoto extends RemoteObject
{
//como pode ver, as funções não são obrigatórias, vc pode simplesmente 
querer fazer 
//alguma coisa no banco sem pegar retorno nenhum, mas sempre é bom passar 
no mínimo 
//a função de falha para ter certeza de que a instrução foi executada 
corretamente.
public function ObjetoRemoto(classe:String, rstSucesso:Function = null, 
rstFalha:Function = null)
{
this.destination = "fluorine";
this.source = classe;
this.showBusyCursor = true;
 this.addEventListener(FaultEvent.FAULT, rstFalha); 
 if (rstSucesso != null)
this.addEventListener(ResultEvent.RESULT, rstSucesso); 
}
}
}

//tenho outra classe de integração que vai usar o ObjetoRemoto:
package Mapeamentos.Faturamento.Expedicao.Pedidos
{
//importa o ObjetoRemoto
import Servicos.ObjetoRemoto;
//caminho da classe de integração do servidor, no meu caso C#:
[RemoteClass(alias="Integracao.Faturamento.Expedicao.Pedidos.IntPedidosFat")]
public class IntPedidosFat
{
public static const NAMESPACE:String = 
"Integracao.Faturamento.Expedicao.Pedidos.IntPedidosFat";
public function IntPedidosFat():void{}
 //os métodos no flex e no servidor têm que ter, como sabe, a mesma 
assinatura:
public static function getItensPedido(idEmpresaPvda:String, 
idPedidoPvda:String, rstSucesso:Function, rstFalha:Function):void
{
//instanciando o ObjetoRemoto:
var remoto:ObjetoRemoto = new ObjetoRemoto(NAMESPACE, rstSucesso, rstFalha);
//passo então os parâmetros recebidos (as duas strings):
remoto.getOperation("getItensPedido").send(idEmpresaPvda, idPedidoPvda);
} 
}
}

//na classe onde vou pegar os ítens do pedido, o método que faz a chamada 
fica +- assim:
import Mapeamentos.Faturamento.Expedicao.Pedidos.IntPedidosFat;
var empresa:String = "123";
var pedido:String = "456";
IntPedidosFat.getItensPedido(empresa, pedido
,function(evt:ResultEvent):void{
//faz o que achar necessário com o evt.result
}
,function(evt:FaultEvent):void{
//mostra mensagem com o erro contido em evt.message
}
);

//como vê, ao invés de criar separadamente as duas funções, já passo direto 
no parâmetro 
//a função pronta executando o que eu preciso. é mais fácil na hora de 
debugar. a outra forma seria assim:
IntPedidosFat.getItensPedido(empresa, pedido, rstFnc, falFnc);//passo os 4 
parâmetros: 2 strings e 2 functions
//e em algum lugar no cógigo as duas funções separadas:
private function rstFnc(evt:ResultEvent):void{
//faz o que achar necessário com o evt.result
}
private function falFnc(evt:FaultEvent):void{
//mostra mensagem com o erro contido em evt.message
}

espero ter ajudado, quem criou essa lógica foi um colega de trabalho, muito 
bom programador e analista
por sinal, e não vejo forma melhor de se fazer a integração. se algém tiver 
uma forma melhor não critique,
mas repasse para que outras pessoas possam aprender. além destas classes 
usamos também as classes de 
negócio onde passamos, ao invés de 2 strings, um objeto pronto com vários 
parâmetros, mas isso já é outra história.
abraço. e bom trabalho.







Em sexta-feira, 8 de novembro de 2013 08h40min28s UTC-2, Leonardo Oliveira 
escreveu:
>
> Edinei, não testei, mas na teoria você não pode declarar a variável 
> string. Veja qual é o tipo do "metodoVariavel", se for Function, você tem 
> que declarar a variável do mesmo tipo. Então ficaria assim:
>
> var metodoVariavel:Function = meuMetodo;//sem aspas pq é uma função
> meuObjetoRemoto.metodoVariavel.send();
>
> //aí você faria a sua função personalizada à parte
> private function meuMetodo():void{}
>
> Como disse, não testei, mas veja aí se funfa.
>
>
> Em quarta-feira, 6 de novembro de 2013 14h30min01s UTC-2, Ednei Gonçalves 
> escreveu:
>>
>> Olá pessoal,
>>
>> eu tenho um RemoteObject e eu gostaria de chamar um método sendo que o 
>> nome do método está contido em uma variável.
>>
>> Hoje eu faço assim:
>>
>> meuObjetoRemoto.meuMetodo.send();
>>
>> Gostaria de saber se tem como fazer algo do tipo assim:
>>
>> var metodoVariavel:String = "meuMetodo";
>>
>> meuObjetoRemoto.metodoVariavel.send();
>>
>>
>> Como eu faço isso? Há como?
>>
>>
>> Valeu.
>>
>

-- 
-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
--- 
Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" dos 
Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um 
e-mail para [email protected].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

Responder a