javascript help mootools

LumbergTech

Diamond Member
Sep 15, 2005
3,622
1
0
I am having difficulty handling the situation where a key / keys are held down.

My javascript code here works to enable me to move an object around in the div it is contained in, but when I hold one of the arrow keys down I only get one event fired off, and not multiple repeated events. I want the object to continue to move while the key is held down.

Anyone know how to handle this properly?

The relevant part of the code begins with: window.addEvent('keyup' , function(event) {



Code:
window.addEvent("domready", function() {
	var duration = 40000;
	var length = 2000;
	var count = 0;
	
	var tweener;
	
	var run = function() {
		tweener.tween("background-position", "-" + (++count * length) + "px 0px");
	};
	
	//defines a tween
	tweener = $("animate-area").setStyle("background-position", "0px 0px").set("tween", {
		duration: duration,
		transition: Fx.Transitions.linear,
		onComplete: run,
		link: "cancel"
	
	});
	
	window.addEvent('keyup' , function(event) {
		
		var shipX = $("ship").getStyle("margin-left");
		var shipY = $("ship").getStyle("margin-top");
		
		//alert(event.key);
		
		var newy, newx;
		
		
		//alert("ShipX: " + shipX + " ShipY: " + shipY);
		
		switch(event.key){
		
			case "up":
				newy = parseInt(shipY, 10) - 5;
				newx = parseInt(shipX, 10);
			break;
			
			case "down":
				newy = parseInt(shipY, 10) + 5;
				newx = parseInt(shipX, 10);
			break;
			
			case "left":
				newy = parseInt(shipY, 10);
				newx = parseInt(shipX, 10) - 5;
			break;
			
			case "right":
				newy = parseInt(shipY, 10);
				newx = parseInt(shipX, 10) + 5;
			break;
			
			case "space":
				
			break;
			
			default:
				return;
			break;
		}

		
		
		//alert("newy: " + newy + " newx: " + newx);
		
		var shiptween = $("ship").setStyles({
		
		  "margin-top" : newy + "px",
		  "margin-left" : newx + "px"
		
		}).set("tween", {
			duration: 100,
			transition: Fx.Transitions.linear,
			link: "cancel"
		});
	
	});
	
	//start initial run of transition
	run();

	

});
 

Tweak155

Lifer
Sep 23, 2003
11,448
262
126
Does it only move when you release the key (since you have a 'keyup' function)? If so maybe look at 'keydown'?
 

Jaydip

Diamond Member
Mar 29, 2010
3,691
21
81
Create a bkeyDown variable and set it to true in keydown event and false in keyup event.Check this variable before running your animation.
 

LumbergTech

Diamond Member
Sep 15, 2005
3,622
1
0
I switched the event to keydown instead of keyup and now I can hold the key and it will continue on in that direction. I am now trying to implement 8 direction controls instead of just 4. Seems a little trickier than the basic case. I saw one solution online that used an array to keep track of whether or not specific keys were pressed.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |