Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luiz Henrique

[Resolvido] Scroll Horizontal?

Recommended Posts

Olá pessoas,

 

Estou tentando fazer um scroll horizontal e não estou conseguindo, não quero que ele tome o navegador inteiro desta forma é fácil, estou tentando fazer de forma que ele inicie em x = 200 e termine em Stage.width-200, ou um tamanho fixo tanto faz mas não quero o navegador inteiro, um exemplo que procurando uma forma de fazer encontrei este site com o que eu preciso:

 

http://www.pubdesign.com.br/portfolio/

 

É exatamente o que eu estou tentando fazer, mas não consigo não sei mais o que fazer!

Alguma dica?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mh = Stage.width;

tamanho = contfav._width; // Tamanho da galeria

relacao = (tamanho-mh)/mh;

onEnterFrame = function(){

botao.onPress = function(){

// Botão do Scroll

startDrag(botao, true, 200, 140, Stage.width,140);

}

botao.onRelease = botao.onReleaseOutside = function(){

stopDrag();

}

if (tamanho > mh){

ctpos = contfav._x;

edpos = (botao._x-(Stage.width)*relacao)*-1;

dgm = (edpos-ctpos)/5;

if (dgm<-0.05 or dgm>0.05) {

setProperty("contfav", _x, (ctpos+dgm));

}

}

}

 

 

 

 

 

 

 

 

 

 

 

Qual o código para a barra que você ta usando Imagem Postada

 

Pq o problema ta na matematica Imagem Postada

 

Abraços

Acho que ficou meio confuso vou postar novamente resumido somente na função que faz o movimento e explicando o que cada parte faz:

 

mh = Stage.width; // Largura do stage em que vai percorrer a galeriatamanho = contfav._width; // Largura da galeriarelacao = (tamanho-mh)/mh; // Cálculo para o movimentoonEnterFrame = function(){	if (tamanho > mh){ // Se largura da galeria for maior que o stage inicia a função para o scroll		ctpos = contfav._x; // Pega a posição da galeria		edpos = (scrolling._x*relacao)*-1; // Pega a posição do scroll 		dgm = (edpos-ctpos)/5; // função para o movimento		if (dgm<-0.05 or dgm>0.05) {			setProperty("contfav", _x, (ctpos+dgm)); // Pega os cálculos dos movimentos e soma dando a posição x		}		}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que tu quer é basicamente isso aqui:

scroller.onPress = function(){	startDrag(scroller, true, barra._x, barra._y, barra._width + barra._x, barra._y);}scroller.onRelease = function(){	stopDrag();	}onEnterFrame = function(){	var scroll_inicial = scroller._x - barra._x;	var scroll_final = barra._width;	var total_scroll = Math.round((scroll_inicial/scroll_final)*100);	barra_total = scroll_final + 2*(barra._x);	mc._x = Math.round(((mc._width - barra_total)/100)*total_scroll) * -1;}
pq eu faço 2*barra._x é porque como você disse o scroller é menos do que o staging então eu tenho que fazer o tamanho da barra - o lado direito e o lado esquerdo sobrando... então como eu centralizei minha barra

Ele tem os 2 lados iguais por isso faço 2*

 

E ai subtraio do tamanho do movieClip total para calcular a rolagem. e o -1 é pra inverte o lado que ela tem que ir Imagem Postada

 

Lembrando que os calculos foram feitos marcando a posição inicial qunado se cria um mc no canto superior esquerdo... e o scroller a bolinha... no centro.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá rapaz,

 

Então desta forma que você montou não server para mim, pois no seu code eu teria que utilizar o scroll no tamanho total do palco e o scroll tem um tamanho fixo, bom mas consegui resolver de outra forma bem simples, calculando porcentagem para quem precisar está abaixo:

 

percorre = galeria.mc._width-Stage.width; // O quanto eu posso movimentar a galeria em _x
onEnterFrame = function () {
    porcent = (scroller._x/barra._width)*100; // Pego a posição do scroller divido pelo tamanho da minha área "arrastável" * 100 aí tenho a porcentagem de acordo com a posição do scroller.
    total = (percorre/100); // Ver quanto é 1% de percorre
    pos = total*porcent; // Total do 1% vezes porcentagem percorrida
    galeria.mc._x = pos*-1; // posiciono a galeria *-1 para inverter o movimento, só é necessário que se insira um condição para que só haja movimento se a galeria for maior que o Stage.width
};

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não uso um scroll do tamanho total do palco O.o

 

Ambas a barra de scroll e o MC eram menores do que o palco...

 

Isso é muito relativo Imagem Postada

Como te expliquei acima...

 

A unica coisa que muda é a proporção da matematica referente aos pontos iniciais e finais.

 

Mas que bom que conseguiu.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.