Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-11-2003, 10:05   #1 (permalink)
nps
...?
 
Benutzerbild von nps
 
Registriert seit: Oct 2002
Ort: Dunstkreis HD
Beiträge: 1.007
Array - Problem"chen"

Hallo,

Ich bekomm´s gerade überhaupt nicht gebacken, MC´s über ´nen Array (per random) anzusprechen.
Hab´ ich schon erwähnt, daß arrays meine ganz große Stärke sind?

Aalso, bis jetzt hab´ich das da:

feld = new Array();
feld = ["red", "blue", "yellow", "green"];
trace(feld[1]);
v = random(4);
trace(feld[v]);
feld[v].gotoAndPlay(2);


Per trace gibt er mir eigentlich das zurück, was ich mir so vorgestellt hatte, aber es klappt nicht......

red, blue, green und yellow sind die Instanznamen meiner MC´s.
Per random soll dann einer von ihnen "abspielen".
Sagt mir jemand, was ich falsch mache? (ist wahrscheinlich wieder irgendwas ganz dämliches...........sorry).

Danke
Niki
__________________
"...ich begann am Glauben zu zweifeln, als ich als 10-Jähriger zuschaute wie sie einen Blitzableiter am Turm unserer Dorfkirche befestigten..."
nps ist offline   Mit Zitat antworten
Alt 06-11-2003, 10:12   #2 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
hallöle.
ActionScript:
  1. feld = new Array();
  2. feld = ["red", "blue", "yellow", "green"];
  3. trace(feld[1]);
  4. v = random(feld.length); //damit haste immer ne zufallszahl, die der länge des array entspricht. (nur so am rande)
  5. trace(feld[v]);
  6. this[feld[v]].gotoAndPlay(2);
__________________
bei fragen, fragen.
Smirgel ist offline   Mit Zitat antworten
Alt 06-11-2003, 10:17   #3 (permalink)
nordlicht
 
Benutzerbild von phantura
 
Registriert seit: Apr 2002
Ort: Hamburg
Beiträge: 137
oder du wählst so deine zufallszahl:
ActionScript:
  1. zufallszahl = Math.round(Math.random()*3);
und kannst jetzt anschl (zufallszahl zw. 0 und 3) dein feld auswählen...
phantura ist offline   Mit Zitat antworten
Alt 06-11-2003, 10:21   #4 (permalink)
nps
...?
 
Benutzerbild von nps
 
Registriert seit: Oct 2002
Ort: Dunstkreis HD
Beiträge: 1.007
Aaah ja...........

Danke Smirgel. Jetzt funktioniert´s zumindest vom Prinzip her. Das einzige Problem was ich jetzt noch habe, ist:

this[feld[v]].gotoAndPlay(2);

schreibe ich das so, passiert garnix.


this[feld[v]].gotoAndStop(2);

Das klappt wunderbar...........................wieso? Das Problem hab´ ich irgendwie öfter.

Tipp?

Danke
Gruß
Niki
__________________
"...ich begann am Glauben zu zweifeln, als ich als 10-Jähriger zuschaute wie sie einen Blitzableiter am Turm unserer Dorfkirche befestigten..."
nps ist offline   Mit Zitat antworten
Alt 06-11-2003, 10:25   #5 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
jepp. sowas habe ich auch hier und da. schreib mal ein play() in das zweite frame deiner mc´s. und dann wieder mit gotoAndPlay(2) ansprechen. ist zwar ne etwas doofe lösung, aber funzt... zumindest bei mir.
__________________
bei fragen, fragen.
Smirgel ist offline   Mit Zitat antworten
Alt 06-11-2003, 10:25   #6 (permalink)
nps
...?
 
Benutzerbild von nps
 
Registriert seit: Oct 2002
Ort: Dunstkreis HD
Beiträge: 1.007
Danke Phantura für den Hinweis. Hab´mich noch nicht so richtig an die ganze "math" - Geschichte rangetraut. Jetzt hätte ich ja ´nen Grund
Ich werd´s mal testen.

Gruß
Niki
__________________
"...ich begann am Glauben zu zweifeln, als ich als 10-Jähriger zuschaute wie sie einen Blitzableiter am Turm unserer Dorfkirche befestigten..."
nps ist offline   Mit Zitat antworten
Alt 06-11-2003, 10:28   #7 (permalink)
nps
...?
 
Benutzerbild von nps
 
Registriert seit: Oct 2002
Ort: Dunstkreis HD
Beiträge: 1.007
@Smirgel: Jawoll, ´ne Bauernlösung (nee, nicht DER Bauer ), die sind mir am liebsten.............hat sowas von MacGyver. Die Hälfte meiner Scripts funktionieren so.



