Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-09-2004, 17:01   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Beiträge: 175
variablen ignoriert in for schleife

Hallo, leute. ich steh wieder mal kurz vor dem "letzenHaarverlier"-Zustand == nicht gut ;-))

ich habe diese Schleife, und warum übernimmt mit die hitTest Zeile einfach den k wert nicht???????. wenn ich anstelle des wertes einen fixen Wert aus dem Array namse_u eingebe, funzt es...

for (j = 0; j < sepp; j++){
k = namse_u[j];
if(this.sierk.hitTest(k.kreis)){
trace(k)
}}

bitte bitte, meine lieben, danke
flatripe ist offline   Mit Zitat antworten
Alt 21-09-2004, 17:21   #2 (permalink)
aka stauby
 
Benutzerbild von webdust
 
Registriert seit: Mar 2004
Ort: Würzburg
Beiträge: 705
So sollte es klappen:

ActionScript:
  1. for (j = 0; j < sepp; j++){
  2. k = namse_u[j];
  3. if(this.sierk.hitTest(k+"kreis")){
  4. trace(k)
  5. }}

Mist, oder auch nicht. War grade bei PHP, wo der "." ja eine Verknüpfung aus Strings darstellt.
__________________
"The things you own end up owning you."

Geändert von webdust (21-09-2004 um 17:24 Uhr)
webdust ist offline   Mit Zitat antworten
Alt 21-09-2004, 17:22   #3 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
sollte gehen, solange z.B. sepp richtig definiert ist, und auch im Array Objekte stehen....

Kannst du noch etwas mehr Code schreiben?
Janoscharlipp ist offline   Mit Zitat antworten
Alt 21-09-2004, 17:35   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Beiträge: 175
oi, ja, ok,

ActionScript:
  1. formen_i = new Array(formen[0],formen[1],formen[2],formen[3],formen[4],formen[5],formen[6],formen[7],formen[8],formen[9],formen[10],formen[11]);
  2. namse_u = new Array();
  3. namse = A_;
  4.  
  5. for (i=0; i<8; i++) {
  6.     r = random (l);
  7. teil_up = Form + formen_i[r];
  8. -----
  9. -----
  10.     namse = "A_" + i;
  11.     namse_u[i] = namse;
  12.     {
  13.     tmpForm1 = this.attachMovie(teil_up, namse, 50+i, {_x : 10, _y : 20});
  14.     }  
  15. }
  16. {
  17. tmpForm2 = this.attachMovie(teil_unt, namse_unt, 100, {_x : 30, _y : 100});
  18.  
  19.  tmpForm2.onPress = function() {
  20.  
  21.     if (hitTest(_root._xmouse, _root._ymouse, false)) {
  22.         this.startDrag(false);
  23.  
  24.     }
  25.     else {}
  26. }
  27.  
  28. tmpForm2.onRelease = function() {
  29.  
  30. stopDrag();
  31. sepp = namse_u.length
  32.  
  33.     for (j = 0; j < sepp; j++){
  34.         //k = A_2;
  35.         k = String(namse_u[j]);
  36.             if(this.sierk.hitTest(k.kreis)){
  37.                 trace("hitTest")
  38.         this._x = k._x;
  39.         this._y = k._y;
  40.             } }
  41.  
  42. }
  43. }

das Problem ist beim OnRelease, ich habe eben da die HitTest funktion, und bei einer Kollision mit dem oben attachten MC (tmpForm1) soll eben generell ein hittest gegeben werden. tut aber net. wenn ich k als A_2 definiere (also direkt benamse) ist alles bestens.

(zum besseren Verständnis, es werden oben 8 Objekte plaziert, unten 1 Objekt. wenn das untere nun auf eines oben gezogen wird wird der Hittest ausgeführt und angezeigt werden welches der oberen Felder berührt wird.

hmm, hoffe es ist verständlcih und ich hab da nix vergessen..,

Geändert von flatripe (21-09-2004 um 17:38 Uhr)
flatripe ist offline   Mit Zitat antworten
Alt 21-09-2004, 21:00   #5 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
String versucht, aus seinem Parameter einen String zu machen, du willst das Ergebnis aber wie ein MC weiterverwenden???

versuchts mal mit

this.sierk.hitTest(this[k].kreis)

und überprüfe davor mit trace(k) ob auch das richtige aus dem Array kommt.
Janoscharlipp ist offline   Mit Zitat antworten
Alt 21-09-2004, 23:37   #6 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Beiträge: 175
hmm, es funzt zwar nicht mit this[k].kreis, jedoch aber mit
_root[k].kreis
zumindest tut es soweit das es nen hitTest anzeigt, wenngleich auch alle weiteren aktionen, die ich angelegt habe nicht mehr tun so wie sie sollen

wenns ichs vor der If (hittest Abfrage austrace, kommen mir alle Werte so wie ich sie brauche (A_0, A_1, A_2, ...., A_7)
nach der if abfrage geht nix mehr.. ;-(
dann gibt er mir wohl den trace("hitTest") richtig aus, springt aber dann sofort zur else schleife?????? das darf er ja aber gar net...


ActionScript:
  1. for (j = 0; j < sepp; j++){
  2. //    k = A_2;
  3.         k = namse_u[j];
  4.             //trace(k) //hier stimmt noch alles
  5.             if(this.sierk.hitTest(_root[k].kreis)){
  6.             //trace(k) //ab da tutr er ganz komische werte sagen
  7.  
  8.                 trace("hitTest")
  9.         // ... dann setze die Filmsequenz (Pfeil) auf die Koordinaten des Objektes k (_root.[k]?? )
  10.  
  11.         this._x = k._x;
  12.         this._y = k._y;
  13.         SO = (this._x - Position_x[Z1_x])/104;
  14.         ZO = k
  15.         if (formen_u[SO] == zeile2) {
  16.             STAND = 1;
  17.             trace("stimmt");
  18.         }else{
  19.             STAND = 0;
  20.             trace("falsch");
  21.         }
  22.         trace(STAND + " " + formen_u[SO] + " " +zeile2)
  23.         //wenn die Filfsequenz nicht den Kreis berührt,
  24.             } else {
  25. .....
  26. ....

wie schon gesagt, der hitTest tut erst mal, Danke, aber dann steckts eben beim rest. Bitte, und nochmal Danke für ure benühungen, und der späten (frühen) hilfe.
flatripe ist offline   Mit Zitat antworten
Alt 22-09-2004, 08:57   #7 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Beiträge: 175
Question

naja, hab mich mal da weitergespielt und nun den code so erweitert
es wird zumindest der hitTest nun erkannt.
Dank an Janoscharlipp

Aber warum führt er da IMMER die letze }else{ ((this.onEnterFrame))
Anweisung aus.
das gibts ja net????????

ActionScript:
  1. if(this.sierk.hitTest(_root[k].kreis)){
  2.         this._x = _root[k]._x;
  3.         this._y = _root[k]._y;
  4.  
  5.         SO = (this._x - Position_x[Z1_x])/104;
  6.         ZO = _root[k]
  7.  
  8.             if (formen_u[SO] == zeile2) {
  9.             STAND = 1;
  10.             trace("stimmt");
  11.    
  12.             }else{
  13.             STAND = 0;
  14.             trace("falsch");
  15.             }//else if scjleife zu
  16.        
  17.             }else{
  18.  
  19. this.onEnterFrame= function(){
  20. this._x = 164;
  21. this._y = 430;
  22. delete this.onEnterFrame;  
  23. }
flatripe 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 10:42 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele