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.

17 thoughts on “Flash: Resize Proporcional

  1. deborah

    oi, por favor, eu queria saber qual a programação que eu uso pra fazer um botão do flash não mostrar aquela maldita mãozinha sabe?

    eu sei que tem um comando, mas nao sei qual é…

    ficaria feliz se vc me ajudasse.

    obrigada

    deborah

    Responder
  2. Hugo Fernandes

    Podemos também trabalhar com a escala para obter a proporção.
    Utilizando o seu código:


    MovieClip.prototype.resizeW = function(w) {
    this._width = w;
    this._height += this._xscale;
    }

    MovieClip.prototype.resizeH = function(h) {
    this._height = h;
    this._width += this._yscale;
    }

    Para utilizar:

    MovieClip.resizeW(novaLargura);
    MovieClip.resizeH(novaAltura);

    Responder
  3. Hugo Fernandes

    Podemos também trabalhar com a escala para obter a proporção.
    Utilizando o seu código:

    MovieClip.prototype.resizeW = function(w) {
    this._width = w;
    this._height += this._xscale;
    }

    MovieClip.prototype.resizeH = function(h) {
    this._height = h;
    this._width += this._yscale;
    }

    Para utilizar:

    MovieClip.resizeW(novaLargura);
    MovieClip.resizeH(novaAltura);

    Responder
  4. Hugo Fernandes

    Ainda por cima enganei-me…
    Assim é que é:


    MovieClip.prototype.resizeW = function(w) {
    this._width = w;
    this._height = this._xscale;
    }
    MovieClip.prototype.resizeH = function(h) {
    this._height = h;
    this._width = this._yscale;
    }
    MovieClip.resizeW(novaLargura);
    MovieClip.resizeH(novaAltura);

    Responder
    1. Marcio Santos

      Fla Hugo, blz?? seguinte car, tentei usar esse seu script mas não consegui. veja:

      MovieClip.prototype.resizeW = function(w) {
      arvore._width = w;
      arvore._height = this._xscale;
      }
      MovieClip.prototype.resizeH = function(h) {
      arvore._height = h;
      arvore._width = this._yscale;
      }

      dai nao funcao do resize do stage coloquei:
      MovieClip.resizeW();
      MovieClip.resizeH();

      Mas não funciono…
      ajuda ae
      abraço

      Responder
      1. Hugo Fernandes

        Pesquisando pelo meu nome no Google vim ter a este artigo, que honestamente já não me lembrava.

        Bem sei que já temuns anos, mas queria na mesma corrigir a minha falta de atenção no código que fiz:

        MovieClip.prototype.resizeW = function(w) {
        arvore._width = w;
        arvore._yscale = this._xscale;
        }

        MovieClip.prototype.resizeH = function(h) {
        arvore._height = h;
        arvore._xscale = this._yscale;
        }

        MovieClip.resizeW(novaLargura);
        MovieClip.resizeH(novaAltura);

        Como é óbvio, não podemos dizer que “arvore._width = this._yscale;”. Um é dimensão em pixel, outro em percentagem.

        Fica aqui a correcção🙂

  5. André

    Cara eu achei essa sua explicação no flash master
    entaum isso quer dizer que vc é muito bom
    rsrsrs
    gostaria de te pedir uma ajuda
    eu naum sei onde eu mudo no codigo pra por o nome do meu MC
    é no this?
    se for é em todos?
    naum to conseguindo
    sou novato na area =/
    =(
    me ajuda ai vai por favor
    muito obrigado desde já😉

    Responder
  6. André Felipe

    Olá Rogério
    sou eu novamente
    percebi que muita gente está perguntando a msma coisa que eu na net sobre o stage resize proporcional sem ver o fundo
    gostaria de pedir pra vc =/
    se tem como vc explicar como faz ai
    please
    precisava muito disso
    to tentando a tanto tempo e naum consigo=/
    Abraços
    desde já obrigado
    ex.:
    http://www.minus.dk/

    muito obrigado msmoooo

    Responder
  7. André D3designer

    Cara parabéns, mas não entendi como aplico o resize no meu moveclipe ???
    tenho que instanciar ele como ???
    valew

    Responder
  8. Marcio Santos

    É uma coisinha de nada… Me ajudem ae!!

    Preciso redimensionar _xscale e _yscale somente um mc dos outros ja presentes, ou seja, preciso do “meumc” redimensione nao somente a posicao como tambem o tamanho, como se estivesse em “Scale”.

    Responder
  9. Marcio Santos

    Para que voce entenda melhor o que estou falando, segue um exemplo que achei http://www.yugop.com e clique no botao 4(claygrip), depois redimensione o seu browser para uma resolucao menor e perceba
    que o conteudo exibido irá encolher proporcionalmente.

    Acredito que o conteudo é um swf externo, mas que na verdade preciso que seja um Mc da index.

    Obrigado

    Responder
  10. Ericson Sobrinho

    Pessoal,

    Já pesquisei e encontrei muitos tutoriais e postagens ensinando Stage Resize. O que não encontrei, ou nao consegui aplicar foi fazer apenas 1 movieclip ficar com tamanho proporcional (aumentar e diminuir de acordo com a tela) e os outros ficarem “noScale”.

    O problema está nesse site http://www.usegell.com.br/linhas/linhagirl/. Note que se usarem uma resolução de 1280×1024 a imagem da galeria de fotos ficará cortada. Eu gostaria que a imagem aumentasse para encaixar em seu devido lugar.

    Um exemplo do que eu quero está nesse site http://www.yugop.com/index.asp (Vá em 04.Claygrid)

    Aguardo respostas e muito obrigado pela ajuda de vocês!

    Responder

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s