Danke Dir

Gruß
Niki
__________________
"...ich begann am Glauben zu zweifeln, als ich als 10-Jähriger zuschaute wie sie einen Blitzableiter am Turm unserer Dorfkirche befestigten..."
nps ist offline   Mit Zitat antworten
Alt 10-11-2003, 09:27   #8 (permalink)
nps
...?
 
Benutzerbild von nps
 
Registriert seit: Oct 2002
Ort: Dunstkreis HD
Beiträge: 1.007
Soooo,

Kann mir vielleicht jemand bei der Formulierung helfen, die benötigt wird, daß der (aus dem Array per random) ausgewählte MC (bzw. dessen "Name") in einen neuen Array geschrieben wird?

Ich versuche zwar gerade, mir meine Frage selbst zu beantworten (mit dem Tut von Pheidrias : http://www.pheidrias.de/flash/tuts/arraytut.html ) aber so langsam fängt der Ruß, der sich an der Decke über mir gebildet hat, auf die Tastatur zu bröckeln (....nicht weil das Tut von Pheidrias so kompliziert ist, sonder eher, weil ich zu ....ööhm....naja aaaaaaach ...Arrays (und alles, was auch nur ein wenig nach Mathe "riecht") sind nicht so das Gebiet, auf dem ich meine Nobelpreise geholt habe... )

Also für ein klein wenig (Nach-) Hilfe wäre ich seehr dankbar *SmirgelzuwinkundmitHundeblickanguck´*

Gruß
Niki
__________________
"...ich begann am Glauben zu zweifeln, als ich als 10-Jähriger zuschaute wie sie einen Blitzableiter am Turm unserer Dorfkirche befestigten..."
nps ist offline   Mit Zitat antworten
Alt 10-11-2003, 09:34   #9 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
moin.

ich verstehe nicht genau was du nun vorhast, aber hier mal zwei ansätze:
ActionScript:
  1. neues_array= new Array();
  2. //und dann entweder
  3. neues_array.push(this[feld[v]]);
  4. //oder
  5. neues_array[0]=this[feld[v]]
hilft das weiter? sonst sag nochmal bescheid.
__________________
bei fragen, fragen.
Smirgel ist offline   Mit Zitat antworten
Alt 10-11-2003, 09:48   #10 (permalink)
nps
...?
 
Benutzerbild von nps
 
Registriert seit: Oct 2002
Ort: Dunstkreis HD
Beiträge: 1.007
Haarr.....die "Rettung from outer space". Cool.

Also, ich denke, es ist der erste Ansatz.

Also:

neues_array= new Array();
neues_array.push(this[feld[v]]);

Allerdings schreibt es wohl immer nur einen Wert in den neuen Array, oder?

Ich habe nämlich per "counter" eine Schleife gebaut, die (z.B) 4 mal

feld = new Array();
feld = ["red", "blue", "yellow", "green"];
v = random(feld.length);
this[feld[v]].gotoAndPlay(2);

macht.
Und ich hätte gerne, daß die 4 ausgewählten MC´s in der Reihenfolge, in der sie aufgerufen wurden, in den neuen Array geschrieben werden. (z.B.: "red","red","yellow","green").

Ich hoffe, mein "Gestammel" war verständlich.......

DankeDiraufjedenFallschonmal
Gruß
Niki
__________________
"...ich begann am Glauben zu zweifeln, als ich als 10-Jähriger zuschaute wie sie einen Blitzableiter am Turm unserer Dorfkirche befestigten..."
nps ist offline   Mit Zitat antworten
Alt 10-11-2003, 09:57   #11 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
da kannst du auch beide versionen nehmen:
ActionScript:
  1. neues_array= new Array();
  2. feld = ["red", "blue", "yellow", "green"];
  3. for(i=0;i<4;i++){
  4. v = random(feld.length);
  5. this[feld[v]].gotoAndPlay(2);
  6. neues_array.push(this[feld[v]]); // oder: neues_array[i]=this[feld[v]];
  7. }

__________________
bei fragen, fragen.
Smirgel ist offline   Mit Zitat antworten
Alt 10-11-2003, 13:22   #12 (permalink)
nps
...?
 
Benutzerbild von nps
 
Registriert seit: Oct 2002
Ort: Dunstkreis HD
Beiträge: 1.007
Danke Smirgel

Ich hab´ mein Problem zwar noch nicht ganz gelöst, aber Du hast mich da schonmal auf den "rechten Weg" gebracht (denke ich).

Ich schließe aber nicht aus, daß ich mich demnächst nochmal melde..*hüstel*

Ich hoffe ich kann weiterhin auf Deinen kompetenten Rat hoffen.............so von grün zu grün

Riiiesendankeschön bis jetzt.........

Gruß
Niki
__________________
"...ich begann am Glauben zu zweifeln, als ich als 10-Jähriger zuschaute wie sie einen Blitzableiter am Turm unserer Dorfkirche befestigten..."
nps ist offline   Mit Zitat antworten
Alt 01-12-2003, 10:11   #13 (permalink)
nps
...?
 
Benutzerbild von nps
 
Registriert seit: Oct 2002
Ort: Dunstkreis HD
Beiträge: 1.007
Hallo,

ich mal (schon) wieder. Hab´ mich jetzt die letzten Tage mit anderen Dingen beschäftigt und bin heute mal zu jenem Problem zurückgekehrt. Irgendwie klappt das immer noch nicht so, wie ich mir das vorstelle.

Bis jetzt klappt schonmal das "in-den-Array-schreiben". Jetzt wollte ich eigentlich, daß ein Array auf Knopfdruck "gefüllt" wird.

Also vorher wurde der Array per Zufall mit den 4 Werten ("red", "yellow", "blue", "green") gefüllt. Jetzt gibt´s zu jedem Wert(Farbe) einen Button.
Wenn der Button zu "green" gedrückt wird, soll in einem Array (an erster Stelle) der Wert "green" stehen.....usw. Bis max. 4 Werte in dem Array stehen (zb.: "green", "red", "greén", "blue").

Ich dachte, mit dem Ansatz, den mir Smirgel (hüpf, wink) zurechtgeschustert hat, wäre das kein Problem für mich.............................anscheinend aber doch

In diesem Sinne: HIIIIIILFÄÄÄÄÄÄÄÄÄÄÄÄÄÄ.

Gruß
Niki
__________________
"...ich begann am Glauben zu zweifeln, als ich als 10-Jähriger zuschaute wie sie einen Blitzableiter am Turm unserer Dorfkirche befestigten..."
nps ist offline   Mit Zitat antworten
Alt 01-12-2003, 11:06   #14 (permalink)
anyway
Gast
 
Beiträge: n/a
Wieso legst Du nicht vorher schon ein zweites Array an, was logger durchgemixt wird und somit Deine Filme ebenfalls in zufälliger Reihenfolge wiedergibt...

ActionScript:
  1. // der prototype gehört als Bildaktion ins erste Schlüsselbild
  2. // der Hauptzeitleiste.
  3. Array.prototype.shuffle = function() {
  4.     this.sort(function () {
  5.         return random(2);
  6.     });
  7. };
  8. deinArray1 = ["rot","gruen","blau","gelb"];
  9. // deinArray1 kopieren
  10. deinArray2 = deinArray1.slice(0,deinArray1.length);
  11. // deinArray2 durchmixen
  12. deinArray2.shuffle();


...was das andere Prob angeht, so könntest Du hier besser mit einem Objekt arbeiten....:

ActionScript:
  1. _global.bereitsAbgespielt = {};
  2. // und als Aktion auf Deinen Buttons
  3. deinButton.onRelease = function () {
  4. if (!bereitsAbgespielt[this._name]) {
  5. bereitsAbgespielt[this._name] = this;
  6. } else {
  7. trace("dieser Film wurde bereits abgespielt!")
  8. }
  9. }


Mir ist aber auch noch nicht so ganz klar, was Du überhaupt vorhast...

anyway.
  Mit Zitat antworten
Alt 01-12-2003, 12:31   #15 (permalink)
nps
...?
 
Benutzerbild von nps
 
Registriert seit: Oct 2002
Ort: Dunstkreis HD
Beiträge: 1.007
Hi anyway,

erstmal Danke für Deine Antwort.

Was ich vorhabe ist....*rumdrucks*........also ich wollte mit Flash ein "Senso" bauen. Weißt schon, dieses Spiel mit den 4 Farb(-leucht)-Feldern diewodaso mit verschiedenen Tönen in zufälliger Reihenfolge aufleuchten (abspielen) und man muß dann die richtige Reihenfolge "nachdrücken". (mannmann........wenn ein Erfinder dieses Spiels sich meine "Erklärung" durchließt, hat er von dem Schlag gegen die Stirn bestimmt noch 3 Tage später Kopfweh..........Kaaaaaaaaffeeeeeeeeeeeee ).

Gruß
Niki
__________________
"...ich begann am Glauben zu zweifeln, als ich als 10-Jähriger zuschaute wie sie einen Blitzableiter am Turm unserer Dorfkirche befestigten..."
nps 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 11:32 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele