Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-11-2004, 16:01   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 62
2 clips mit space drehen

Hallo Ich hoffe mir kann jmd weiterhelfen,

mein flshfilmchen ist 1 Frame lang:

im ersten frame habe ich folgendes AS definiert:
Code:
stop();
_root.klick = 0;
auf meiner bühne habe ich 2 movieclips:
auf dem ersten mc liegt folgendes script:
Code:
on(press){
		startDrag(this);
		
	}

on(release){
		stopDrag();
		_root.klick = "eins";
		trace(_root.klick);
	}

	
on(keyPress "<space>"){
	if(_root.klick=="eins"){
			this._rotation += 90;
		}
	}
auf meinem zweiten mc leigt folgendes script
Code:
on(press){
		startDrag(this);
		
	}

on(release){
		stopDrag();
		_root.klick = "zwei";
		trace(_root.klick);
	}

	
on(keyPress "<space>"){
	if(_root.klick=="zwei"){
			this._rotation += 90;
		}
	}
Ok was ich eigentlich möchte auf der hauptzeitleiste habe ich eine variable
namens klick. diese speichert mir den geklickten mc ab um ihn zu identifizieren.
Klicke ich nachdem start des filmes auf den ersten movieclip
soll man selbigen mit der space tasts immer um 90 grad drehen können.
klicke ich auf den zweiten mc soll man den 2ten mit der space taste drehen können. leider dreht sich aber nur immer der zweite. was mache ich falsch?

danke für die hilfe
stex ist offline   Mit Zitat antworten
Alt 26-11-2004, 16:27   #2 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
mach des besser mit nem Listener und dann alles über die hauptzeitleiste!

versuch mal das:
bennen deine Mcs "mc1" und "mc2" (instanznamen)
und dann das script in die hzl:
ActionScript:
  1. arr = [0,0];
  2. mc1.onRelease = function () {
  3.     arr[0]=1;
  4. }
  5. mc2.onRelease = function () {
  6.     arr[1]=1;
  7. }
  8. K = new Object();
  9. K.onKeyUp = function () {
  10.     if(Key.getAscii() == 32) {//32 ist leertaste
  11.         if(arr[0]) {
  12.             obj1._rotation += 90;
  13.         }
  14.         if(arr[1]) {
  15.             obj2._rotation += 90;
  16.         }
  17.     };
  18. }
  19. Key.addListener(K);
(ungetestet)

grz
pape

//edit: die drag sahcen hab ich nicht berücksichtigt.. kannste ja einfach noch einfügen!

Geändert von pape (26-11-2004 um 16:29 Uhr)
pape ist offline   Mit Zitat antworten
Alt 26-11-2004, 16:33   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 62
hi danke für die schnelle antwort aber leider funktioniert es nicht und
verstehen tu ichs auch nicht
stex ist offline   Mit Zitat antworten
Alt 26-11-2004, 16:38   #4 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
hmm...

hab ich dich richtig verstanden, dass du Mcs auf der Bühne hast, die wenn man einmal auf sie geklickt hat gedreht werden sollen wenn die leertaste gedrückt wird?
d.h. z.b. folgener ablauf:
leertaste->nix passiert
klick auf mc2->leertaste->mc2 dreht sich
klick auf mc1->leertaste mc1 und mc2 drehen sich jeweils um 90°

....oder wollteste was anderes machen?

//edit:
im script war nen kloiner fehler:
es muss natürlich so heißen:
ActionScript:
  1. ...
  2. mc1._rotation += 90;
  3. ...
  4. mc2._rotation += 90;
  5. ...
  6.  
  7. //und NICHT
  8. //obj1 bzw. obj2
  9.  

Geändert von pape (26-11-2004 um 16:41 Uhr)
pape ist offline   Mit Zitat antworten
Alt 26-11-2004, 16:41   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 62
so sollte es sein

leertaste->nix passiert
klick auf mc2->leertaste->mc2 dreht sich
klick auf mc1->leertaste-> mc1 dreht sich mc2 NICHT mehr

Leider passeirt bei deinem script gar nichts mehr?

grüsse
stex ist offline   Mit Zitat antworten
Alt 26-11-2004, 16:41   #6 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
s. edit im letzten post
s. anhang

was genau verstehst du nicht?

...frag halt!
Angehängte Dateien
Dateityp: zip stex.zip (2,1 KB, 2x aufgerufen)

Geändert von pape (26-11-2004 um 16:43 Uhr)
pape ist offline   Mit Zitat antworten
Alt 26-11-2004, 16:47   #7 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 62
wow, merci,

aber ein kleinen schönheitsfehler hats noch. und zwar wenn ich auf den zweiten mc klick soll sich nur der zweite drehen und der erste nicht mehr. wie mach ich das?

P.S. Fettes merci
stex ist offline   Mit Zitat antworten
Alt 26-11-2004, 16:47   #8 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
mit erläuterung:
ActionScript:
  1. arr = [0,0]; //ein array;
  2. //für jeden mc kann hier gespeichert werden,
  3. //ob er schon gekjlickt wurde oder nicht!
  4. // 0 für nein (false)
  5. // 1 für nein (true)
  6. mc1.onRelease = function () {//wenn mc 1 gedrückt wurde
  7.     _root.arr[0]=1;//im array den entsprechenden eintrag auf 1 setzen
  8. }
  9. mc2.onRelease = function () {//siehe mc1
  10.     _root.arr[1]=1;
  11. }
  12. K = new Object();//neues Objekt erstellen
  13. K.onKeyUp = function () {//Procedure zuweisen( wird ausgeführt wenn "onKeyUp")
  14.     if(Key.getAscii() == 32) {//wenn gedrückte taste  == leertaste ist dann
  15.         if(_root.arr[0]) {//gucke ob mc1 schon gekleickt wurde
  16.             mc1._rotation += 90;//wenn ja, dann drehe diesen um 90 grad
  17.         }
  18.         if(_root.arr[1]) {//gucke ob mc1 schon gekleickt wurde
  19.             mc2._rotation += 90;//wenn ja, dann drehe diesen um 90 grad
  20.         }
  21.     };
  22. }
  23. Key.addListener(K);//das Objekt dem Listener übergeben
  24.  
pape ist offline   Mit Zitat antworten
Alt 26-11-2004, 16:49   #9 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 62
ok habs schon einfach wieder auf null setzen danke.

Nochmals VIELEN DANK für die Hilfe
stex ist offline   Mit Zitat antworten
Alt 26-11-2004, 16:50   #10 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
achso hatte ich dich falsch verstanden.. dachte alle geklickten sollen sich drehen... dann machste des mit dem script:
so ist auch nen bisl kürzer
ActionScript:
  1. obj = undefined;//kann man sich auch sparen..
  2. mc1.onRelease = function () {//wenn mc 1 gedrückt wurde
  3.     _root.obj=this;//obj auf mc1 setzen
  4. }
  5. mc2.onRelease = function () {//siehe mc1
  6.     _root.obj=this;
  7. }
  8. K = new Object();//neues Objekt erstellen
  9. K.onKeyUp = function () {//Procedure zuweisen( wird ausgeführt wenn "onKeyUp")
  10.     if(Key.getAscii() == 32) {//wenn gedrückte taste  == leertaste ist dann
  11.         if(_root.obj) {//gucke ob ein mc geklickt wurde (ob obj nich undefined ist
  12.             obj._rotation += 90;//wenn ja, dann drehe dieses um 90 grad
  13.         }
  14.     };
  15. }
  16. Key.addListener(K);//das Objekt dem Listener übergeben
  17.  

grz und schönen Abend,
Pape

Geändert von pape (26-11-2004 um 16:51 Uhr)
pape ist offline   Mit Zitat antworten
Alt 26-11-2004, 16:53   #11 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 62
DANKE dir auch
stex 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 19:49 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele