rudolfkr 0 Denunciar post Postado Novembro 19, 2010 Olá pessoal... novamente mais uma dúvida. Como faço um menu "slide" na horizontal conforme move o mouse. por exemplo, tenho que fazer uma "linha do tempo" (a famosa rsrs...) Ou seja começa por exemplo em 1900 e vai até 2010 Só que assim, a cada data que for clicado vai abrir um outro MC até ai tudo bem, crio um "button" em cada data, mando fazer o load do movie clip no lugar X o problema é, não estou conseguindo fazer com que Fique parado no 1900 e quando move o mouse para a direita e vice versa, vai movendo e vai passando as datas e quando para o mouse (no centro no caso o movimento deve ser feito apenas quando estou no canto esquerdo ou canto direito) para o movimento, e quando chegar até o ano 2010 por exemplo ele pare.. Não começei a fazer pois não achei nada no google nem aqui falando sobre procurei sobre Slide Menu Horizontal Menu - Slide Horizontal Menu e tudo mais... Existem componentes. Preciso de algo deste tipo (no caso só o efeito mesmo de mover de um lado para o outro) http://www.flashcomponents.net/component/horizontal_scrolling_menu_xml_as3.html Thanks pelo help Compartilhar este post Link para o post Compartilhar em outros sites
rudolfkr 0 Denunciar post Postado Novembro 19, 2010 Olá pessoal, olha só o que já consegui var prevX:uint = 0; var curX:uint = 0; var scrollRight:Boolean = false; var scrollLeft:Boolean = false; var scrollAmt:Number = (madeira.width / stage.stageWidth) * 20; function checkDirection(event:MouseEvent):void { prevX = curX; curX = mouseX; //trace(scrollLeft); //trace(scrollRight); if (curX > prevX) { scrollRight = false; scrollLeft = true; } else if (prevX > curX){ scrollLeft = false; scrollRight = true; } else { null; } } function scrollMenu(event:Event):void{ if (scrollRight && (madeira.x < 639.35)) { madeira.x += scrollAmt; } else if (scrollLeft && (madeira.x > -160)) { madeira.x -= scrollAmt; } else { null; } } stage.addEventListener(MouseEvent.MOUSE_MOVE, checkDirection); stage.addEventListener(Event.ENTER_FRAME, scrollMenu); Meu problema agora é. em qualquer canto da tela já faz o movimento, como fazer para o MC mover APENAS quando chega com o mouse nos cantos ou seja na esquerda ou direita. pois se eu deixo o mouse parado no centro tudo bem, mas é mover 1 pixel para qualquer lado que o palco já mexe automaticamente... Alguém pode me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
brunobispo 20 Denunciar post Postado Novembro 19, 2010 Meu problema agora é. em qualquer canto da tela já faz o movimento, como fazer para o MC mover APENAS quando chega com o mouse nos cantos ou seja na esquerda ou direita. pois se eu deixo o mouse parado no centro tudo bem, mas é mover 1 pixel para qualquer lado que o palco já mexe automaticamente... Alguém pode me ajudar? Você precisa especificar essa condição na função scrollMenu(). Você consegue o posicionamento do mouse com a propriedade mouseX de qualquer DisplayObject. No seu caso, vai obter do stage. function scrollMenu(event:Event):void { const MARGEM:uint = 50; if (stage.mouseX < MARGEM || stage.mouseX > stage.stageWidth - MARGEM) return; if (scrollRight && (madeira.x < 639.35)) { madeira.x += scrollAmt; } else if (scrollLeft && (madeira.x > -160)) { madeira.x -= scrollAmt; } } Compartilhar este post Link para o post Compartilhar em outros sites
jonny_quest 0 Denunciar post Postado Novembro 25, 2010 Bom dia, olhe este código abaixo e vê se ele te ajuda a fazer o scroll do menu de um lado para outro: Obs: fiz com fotos e não botões, mas dá no mesmo bastando dentro do MovieClip "barra" trocar os objetos. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif /*Código em AS3*/ var horizontalCenter:Number = stage.stageWidth / 2; var limit:Number = stage.stageWidth - barra.width; var speed:Number = 0.1; var scrollX:Number = 1; addEventListener(Event.ENTER_FRAME, scrollphotos); function scrollphotos(e:Event):void { scrollX = - speed * ( mouseX - horizontalCenter ); barra.x+= scrollX; if (barra.x > 0.8) { barra.x = 0.8;} else if (barra.x < limit) { barra.x = limit; } } ;) Compartilhar este post Link para o post Compartilhar em outros sites