Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

irgo

[Resolvido] Overload no flash

Recommended Posts

olá como que eu posso fazer uma espécie de overload. Sei q ele não existe no flash mas eu preciso que uma função minha receba quantidade de parametros diferentes em relação a demanda do sistema. Consegui solucionar criando um objeto que receba tudo, porém gostaria de saber de tem como criar funções com msmo nome soh q com parametros diferentes. Ah e ja aproveitando, pra que serve o override ?

valeus

Compartilhar este post


Link para o post
Compartilhar em outros sites

o actionScript realmente não suporta overload(sobrecarga) de métodos,

mas ele permite você criar um metodo que pode receber um numero indefinido de valores

 

function testaExtraParams(m:String, ...parans){

		trace("primeiro parâmetro:" + m);
		trace("segundo  parâmetro:" + parans[0]);
		trace("terceiro parâmetro:" + parans[1]);
		trace("quarto   parâmetro:" + parans[2]);
		trace("-------------------------");

}

testaExtraParams("gato", "pato");

testaExtraParams("gato", "pato", "sapo", "leão");

 

assim você não pre-define o tipo das variáveis, pode resolver o seu problema

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

E override serve para substituir métodos e propriedades herdadas.

 

Por exemplo: Você cria uma classe extendida de Sprite e muda a propriedade width, fazendo com que retorne um outro valor qualquer ao invés do definido na classe herdada.

override public function get width() : Number { return 1 }

Compartilhar este post


Link para o post
Compartilhar em outros sites

brunobispo

 

a duvida era sobre Overload(sobrecarga) e não sobre override (Sobreposição)

 

a idéia do 1º, é ter mais de um método com o mesmo nome, mas a passagem de parâmetros diferentes, como

 

 

public function somar(valor1:Number, valor2:Number):Number {
  return valor1 + valor2;
}

public function somar(valor1:Number, valor2:Number, valor3:Number):Number {
  return valor1 + valor2 + valor3;
}

se você passar 2 valores, o programa executa o 1º método, se passar 3 ele chama o 2º,

isso é Overload, e o AS3 não dá suporte a isso, já o override funciona dessa maneira que você explicou

 

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.