darkwader 0 Denunciar post Postado Agosto 13, 2009 E ai galera Estou fazendo um site com layout liquido no flash e acabei de encontrar uma pequena dúvida Ja consegui centralizar meu conteudo, meu topo e meu menu porem não estou conseguindo posicionar meu rodapé no final da tela ( o site não usará o scroll de rolagem da pagina). Aguem pode me ajudar? estou usando os codigos passador pelo Italo Borges (muito bom) http://www.italoborg...toriais/Resize/ Gostaria de saber como posicionar o rodapé no fim da pagina, tambem algumas mudanças como o menu ficar na lateral esquerda e no meio da tela entre outros //Inclui a classe tween do zeh #include "mc_tween2.as" //propriedades do Stage Stage.scaleMode = "noScale"; Stage.align = "TL"; //Criamos o listener para o Stage var listener:Object = new Object(); //Função que irá conter as ações pare redimensionar os mcs. function stageResize () { back._x = 0; back._y = 0; back._width = Stage.width; back._height = Stage.height; barra_x = 0; barra._y = 0; barra._width = Stage.width; menuTopBar.xSlideTo( int(Stage.width/2 - menuTopBar._width/2), 0.6, "easeoutquart"); menuTopBar._y = 0; } //Verifica quando o Stage sofre alguma mudança listener.onresize = function () { //Assim chamamos a nossa função que organiza os objetos stageResize(); } //Adicionando nosso listener ao Stage Stage.addListener(listener); //chamando a função para iniciar stageResize(); Att Compartilhar este post Link para o post Compartilhar em outros sites
inx 4 Denunciar post Postado Agosto 13, 2009 joao = Stage.height; rodape._y = joao - tamanho do rodapé. Compartilhar este post Link para o post Compartilhar em outros sites
darkwader 0 Denunciar post Postado Agosto 13, 2009 Obrigado david outro problema que estou encontrando no layout liquido é com os SWFs externos, quando carrego o container que recebe o swf fica centralizado mas a pagina que carrega não fica centralizada, ela carrega com sua parte superior esquerda no centro do container de carregamente. estou usando stop(); _root.currMovie = "entrada"; container.alvo.loadMovie(_root.currMovie+".swf"); porque tenho uma transição de paginas sempre que chamo o swf externo Sabe porque? Att Compartilhar este post Link para o post Compartilhar em outros sites
inx 4 Denunciar post Postado Agosto 14, 2009 sim sim.. uma das soluções seria essa: Meu Exemplo: loadmovie ("inx.swf", alvo); //lembra do joão? ganho uma esposa.. rs joao = Stage.height; maria = Stage.width alvo._y = joao/2 - metadedaalturadosswfexterno; alvo._x = maria/2 - metadedalarguradosswfexterno; entendeu? matematica basica.. =D essa é uma das soluções. =D Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Agosto 14, 2009 Para você ter melhor controle sobre esse tipo de coisa Eu usaria a classe MovieClipLoader e o onLoadInit() da mesma ;) Pois ai qualquer clip que for carregado com o MovieClipLoader já vai ser automaticamente centralizado... quando você colocar a função dentro do Init Abraços Compartilhar este post Link para o post Compartilhar em outros sites
darkwader 0 Denunciar post Postado Agosto 14, 2009 Obrigado Falera vou tentar aqui o exemplo do inx berseck você teria um exemplo das classes MovieClipLoader e o onloadInit() para eu entender melhor Att Compartilhar este post Link para o post Compartilhar em outros sites
darkwader 0 Denunciar post Postado Agosto 14, 2009 E ai Moçada INX seu exemplo deu certo mas ai pintou um problema. para fazer esse site estou usando umas transições de pagina para troca dos SWF externos nos SWF externos uso o seguinte codigo Primeiro frame midframe = 50 Frame 50 onde a pagina esta totalmente montada stop No ultimo frame quando a pagina "desmontou" o seguinte codigo para a troca: _root.container.loadMovie(_root.container.currMovie+".swf") nos meus botões do palco principal, onde esta localizado o container, uso o seguinte código on (release) { if (_root.currMovie == undefined) { _root.currMovie = "entrada2"; _root.container.loadMovie("entrada2.swf"); } else if (_root.currMovie != "entrada2") { if (_root.container._currentframe >= container.midframe) { _root.currMovie = "entrada2"; _root.container.play(); } } } Ainda no palco, coloco o seguinte código em um frame determinado para carregar um swf externo de entrada stop(); _root.currMovie = "entrada"; container.loadMovie(_root.currMovie+".swf"); Ele funcionou legal, carregou centralizado porem quando clico no menu no botão que tem o codigo acima ele desmonta normalmente a pagina mas não carrega o proximo SWF clicado e notei que o container esta sumindo O que pode estar causando isso? Att Compartilhar este post Link para o post Compartilhar em outros sites
inx 4 Denunciar post Postado Agosto 14, 2009 você lembro que ele tem q reiniciar a animação.. mais axo q se ta fazendo muito aue com isso ai... Voce pode fazer o seguinte.. deixa o efeito de transição separado do load.. porém ja alinhado ao meio.. assim nao tera problema com o posicionamento dele. Compartilhar este post Link para o post Compartilhar em outros sites
darkwader 0 Denunciar post Postado Agosto 14, 2009 Então INX o posicionameno ficou legal, o que deu problema é que não consigo chamar as outras paginas. Estou usando os codigos que passei no ultimo post quando ele chama a primeira pagina de entrada some o container, a animação se desfaz porem a proxima pagina não é carregada Compartilhar este post Link para o post Compartilhar em outros sites
inx 4 Denunciar post Postado Agosto 14, 2009 dai o berseck te ajuda.. eu diria que o problema é nessa parte.. _root.container._currentframe >= container.midframe na minha opniao o certo seria. _root.container._currentframe >= midframe mais eu so quadrado.. hahaha... ele é o expert. =P Compartilhar este post Link para o post Compartilhar em outros sites
darkwader 0 Denunciar post Postado Agosto 14, 2009 Nada Velho, você deu uma #@?$%~ ajuda mesmo, Obrigado Vou Esperar para ver se o berseck pode me ajudar Valeu Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Agosto 15, 2009 Bom para começar... Você pode vir a ter problemas com troca de informação uma vez que você ta trabalhando com movieclips de uma maneira no palco e outra no botão... Variaveis que se escreve em frame no palco não precisa colocar _root.variavel... se declara assim: var variavel:String = "exemplo"; Chamei como se fosse uma string pelo fato que você vai usar para carregar o MovieClip e ele só aceita como parametro string. Ai se o botão ta no palco mesmo... não precisa usar o on(press) você pode usar uma instancia no botão... e ai chamar instancia.onPress = function() e coloca as ações... Mas para não mudar seu código :) Teste com trace dentro desse botão o if else para ver o que essa sua variavel responde ;) on (release) { trace(_root.currMovie); if (_root.currMovie == undefined) { _root.currMovie = "entrada2"; _root.container.loadMovie("entrada2.swf"); } else if (_root.currMovie != "entrada2") { if (_root.container._currentframe >= container.midframe) { _root.currMovie = "entrada2"; _root.container.play(); } } } Com esse trace você consegue ver o que ele retorna ;) Caso ele esteja carregando o valor correto. passe o Trace para dentro de do else if que na verdade pode ser apenas else... Pq se ele for diferente de undefined e igual a entrada2 ai no seu caso... ele simplesmente não vai fazer nada... vai passar reto Pois o seu teste indica isso. Quanto ao exemplo do MovieClipLoader é assim: var mcl:MovieClipLoader = new MovieClipLoader(); var mc:MovieClip = new MovieClip(); var obj:Object = new Object(); mcl.addListener(obj); mcl.loadClip("clip.swf", mc); obj.onLoadInit = function(){ //Aqui seu código de resize } Lembrando que onLoadInit o l de load é maiusculo L e o forum muda pra minusculo Abraços Compartilhar este post Link para o post Compartilhar em outros sites
darkwader 0 Denunciar post Postado Agosto 15, 2009 Obrigado Berseck Pesquisando sobre o que você me deu como opção encontrei esse codigo a configurei para o meu projeto e funcionou direitinho #include "mc_tween2.as" Stage.scaleMode = "noScale"; //não sofrerá escala Stage.align = "tl"; //alinhamento top left //crio mc vazio que será receberá o outro mc vazio com swf externo _root.createEmptyMovieClip("container", 0); //crio mc vazio que dentro do container _root.container.createEmptyMovieClip("alvo", 0); //ouvinte pro Stage var ouvinteStage:Object = new Object(); Stage.addListener(ouvinteStage);//adiciono ouvinte de eventos do stage //ouvinte pro objeto MovieClipLoader var ouvinteMcl:Object = new Object(); //objeto MCLvar mcl:MovieClipLoader = new MovieClipLoader(); var mcl:MovieClipLoader = new MovieClipLoader(); mcl.loadClip("entrada.swf", _root.container.alvo); //carrego meu swf no mc mcl.addListener(ouvinteMcl); //adiciono ouvinte de eventos do MCL //quando estiver carregado e iniciado o stage, consigo manipular o arquivo ouvinteMcl.onLoadInit = function(){ onResizeStage(); trace("Pagina carregada com sucesso"); } //quando redimensionar o stage, faça... ouvinteStage.onResize = function(){ onResizeStage(); trace("redimensionou stage"); } //manipulo posição do meu mc que recebe swf externo function onResizeStage(){ //faço algo //AQUI VOCÊ FAZ A MANIPULAÇÃO DO JEITO QUE VOCÊ PRECISAR _root.container.alvo.xSlideTo( int(Stage.width/2-_root.container.alvo._width/2),0.7, "easeoutquart"); _root.container.alvo.ySlideTo( int(Stage.height/2-_root.container.alvo._height/2), 0.7, "easeoutquart"); sh = Stage.height; sw = Stage.width back._x = 0; back._y = 0; back._width = Stage.width; back._height = Stage.height; barra_x = 0; barra._y = 0; barra._width = Stage.width; rodape._width = Stage.width; rodape._y = Stage.height - rodape._height - 1; rodape._width = Stage.width; menuTopBar.xSlideTo( int(Stage.width/2 - menuTopBar._width/2), 0.6, "easeoutquart"); menuTopBar._y = 15; } Porem eu perdi todo o efeito de transição que tinha com o loadMovie as trocas de pagina ficaram secas usando esse codigo nos botoes de menu on (release) { if (_root.container.alvo.currMovie == undefined) { _root.container.alvo.currMovie = "teste"; _root.container.alvo.loadMovie("teste.swf"); } else if (_root.container.alvo.currMovie != "teste") { if (_root.container.alvo._currentframe >= container.alvo.midframe) { _root.container.alvo.currMovie = "teste"; _root.container.alvo.play(); } } } E essas transições é que dão um toque para os sites então queria saber se tem como continuar realizando essas transições de "desmontagem de cada SWF externo antes de entrar o outro SWF externo usando o loadClip como estou usando no exemplo de codigo acima? Att Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Agosto 17, 2009 É exatamente a mesma coisa do loadMovie e loadClip Você só ta alterando a forma como ele carrega para ter maior controle sobre o que ele vai fazer e funcionar. Mas a função de transição de carregamento é exatamente a mesma... Basta alterar seu código para usar o MovieClipLoader e o loadClip E tudo vai funcionar como o loadMovie ;) Com a diferença que você pode por por exemplo no loadInit algum tipo de efeito alpha com transição etc. Pode também criar um efeito de transição que vai ser chamado entre um e outro atráves de uma modificação de uma variavel... Etc. Só usar a imaginação e um pouquinho de código que você consegue fazer efeitos maravilhosos rs. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
darkwader 0 Denunciar post Postado Agosto 17, 2009 E ai Berseck, Valeu cara você esta me ajudando muito no tema, estou estudando para dominar melhor isso mas sobre o que você me falou abaixo me da um help, você falou que era apenas substituir por MovieClipLoader e loadClip para ter meu efeito de transição novamente então fiz o seguinte como abaixo coloquei esse código nos botões on (release) { if (_root.container.alvo.currMovie == undefined) { _root.container.alvo.currMovie = "teste"; _root.container.alvo.MovieClipLoader ("teste.swf"); } else if (_root.container.alvo.currMovie != "teste") { if (_root.container.alvo._currentframe >= container.alvo.midframe) { _root.container.alvo.currMovie = "teste"; _root.container.alvo.play(); } } } e no final de cada pagina quando acaba a transição usei o seguinte codigo _root.container.alvo.MovieClipLoader(_root.container.alvo.currMovie+".swf") Mas não deu certo o que errei? desculpe a pergunta direta mas é o velho problema de tempo mesmo desde já Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Agosto 17, 2009 Você olhou como eu usei a classe na resposta acima? Tem um help muito bacana no flash... inclusive um link em portugues aqui no forum que funciona que é uma maravilha. Mas vamos lá: var mcl:MovieClipLoader = new MovieClipLoader() var obj:Object = new Object(); mcl.addListener(obj); on (release) { if (_root.container.alvo.currMovie == undefined) { _root.container.alvo.currMovie = "teste"; mcl.loadClip("teste.swf",_root.container.alvo); } else if (_root.container.alvo.currMovie != "teste") { if (_root.container.alvo._currentframe >= container.alvo.midframe) { _root.container.alvo.currMovie = "teste"; _root.container.alvo.play(); } } } Tendeu? Abraços Compartilhar este post Link para o post Compartilhar em outros sites