Doug_S.S.S. 0 Denunciar post Postado Novembro 14, 2003 Oi pessoal, :) eu fiz um álbum de fotos com um menu deslizante! Só que eu estou com um probleminha, no seu exemplo que eu tinha fiz o menu com 5 fotos, até ai tudo bem, só que eu queria fazer um menu com 10 fotos, eu até consegui fazer o menu mas dai eu tive que alterar a propriedade "nScreenWidth = 450;" para "nScreenWidth = 898;" e dai para o rolamento funcionar corretamente eu tenho que mudar o tamanho do filme para 898px, mas quero que o filme continue com a largura de 450px(que é a largura original do exemplo). Como eu posso fazer para fazer com que o menu role certinho mesmo tendo mudado o valor da "nScreenWidth" e não tendo mudado a largura do filme, pois se eu não mudar a largura do filme quando coloco o mouse para a direita o menu não rola para a direita porque a posição que o mouse deveria estar para o menu rolar para a direita não aparece no filme! O link do menu eh esse Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Novembro 14, 2003 Só pelo o que você explicou aqui, ainda fica difícil de te ajudar, porque tem ações de posições de mouse e tudo mais não tem?tem como você colocar aqui uma amostra do fla pra dar uma olhada?Acho que fica mais facil pra te ajudar. abraço, Carneirinho Compartilhar este post Link para o post Compartilhar em outros sites
americano.2000 0 Denunciar post Postado Novembro 14, 2003 O velhinho poem o tuto,codigos, desse album de fotos ae :D Compartilhar este post Link para o post Compartilhar em outros sites
Doug_S.S.S. 0 Denunciar post Postado Novembro 17, 2003 Ae galera, os dois .fla estão disponiveis aqui Filme com 898px funcionando certinho Filme com 450px funcionando errado Alguem pode baixar o .fla e ver aonde eu errei? :D Ae americano.2000, o link do tuto eh esse aqui http://www.pontoflash.com.br ele tah dentro da seção tutoriais-intermediarios! ;) Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Novembro 17, 2003 OI Doug, ele não funciona porque no primeiro ele tem uma largura, e no segundo tem outra, e estão declaradas essas larguras no código, só que você não alterou, nas ações do movieclip onde tem as fotos, você coloca assim: onClipEvent (load) { nScreenWidth = 450; // aqui estava o valor de 898 que é a largura do outro filme nMaxRate = 15; // nPixels determines the speed of the slider movement function moveLeft(nPixels) { this._x -= nPixels; if (this._x<0-nScreenWidth) { this._x = 0; } } function moveRight(nPixels) { this._x += nPixels; if (this._x>0) { this._x = 0-nScreenWidth; } } } onClipEvent (enterFrame) { // move slider with speed dependent on mouse position if (_root._xmouse<nScreenWidth/2 && _root._xmouse>0) { moveRight(nMaxRate-_root._xmouse*nMaxRate/(nScreenWidth/2)); } else { if (_root._xmouse>nScreenWidth/2 && _root._xmouse<nScreenWidth) { moveLeft(_root._xmouse*nMaxRate/(nScreenWidth/2)-nMaxRate); } } } Se quiser aí no seu filme mesmo só altere o numero 898 do nScreenWidth, pra 450 que já vai funcionar. abraço, Carneirinho Compartilhar este post Link para o post Compartilhar em outros sites
Doug_S.S.S. 0 Denunciar post Postado Novembro 17, 2003 Olha só carneirinho, eu fiz o que você falou, agora ele está correspondendo certo a posição do mouse só que as fotos não parecem ter uma continuidade como nos outros filmes. :huh: Dah uma olhada aqui Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Novembro 17, 2003 Oi, vamos ao código. Antes o filme tinha declarado o seguinte: nScreenWidth = 898; Porque essa era a largura do seu filme, daí o que fizemos, diminuimos pra 450, então como isso é praticamente a metada de 898, o filme só estava pegando a parte do lado esquerdo, pois a ação pra mover era a seguinte: if (_root._xmouse<nScreenWidth/2 && _root._xmouse>0) { moveRight(nMaxRate-_root._xmouse*nMaxRate/(nScreenWidth/2)); } Ou seja, se a posição do mouse em x for menor que 898 dividido por 2(metade do palco) e a posição do mouse for maior que 0, então execute a função movieRight, só que como diminuimos o tamanho do palco pra 450, então ele somente dividiu em vez de 898, ele dividiu os 450, então seu filme voltou ao normal, quanto a deslizar o menu pra direita e esquerda, mas daí você disse que o posicionamento das fotos mudou, porque será?Vamos ver no código denovo a ação que faz ele rolar pra direita e pra esquerda: function moveLeft(nPixels) { this._x -= nPixels; if (this._x<0-nScreenWidth) { this._x = 0; } } então temos aqui a função pra ele mover pra esquerda certo?então está lá, se a posição do movieclip em x for menor que 0 menos 898(valor dado ao screenWidth, então posicione o movieclip na posição 0 em x . Então aqui já matou tudo, porque agora nosso nscreenWidth não é mais 898 e sim 450, porisso que está dando esse corte seco nas imagens, a solução porem é simples, porque não alteramos o tamanho do movieclip, então o certo é colocar: function moveLeft(nPixels) { this._x -= nPixels; if (this._x<0-898) { this._x = 0; } } isso porque o 898 era o valor antigo do nScreenwidth, certo?então vamos passar pro move right(mover pra direita): function moveRight(nPixels) { this._x += nPixels; if (this._x>0) { this._x = 0-nScreenWidth; } } Olha lá o mesmo problema, ele diz assim, "se a posiçao desse movieclip em x for maior que 0, então posicione o movieclip em x, na posição 0 - nScreenWidth que agora tem o valor de 450 e não mais 898 tambem, então a solução continua simples, você coloca assim: function moveRight(nPixels) { this._x += nPixels; if (this._x>0) { this._x = 0-898; } } Agora seu filme tem tudo pra dar certo, entendeu a lógica?Então resumindo tudo, seu código agora deve ficar assim: onClipEvent (load) { nScreenWidth = 450; nMaxRate = 15; // nPixels determines the speed of the slider movement function moveLeft(nPixels) { this._x -= nPixels; if (this._x<0 -898) { this._x = 0; } } function moveRight(nPixels) { this._x += nPixels; if (this._x> 0 ) { this._x = 0-898; } } } onClipEvent (enterFrame) { // move slider with speed dependent on mouse position if (_root._xmouse<nScreenWidth/2 && _root._xmouse>0) { moveRight(nMaxRate-_root._xmouse*nMaxRate/(nScreenWidth/2)); } else { if (_root._xmouse>nScreenWidth/2 && _root._xmouse<nScreenWidth) { moveLeft(_root._xmouse*nMaxRate/(nScreenWidth/2)-nMaxRate); } } } Espero ter ajudado, qquer coisa poste aí denovo. abraço, Carneirinho Compartilhar este post Link para o post Compartilhar em outros sites
Doug_S.S.S. 0 Denunciar post Postado Novembro 18, 2003 Carneirinho, brigadão cara, você me achudou muito!!!Valeussss :) Quando eu tiver outra dúvida eu volto a encher o saco de vcs, heheheheeh :P Compartilhar este post Link para o post Compartilhar em outros sites