..:: MX Studio Fóruns ::..: Ajustar Resolução Site em Flash MX - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Ajustar Resolução Site em Flash MX 800x600,1024x768,1280..... onResize, manter proporção

#1 User is offline   LoKkKy 

  • Group: Membros
  • Posts: 94
  • Joined: 19-July 07

Posted 23 January 2009 - 12:36 PM

Salve galera do mX ! ^^

To desenvolvendo um site pra um amigo do meu pai, e estou fazendo ele todo em Flash, utilizando o Flash MX.

Uma burrisse minha foi fazer ele na resolução de 1000x615, ou seja, ele está fullscreen (ocupando o espaço do Internet Explorer).

A grande dúvida é: Como fazer ele se ajustar em qualquer resolução sem prejudicar as imagens?

Tenho um exemplo que peguei da nossa "miguinha" morenah:

http://www.nakisska.com.br/

Esse site é o tipo que eu quero fazer, e se repararem a imagem não distorce em nenhuma resolução!

Alguém sabe fazer isso ?

Estou totalmente aberto a respostas ! biggrin.gif

Valew !? Abraços !
0

#2 User is offline   Rodrigo Pixel 

  • Group: Moderadores
  • Posts: 1279
  • Joined: 07-May 07

Posted 23 January 2009 - 12:56 PM

Opa confere no busca do forum, sobre o evento onResize

Tem vários assuntos relacionados, talvez ache o que quer:

http://www.mxstudio.com.br/forum/index.php...amp;hl=onResize
http://www.mxstudio.com.br/forum/index.php...amp;hl=onResize
http://www.mxstudio.com.br/forum/index.php...amp;hl=onResize
http://www.mxstudio.com.br/forum/index.php...amp;hl=onResize
http://www.mxstudio.com.br/forum/index.php...amp;hl=onResize
http://www.mxstudio.com.br/forum/index.php...amp;hl=onResize
http://www.mxstudio.com.br/forum/index.php...amp;hl=onResize

Bons estudos! alegre.gif

Abraços.
0

#3 User is offline   LoKkKy 

  • Group: Membros
  • Posts: 94
  • Joined: 19-July 07

Posted 23 January 2009 - 01:32 PM

Rodrigo Pixel....

Obrigado por ter respondido, mas acho que não era isso que eu queria especificamente.

Este efeito eu já conhecia, apesar de não saber usá-lo.

O que eu quero é apenas Redimensionar o Movie Clip para uma tal resolução sem que Perca Sua Qualidade...

Acho que este efeito iria até me atrapalhar um pouco.

Vamos para a pergunta n° 2: Como fazer ele se ajustar em qualquer resolução sem prejudicar as imagens e sem usar o comando onResize ?

Não existe uma resposta mais prática do que a pergunta?

unsure.gif . . . .
0

#4 User is offline   Rodrigo Pixel 

  • Group: Moderadores
  • Posts: 1279
  • Joined: 07-May 07

Posted 23 January 2009 - 02:56 PM

bem, suponho que você irá precisar usar o evento do stage: onResize.
Por que quando ocorre um redimensionamento (onResize) no SWF, ele dispara é um evento para o Stage. E esse evento é o onResize. thumbsup.gif

Nos links que te passei acima tem vários exemplos de como usar o onResize.
No help do flash também tem uma boa documentação.

QUOTE(LoKkKy @ 23/1/2009 13:01:10) <{POST_SNAPBACK}>
Não existe uma resposta mais prática do que a pergunta?

Mais prático que a teoria é tentar fazer. A solução pode até demorar, mas só praticando(praticando mesmo!) você aprende melhor. wink.gif

Segue um exemplo que montei aqui, vê se isso ajuda em algo.
Tirei base com o exemplo: http://www.nakisska.com.br/

Obs: arquivo está em versão CS3. Não tenho como converter pra MX.
http://rapidshare.com/files/188275499/imagem_size.zip.html

Caso não consiga usar o arquivo, crie esse mesmo exemplo abaixo pra entender.

No exemplo do download tem 3 objetos na biblioteca com linkage(nome de vinculação) para exportar da biblioteca para o Stage.
Não tem nada adicionado manualmente. Tudo via AS.

Os arquivos na biblioteca para esse exemplo, são:
imagemFundo - tipo: bitmap(um jpg, gif, png) - linkage: imagemFundo
menuMc - tipo: MovieClip - linkage: menuMc
rodapeMc - tipo: MovieClip - linkage: rodapeMc

O menuMC e rodapeMc são apenas uma exemplo do que você pode fazer com outros objetos, ao redimensionar, eles ajustam novamente para posição x e y que foi definida pelo código, além da imagem de fundo que redimensiona em proporção.

No 1º frame da timeline principal, insira:
CÓDIGO
//importa as classes utiilzadas
import flash.display.*;
import mx.transitions.Tween;
import mx.transitions.easing.*;


//variaveis
var ouvinte:Object = new Object(); //ouvinte de eventos para o stage
var bmd:BitmapData = BitmapData.loadBitmap("imagemFundo"); //adiciona imagem da biblioteca

//mc alvo pra receber imagem de fundo vindo da biblioteca
_root.createEmptyMovieClip("alvo", 0);
_root.alvo.attachBitmap(bmd, 0, true, true);
_root.alvo.smoothing = true; //suaviza imagem

//adiciona menu
_root.attachMovie("menuMc", "menuMc", _root.getNextHighestDepth());
_root.menuMc._x = -Stage.width;

//adiciona rodapé
_root.attachMovie("rodapeMc", "rodapeMc", _root.getNextHighestDepth());
_root.rodapeMc._x = -Stage.width;
_root.rodapeMc._y = Stage.height - _root.rodapeMc._height;



Stage.align = "tl"; //alinha no canto superior esquerdo "Top Left" = tl
Stage.scaleMode = "noScale"; //para não aumentar os outros objetos
Stage.addListener(ouvinte); //ouvinte de eventos para o stage
ouvinte.onResize = ajustaTamanho; //quando ocorrer evento de redimensionar, dispara função ajustaTamanho()

//aqui também vc posiciona seu menu, rodapé, , imagens, conteúdos do seu site, etc
//essa função será ajustada sempre que redimencionar o stage(browser)
function ajustaTamanho(){
    trace("ajustou imagem ao stage");
    //mantem proporção de largura
    _root.alvo._width = Stage.width;
    _root.alvo._yscale = _root.alvo._xscale;
    
    //ou...
    
    //caso queira que a imagem fica totalmente ajustada na tela, não respeitando proporção de largura e altura,
    //_root.alvo._width = Stage.width;
    //_root.alvo._height = Stage.height;
    
    //ajusta posição do menu com tween
    new Tween(_root.menuMc, "_x", Strong.easeInOut, _root.menuMc._x, (Stage.width/2)-(_root.menuMc._width/2), 1, true);
    
    //ajusta posição do rodapé com tween
    new Tween(_root.rodapeMc, "_x", Strong.easeInOut, _root.rodapeMc._x, (Stage.width/2)-(_root.rodapeMc._width/2), 1.2, true);
    new Tween(_root.rodapeMc, "_y", Strong.easeInOut, _root.rodapeMc._y, Stage.height - _root.rodapeMc._height, 1.2, true);
}

ajustaTamanho(); //executa função


Tente ver aqueles links que passei no início.
Mesmo se não for ainda o que você procura, acredito que vale a pena conhecer.

Pratique, você consegue. thumbsup.gif

Abraços.
0

#5 User is offline   LoKkKy 

  • Group: Membros
  • Posts: 94
  • Joined: 19-July 07

Posted 24 January 2009 - 12:40 PM

Ok ! Vou utilizar o onResize ! ^^

Dexa eu fazer uma última pergunta:

Como a imagem de fundo não fica distorcida quando faz o redimensionamento ?

(Obs.: Seguindo o exemplo acima.)

Valew ! Foi de grande ajuda mesmo Pixel ! ^^

Abraços !
0

#6 User is offline   Natan 

  • Group: Moderador Global
  • Posts: 7350
  • Joined: 28-February 04

