Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-11-2005, 12:38   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 3
Bild mit Pfeiltasten steuern.....geht net

Hi ich hab da mal ein Problem, ich will einen bild mit den pfeiltasten um eine gewisse distanz steuern! nur funktioniert das nicht! hier der quelltext!

danke schonmal im voraus

Code:
onClipEvent (load) 
{	
	X = 0;								// Y Abstand vom Ursprung
	Y = 240;							// X Abstand vom Ursprung
	v = 10; 							// Pixel pro Frame;
	this._x = 13;						// Startpunkt X
	this._y = 20;						// Startpunkt Y
	schlusspunkt_y = this._y + Y;		
	schlusspunkt_x = this._x + X
	key = 0;
}
onClipEvent (keyDown) 
{
	sollX = _root._x; 
	sollY = _root._y; 
	deltaX = sollX + X; 
	deltaY = sollY + Y; 
	deltaS = Math.sqrt(deltaX*deltaX+deltaY*deltaY); 
	frame = deltaS/v; // Schritte berechenen 
	faktorX = deltaX/frame; 
	faktorY = deltaY/frame;
	key = 1;
}
onClipEvent (keyUp) 
{
	sollX = _root._x; 
	sollY = _root._y; 
	deltaX = sollX + X; 
	deltaY = sollY + Y; 
	deltaS = Math.sqrt(deltaX*deltaX+deltaY*deltaY); 
	frame = deltaS/v; // Schritte berechenen 
	faktorX = deltaX/frame; 
	faktorY = deltaY/frame;
	key = 2;
}
onClipEvent(enterFrame)
{
	switch(key)
	{
		case "1":
		if (this._y < schlusspunkt_y && Math.abs(sollX-_x)>1 && Math.abs(sollY-_y)>1) 
		{ 
			_x += faktorX; 
			_y += faktorY; 
		}
		break;
		
		case "2":
		if (this._y < schlusspunkt_y && Math.abs(sollX-_x)>1 && Math.abs(sollY-_y)>1) 
		{ 
			_x -= faktorX; 
			_y -= faktorY; 
		}
		break;
	}
}
mfg Fabi
memorex2004 ist offline   Mit Zitat antworten
Alt 27-11-2005, 13:09   #2 (permalink)
Herr Brot
 
Benutzerbild von mati
 
Registriert seit: Dec 2002
Beiträge: 1.692
Hallo Fabi,

du musst erst mal einen KeyListener initialisieren, sonst wird das nichts. Ich habe dir hier mal ein beispiel. Einfach einen MC erstellen, Instanzname "myMC" und das Skript in das erste Frame:
Code:
myMC.onKeyDown = function() {
	if (Key.isDown(Key.RIGHT)) {
		this.onEnterFrame = function() {
			this._x++;
		};
		return;
	} else if (Key.isDown(Key.LEFT)) {
		this.onEnterFrame = function() {
			this._x--;
		};
		return;
	} else if (Key.isDown(Key.DOWN)) {
		this.onEnterFrame = function() {
			this._y++;
		};
		return;
	} else if (Key.isDown(Key.UP)) {
		this.onEnterFrame = function() {
			this._y--;
		};
		return;
	}
};
Key.addListener(myMC);
stop();
gruß, mati
__________________
„Ich war geheilt, all right!“
mati ist offline   Mit Zitat antworten
Alt 27-11-2005, 22:09   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 3
vielen dank für die antwort, jetzt kann ich das bild schonmal durch die gegend bewegen.......aer ich richtie ich ein, dass das bild an einer bestimmten position anhält! also bei key.down so bei _y = 240.......

sieht jetzt so aus.......

Code:
schub1.onKeyDown = function() 
{
	X = 600;							// Y Abstand vom Ursprung
	Y = 120;							// X Abstand vom Ursprung
	v = 5; 								// Pixel pro Frame;
	schlusspunkt_y = this._y + Y;		
	schlusspunkt_x = this._x + X		

	sollX = _root._x; 
	sollY = _root._y; 
	deltaX = sollX + X; 
	deltaY = sollY + Y; 
	deltaSx = Math.sqrt(deltaX*deltaX);
	deltaSy = Math.sqrt(deltaY*deltaY);
	frame1 = deltaSx/v;
	frame2 = deltaSy/v;
	faktorX = deltaX/frame1; 
	faktorY = deltaY/frame2;
	
	if (Key.isDown(Key.RIGHT)) {
		this.onEnterFrame = function() {
			_x += faktorX;
		};
		return;
	} else if (Key.isDown(Key.LEFT)) {
		this.onEnterFrame = function() {
			_x -= faktorX;
		};
		return;
	} else if (Key.isDown(Key.DOWN)) {
		this.onEnterFrame = function() {
			_y += faktorY;
		};
		return;
	} else if (Key.isDown(Key.UP)) {
		this.onEnterFrame = function() 
		{
			_y -= faktorY;
		};
		return;
	}
};
Key.addListener(schub1);



stop();
memorex2004 ist offline   Mit Zitat antworten
Alt 27-11-2005, 22:14   #4 (permalink)
Herr Brot
 
Benutzerbild von mati
 
Registriert seit: Dec 2002
Beiträge: 1.692
tag auch.

wenn du das bild stoppen willst und später nicht mehr bewegen, dann kannst du die beiden aktionen mit einem
Code:
delete this.onEnterFrame;delete this.onKeyDown;
//oder anstatt this eben schub1, je nachdem wo das skript steht
löschen. Soll die Bewegung später noch weitergehen, dann brauchst du eben eine Variable, die du triggerst. Dann lässt du die Bewegung nur in Abhängigkeit von der Variablen ausführen.

mati.
__________________
„Ich war geheilt, all right!“
mati ist offline   Mit Zitat antworten
Alt 27-11-2005, 22:18   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 3
Ne ich muss das bild später noch bewegen, ich will ein teleskop bauen, dass man ein und ausfahran, nach rechts und links sowie biegen kann! wie meinst du das genau mit der variablen..........ich hatte in die if Anweisung if(Key.isDown(Key.DOWN) && _y < schlusspunkt_y).......

aber das wollte er nich
memorex2004 ist offline   Mit Zitat antworten
Alt 27-11-2005, 22:35   #6 (permalink)
Herr Brot
 
Benutzerbild von mati
 
Registriert seit: Dec 2002
Beiträge: 1.692
analog zu meinem oberen code:
Code:
else if (Key.isDown(Key.DOWN)) {
		this.onEnterFrame = function() {
			if(this._y<90)this._y++;
			else delete this.onEnterFrame;
		};
__________________
„Ich war geheilt, all right!“
mati ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele