Ir para conteúdo

POWERED BY:

Arquivado

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

German Larraguibel

Barra de Rolagem

Recommended Posts

Pessoal, estou com problemas nesta barra de rolagem:

quando clico nela para rolar, mantenho clicado, e saio da área do scroll, ele continua rolando se mexo o mouse, e só para quando volto para cima do scroll,

vou colar o script, me ajudem porfavor!!!

Valeu !

 

http://www.yieldmkt.com/tc2-aboutus.php :: Clique aqui

 

function scrollMyContent () {
	// Cache the TextField as a bitmap to improve performance.
    content_mc.cacheAsBitmap = true;
	// Event Listeners
	scrollDragger.addEventListener(MouseEvent.MOUSE_DOWN, scrollDraggerPress);
	stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpOnStage);
	// Set variables
	var scrollbarHeight:Number = scrollbarBG.height;
	var contentHeight:Number = content_mc.height;
	var scrollDraggerHeight:Number = scrollDragger.height;
	var maskHeight:Number = contentMask.height;
	var scrollAmout:Number = (contentHeight-maskHeight)/(scrollbarHeight-scrollDraggerHeight);
	var topBound:Number = scrollbarBG.y;
	var bottomBound:Number = scrollbarBG.height-scrollDraggerHeight+scrollbarBG.y;	
	var startPos:Number = content_mc.y;
	var leftBound:Number = scrollbarBG.x;
	var absNumSet:Number = 0;
	
    // When scrollDragger gets pressed we do this
	function scrollDraggerPress(event:MouseEvent):void { 
        // Set bounds using some of the scroller BG properties claimed above
		var bounds:Rectangle = new Rectangle(leftBound, topBound, 0, bottomBound);
		scrollDragger.startDrag(false, bounds);
		stage.addEventListener(MouseEvent.MOUSE_MOVE, reportStageMouse);
		function reportStageMouse(event:MouseEvent):void {
			absNumSet = Math.abs(scrollbarBG.y - scrollDragger.y);
			content_mc.y = Math.round(absNumSet * - 1 * scrollAmout + startPos);
		}
	}
	// When mouse is released while dragging we do this
	function mouseUpOnStage(event:MouseEvent):void { 
		stopDrag();
	}
}
scrollMyContent();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou com a mesma dúvida que você, mas num exercício bem mais simples (só a barrinha com startDrag).

 

Vou postar uma classe do FlepStudio que funciona (tutorial + swf para visualização), talvez possa dar uma luz.

http://www.flepstudio.org/forum/tutorials/592-startdrag-flash-cs3-actionscript-3-0-a.html

 

Eu ainda não descobri como corrigir o meu exercício (code um pouco diferente, com evt.target), mas sei que vou chegar lá.

 

sfondo_mc é um retângulo de 300 x 300 px.

ball_mc o círculo arrastável.

 

package
{
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.geom.Rectangle;
	
	public class Controllo extends MovieClip
	{
		private var rect:Rectangle;
		
		public function Controllo()
		{
			init();
		}
		
		private function init():void
		{
			stage.frameRate=31;
			
			ball_mc.x=sfondo_mc.x;
			ball_mc.y=sfondo_mc.y;
			ball_mc.buttonMode=true;
			
			initRectangle();
			initListener();
		}
		
		private function initRectangle():void
		{
			rect=new Rectangle(sfondo_mc.x-sfondo_mc.width/2+ball_mc.width/2,
							   sfondo_mc.y-sfondo_mc.height/2+ball_mc.height/2,
							   sfondo_mc.width-ball_mc.width,
							   sfondo_mc.height-ball_mc.height);
		}
		
		private function initListener():void
		{
			ball_mc.addEventListener(MouseEvent.MOUSE_DOWN,iniziaDrag);
			stage.addEventListener(MouseEvent.MOUSE_UP,stoppaDrag);
		}
		
		private function iniziaDrag(e:MouseEvent):void
		{
			ball_mc.startDrag(false,rect);
		}
		private function stoppaDrag(e:MouseEvent):void
		{
			ball_mc.stopDrag();
		}
	}
}

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

German, encontrei a solução com o auxílio de um querido amigo aqui do fórum >> Thiago de Oliveira Cruz. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Publiquei minha dúvida no blog dele >> http://berseck.wordpress.com/2009/05/16/tutorialstartdrag-actions-script-3/#comments

 

Espero que possa ser útil também pra você.

 

 

Abraços http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

 

 

(frankensteinClass versão 1.3, em breve ... :lol: ... adoro isso)

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.