Tag Archives: prototype

Flash: Resize Proporcional

Ver post no novo domínio: http://blog.rogeriolino.com/2007/03/06/flash-resize-proporcional/

Acabei de responder no forum da FlashMasters um tópico que se tratava sobre a seguinte dúvida:

O membro queria saber alguma função que redimensiona-se um determinado objeto mas mantendo a sua proporção. Por exemplo um MovieClip de tamanho 400×200 se eu aumentar a largura em 100 tenho que aumentar a altura em 50. Isso devido a razão entre os dois valores.

Então com um lápis na mão podemos chegar a seguinte fórmula para uma nova altura caso altere sua largura:

H = dW . H/W + H

H: Altura;

W: Largura;

dX: delta da variável “X”.

Sabendo a fórmula para uma nova altura é facil chegar na da nova largura:

W = dH . W/H + W

Agora então mãos a obra com as Actions:

MovieClip.prototype.resizeW = function(w) {
var dw = w – this._width;
this._height += dw*(this._height/this._width);
this._width = w;
}

MovieClip.prototype.resizeH = function(h) {
var dh = h – this._height;
this._width += dh*(this._width/this._height);
this._height = h;
}

Para utilizar:

MovieClip.resizeW(novaLargura);

MovieClip.resizeH(novaAltura);

Espero que possa ajudar.

Anúncios

Flash: Resume Texto (substring e indexOf)

Ver post no novo domínio: http://blog.rogeriolino.com/2007/02/23/flash-resume-texto-substring-e-indexof/

Esses dias no Forum FlashMasters um amigo meu deixou a seguinte dúvida:

Ele queria saber como fazer uma função para resumir um texto (uma String) por palavras. E não por caracteres. O que poderia ser feito apenas usando uma função substring() do próprio Flash.

Então fiz uma bem simples depois dei uma implementada nela (utilizando prototype) e estou postando aqui porque acho que poderá ser útil:

String.prototype.resume = function(q) {
var aux:String = “”;
for (var i=0; i<q; i++) {
aux += this.substring(0, this.indexOf(” “))+” “;
this = this.substring(this.indexOf(” “)+1);
}
return (aux += “…”);
}

Na função é passado por parâmetro a quantidade de espaços (palavras) no qual o texto será resumido.

substring() : Retorna um pedaço da String. Método sobrecarregado você pode passar dois ou um parâmetro (Integer). Passando dois o primeiro é o ponto inicial e o segundo final. Com um parâmetro ela retorna da posição escolhida em diante.

indexOf() : Retorna a posição (Integer) no texto (String) da Char/String passado como parâmetro, ou -1 quando não achar.

E para utilizar:

var texto = “Putz, o carnaval acabou comigo.”;
trace(texto.resume(3));
//output: “Putz, o carnaval …”

Mais sobre essas funções e outras:

Livedocs.Adobe.com – Flash 8

[update date=”24/02/2007″ ]

Adicionei condições para ver se o texto não é uma única palavra ou a quantidade de palavras no texto é menor do que a quantidade que quer resumir.

String.prototype.resume = function(q) {
var menor:Boolean = false;
var aux:String = “”;
menor = (this.indexOf(” “) == -1)?false:true
for (var i=0; i<q; i++) {
if (!menor) {
return this;
} else if (this.indexOf(” “) != -1) {
aux += this.substring(0, this.indexOf(” “))+” “;
this = this.substring(this.indexOf(” “)+1);
} else {
return aux+this;
}
}
return (aux += “…”);
}

[/update]