Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-05-2006, 09:14   #1 (permalink)
machtmichschlau!
 
Benutzerbild von Papaligo
 
Registriert seit: Apr 2006
Beiträge: 62
Tastaturabfrage

Servus mal wieder,
möchte gerne einen MC durch einen Tastatureingabe rotatieren.
habe mir mehrere Gedanken gemacht, die beide nicht richtig funktionieren.
hier mal die beiden Varianten:

Diese funktion funktioniert überhaupt nicht. Bin mir aber nicht im klaren warum da überhaupt nichts passiert.
Code:
var keyListener_obj:Object = new Object();
keyListener_obj.onKeyDown = function() {
    switch (Key.getCode()) {
    case Key.LEFT :
    this.reingeschoben._rotation = -90;
    break;
    case Key.RIGHT :
    this.reingeschoben._rotation = 90;
    break;
    }
}
Bei dieser Variante kann ich die Mcs nur einmal in die entsprechende Richtung drehen aber dann nicht weiter. Ich möchte gerne das bei jedem Tastendruck die jeweilige Rotation durchgeführt wird.
Code:
this.onEnterFrame = function() {
 if (Key.isDown(Key.RIGHT)) {
 this.reingeschoben._rotation = 90;
 
 } else if (Key.isDown(Key.LEFT)) {
 this.reingeschoben._rotation = -90;
 
 }
}
Gruß und Danke
Papaligo ist offline   Mit Zitat antworten
Alt 15-05-2006, 10:30   #2 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
damit die rotation stets weiter ausgeführt wird muß es heißen:
PHP-Code:
    mc._rotation += 90
zum anderen mußt du den listener anmelden
PHP-Code:
Key.addListener(keyListener_obj); 
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 15-05-2006, 11:19   #3 (permalink)
machtmichschlau!
 
Benutzerbild von Papaligo
 
Registriert seit: Apr 2006
Beiträge: 62
Danke dir.
Das zweite Problem wäre damit gelöst, also das mit der If-Abfrage.
beim ersten tut sich allerding noch immer nichts.
Papaligo ist offline   Mit Zitat antworten
Alt 15-05-2006, 12:21   #4 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
du solltest schon den teil von deinem script zeigen um den fehler finden zu können
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 18-05-2006, 08:55   #5 (permalink)
machtmichschlau!
 
Benutzerbild von Papaligo
 
Registriert seit: Apr 2006
Beiträge: 62
Code:
var keyListener_obj:Object = new Object();
keyListener_obj.onKeyDown = function() {
	switch (Key.getCode()) {
	case Key.LEFT :
		this.reingeschoben._rotation += -90;
		break;
	case Key.RIGHT :
		this.reingeschoben._rotation += 90;
		break;
	}
};
Key.addListener(keyListener_obj);
so, mehr Code gibt es bezüglich dem KeyListener nicht. Aber es tut sich gar nichts. Keine Fehlermeldung aber auch sonst nichts.
Papaligo ist offline   Mit Zitat antworten
Alt 18-05-2006, 09:27   #6 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
"this" macht hier auch wenig sinn, das bezieht sich hier ja auf keyListener_obj.
mal davon ausgehend dein zu rotierender mc liegt auf der hauptzeitleiste, dann lautet das wie folgt.

PHP-Code:
var keyListener_obj:Object = new Object();
keyListener_obj.onKeyDown = function() {
    switch (
Key.getCode()) {
    case 
Key.LEFT :
    
mc._rotation += -90;
    break;
    case 
Key.RIGHT :
     
mc._rotation += 90;
    break;
    }
}
Key.addListener(keyListener_obj); 
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 18-05-2006, 09:35   #7 (permalink)
habs vergessen
 
Benutzerbild von pwdVergesser
 
Registriert seit: Feb 2006
Beiträge: 990
gibt Key.getCode() nicht eigentlich nur einen zahlenwert
der taste wieder?

wenn ja kann key.left im listener nicht funtzen sondern
dann muß da in die bedingung der zahlenwert der taste
rein.

pwd
__________________
Blog/Lab Xing
pwdVergesser ist offline   Mit Zitat antworten
Alt 18-05-2006, 09:55   #8 (permalink)
machtmichschlau!
 
Benutzerbild von Papaligo
 
Registriert seit: Apr 2006
Beiträge: 62
Ne, leider nicht. Der müsste das schon verstehen mit key.left usw.
Aber Danke.
Papaligo ist offline   Mit Zitat antworten
Alt 18-05-2006, 10:01   #9 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
du sagst es Key.getCode() gibt nur nen zahlenwert aus, aber genau das ist es was ja gesucht wird. gib doch einfach mal an:
PHP-Code:
trace(Key.LEFT); 
da kommt dann genau der wert nach dem gefragt ist...
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 18-05-2006, 10:05   #10 (permalink)
habs vergessen
 
Benutzerbild von pwdVergesser
 
Registriert seit: Feb 2006
Beiträge: 990
dann mußt du dir die zahlenwert von Key.Left und Key.Right
raustracen - mit denen kannst du dann arbeiten.

im listener:

Code:
var keyListener_obj:Object = new Object();
keyListener_obj.onKeyDown = function() {
    trace(Key.getCode());

   //und dann die case-Anweisung über die Zahlenwerte laufen lassen
}
Key.addListener(keyListener_obj);
pwd
__________________
Blog/Lab Xing
pwdVergesser ist offline   Mit Zitat antworten
Alt 18-05-2006, 10:29   #11 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
hallo, AUFWACHEN!!!

kann das sein das du noch schläfst, der code oben ist völlig in ordnung und funktioniert, ob ich da jetzt
PHP-Code:
case 37:    
    
mc._rotation += -90;
    break; 
oder
PHP-Code:
case Key.LEFT:    
    
mc._rotation += -90;
    break; 
schreibe kommt auf das selbe hinnaus, allerdings dürfte es ne zeitlang später verständlicher sein wenn da Key.LEFT anstatt der zahl 37 steht...

gruß mM
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 18-05-2006, 14:25   #12 (permalink)
habs vergessen
 
Benutzerbild von pwdVergesser
 
Registriert seit: Feb 2006
Beiträge: 990
...na bestens - also zahl nehmen weil performance...
__________________
Blog/Lab Xing
pwdVergesser ist offline   Mit Zitat antworten
Alt 19-05-2006, 09:02   #13 (permalink)
machtmichschlau!
 
Benutzerbild von Papaligo
 
Registriert seit: Apr 2006
Beiträge: 62
Also vielen Dank an Alle nochmal. Es funzt jetzt. Das Problem lag aber nicht an der "Zahl" sondern an dem this.

Gruß
Papaligo 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 09:44 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele