Rogério Lino

Web development and tips

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 400x200 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** Aonde: _ 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:

// redimensionando a partir da largura
MovieClip.resizeW(novaLargura);

// redimensionando a partir da altura
MovieClip.resizeH(novaAltura);

Espero que seja útil.

Comments