@Freddy, a dica foi boa; mas infelizmente não dá certo, visto que o
arguments.callee é referente à função atual e não mostra nada sobre qual
função anterior.

http://stackoverflow.com/questions/4731935/actionscript-obtain-the-name-of-the-current-function

Se pelo menos tivesse como fazer um override inserindo novos parâmetros.


@Gustavo, eu queria manter tudo o mais desacoplado possível, sem
malabarismos... só usando o que fosse nativo mesmo... mas estou analisando
que a melhor saída é passar o nome nos parameters mesmo...



Em 18 de abril de 2013 13:40, Fredy Gadotti <[email protected]>escreveu:

> Se não me engano, os métodos tem uma propriedade especial que não aparece
> no code complete que se chama "callee", que tem o nome da função que chamou
> o método corrente.
>
> Dá uma pesquisada nisso, que é o caminho das pedras :D
> hehe
>
>
> 2013/4/18 Wemerson Couto Guimarães <[email protected]>
>
>> Não tem como... pra fazer um override de uma função/método a sua
>> declaração deve ser idêntica à função da classe original, exceto pelo termo
>> "override" é claro!
>>
>>
>>
>>
>>
>>
>> Em 18 de abril de 2013 11:59, Gustavo Martinez <[email protected]> escreveu:
>>
>> Wemerson, aconselho passar o nome da função como parâmetro:
>>>
>>> override public function send(*functionName*:String,
>>> parameters:Object=null):AsyncToken{
>>>
>>>  this.url += "/" + this.remoteService + *functionName*; // (getAll,
>>> getById, save, etc...)
>>>  return super.send(parameters);
>>>  }
>>>
>>> *--
>>> Gustavo Martinez*
>>>
>>>
>>> 2013/4/18 Wemerson Couto Guimarães <[email protected]>
>>>
>>>>  O detalhe é que eu preciso justamente saber o nome do método que
>>>> originou a chamada, pois ele vai ser usado posteriormente.
>>>>
>>>> veja um exemplo com um override.. onde preciso saber qual o método.. :
>>>>
>>>> Class ServiceBase extends HTTPService
>>>> {
>>>> private var remoteService:String;
>>>>
>>>> public function ServiceBase(serviceName:String){
>>>>  this.remoteService = serviceName;
>>>> }
>>>>
>>>>  override public function send(parameters:Object=null):AsyncToken{
>>>>
>>>>  this.url += "/" + this.remoteService + METODO_REMOTO; // (getAll,
>>>> getById, save, etc...)
>>>>  return super.send(parameters);
>>>>  }
>>>>
>>>> public function getAll():AsyncToken{
>>>>  return this.send();
>>>> }
>>>>
>>>> public function getById(id:):AsyncToken{
>>>> var parameters:Object = new Object();
>>>>  parameters.id = id;
>>>> return this.send(parameters);
>>>>  }
>>>>
>>>> public function save(object:*):AsyncToken{
>>>> return this.send(object);
>>>>  }
>>>> }
>>>>
>>>> Class UsuarioService extends ServiceBase
>>>> {
>>>> public function UsuarioService(){
>>>>  this.super( 'usuario' );
>>>> }
>>>> }
>>>>
>>>>
>>>> --
>>>> Wemerson Guimarães
>>>> Rio Verde - Go - Brasil
>>>>
>>>> --
>>>> --
>>>> 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
>>>> .
>>>>
>>>>
>>>>
>>>
>>>  --
>>> --
>>> 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.
>>>
>>>
>>>
>>
>>
>>
>> --
>> Wemerson Guimarães
>> Rio Verde - Go - Brasil
>>
>> --
>> --
>> 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.
>>
>>
>>
>
>  --
> --
> 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.
>
>
>



-- 
Wemerson Guimarães
Rio Verde - Go - Brasil

-- 
-- 
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