Posted 24 January 2009 - 09:32 PM

Se reparar no exemplo que o Rodrigo passou ele usou:

CÓDIGO
//mantem proporção de largura
_root.alvo._width = Stage.width;
_root.alvo._yscale = _root.alvo._xscale;


A propriedade _width modifica o tamanho width do objeto (que seria o MovieClip instanciado de alvo), essa propriededa você pode colocar qualquer número positivo que desejar que o Flash irá modificar o tamanho com o número que usou. Já a propriedade _yscale modifica a altura da imagem, mas de maneira diferente, essa propriedade utiliza porcentagem como valor.

Quando você modifica o _width, o _xscale da imagem passa a ser diferente e o mesmo vale se você modifica o _height da imagem, o _yscale troca de valor. Então se você quer manter uma proporção, você utiliza porcentagem, pois assim você consegue modificar o tamanho por igual em ambos os lados.

Uma maneira de entender isso é selecionar seu MovieClip no palco, abrir o painel Transform (atalho Ctrl+T) e usar a ferramenta Free Transform Tool (atalho Q). Com essa ferramenta você modifica o tamanho desse MovieClip, e no painel Transform você vai ver a porcentagem alterada sobre esse MovieClip, assim você tem uma idéia melhor de como isso funciona.

[]s
0

#7 User is offline   LoKkKy 

  • Group: Membros
  • Posts: 94
  • Joined: 19-July 07

Posted 05 February 2009 - 11:21 AM

Não intendo...

O AS que você me passo como exemplo da dando erro...

nas linhas:

import flash.display.*;
import mx.transitions.Tween;
import mx.transitions.easing.*;

O que pode ser ?

=/ ?

Outra coisa... Eu tentei fazer como você falou mas não deu certo...

=/

Vo da uma olhada nos exemplos...

[]s
0

#8 User is offline   Bruno Alves Alexandre 

  • Group: Membros
  • Posts: 77
  • Joined: 08-October 08

Posted 05 February 2009 - 03:27 PM

e ai pessoal, blz??

para deixar a imagem proporcional usa-se


QUOTE
_root.alvo._width = Stage.width;
_root.alvo._yscale = _root.alvo._xscale;



Tentei fazer isso em AS3:
QUOTE
fundo_mc.width = stage.stageWidth
fundo_mc.scaleY = scaleX


Mas não funcionou... Continua a mesma altura da foto, e a largura fica 100%


Alguem sabe o que pode ser??
valew
0

#9 User is offline   Bruno Alves Alexandre 

  • Group: Membros
  • Posts: 77
  • Joined: 08-October 08

Posted 05 February 2009 - 03:29 PM

ops... já descobri:

fundo_mc.width = stage.stageWidth
fundo_mc.scaleY = fundo_mc.scaleX


tinha esquecido de colocar a instância antes do "scaleX"

valew
0

#10 User is offline   McBAST 

  • Group: Membros
  • Posts: 505
  • Joined: 25-October 07

Posted 12 February 2009 - 07:32 PM

Olá pessoal.

Como que utilizo essa proporção nesse AS:

CÓDIGO
posicao.onResize = function() {
     var tw:Tween = new Tween(conteudo, "_width", Back.easeOut, conteudo._width, (Stage.width-conteudo._width)/2, 2, true);
     var th:Tween =  new Tween(conteudo, "_height", Back.easeOut, conteudo._height, /*aqui a proporçao*/, 2, true);
};


Abraços?
0

#11 User is offline   Natan 

  • Group: Moderador Global
  • Posts: 7350
  • Joined: 28-February 04

Posted 14 February 2009 - 02:24 PM

Veja se assim vai:

CÓDIGO
posicao.onResize = function() {
     var tw:Tween = new Tween(conteudo, "_width", Back.easeOut, conteudo._width, (Stage.width-conteudo._width)/2, 2, true);
     var th:Tween =  new Tween(conteudo, "_yscale", Back.easeOut, conteudo._yscale, conteudo._xscale, 2, true);
};


[]s
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)