Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-03-2004, 23:42   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 120
[Array] Löschen und neu zuweisen

Hallo,
also ich habe da ein array Objekt in Frame 1:
sowie meine Prototyp funktionen

ActionScript:
  1. myarray = new Array();
  2. myarray[0] = ["1","2","3"];
  3. myarray[1] = ["1","2","3"];
  4. usw

nun möche ich myarray in Frame 2 löschen und durch neue inhalte anhand einer include datei füllen

ich habe es so versucht

ActionScript:
  1. //myarray komplett löschen
  2. myarra = new Array();
  3. //die include Datei einfügen
  4. // mit den neuen inhalten des
  5. //Array Objekts (myarray)
  6. include "datei.as"
  7.  
  8. //Die Prototypfunktion aus
  9. //Frame 1 soll nun mit den neuen Daten des
  10. //Array arbeiten
  11. funktion();

Die include Datei "datei.as" würde so aussehen

ActionScript:
  1. myarray[0] = ["A","B"."C"];
  2. myarray[1] = ["A1","B2","C3"];


nur irgendwie funktioniert das nicht so wirklich, da anscheined die
alten array dateien nicht so wirklich gelöscht werden !
Hat jemand nen plan wie ich das problem lösen könntze ?
Die suchfunktion hat nix gebracht.
Die .split funktion funktioniert eben genau so wenig.
joker1983 ist offline   Mit Zitat antworten
Alt 25-03-2004, 23:53   #2 (permalink)
...
 
Benutzerbild von killerkarnickel
 
Registriert seit: Jul 2002
Ort: london
Beiträge: 174
hi joker,
eigentlich sollte das array durch
myarray.splice(0);
gelöscht werden.
gruß killerkarnickel
__________________
beim nächsten projekt wird alles besser ...
killerkarnickel ist offline   Mit Zitat antworten
Alt 25-03-2004, 23:54   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
hi joker,

mal ne ganz blöde Frage:
hast du ein stop() in deinem zweiten Frame?

die zweite Frage wäre:
Was genau hast du für prototype-Funktionen und was genaus soll "function();" bewirken?

gruß,
roman

P.S.: Ich geh mal davon aus, dass das fehlende y bei "myarra" im zweiten Frame ein Tippfehler war.
romän ist offline   Mit Zitat antworten
Alt 26-03-2004, 00:23   #4 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 120
Also das ist so eine funktion

ActionScript:
  1. movieclip.prototype.funktion_1 = function (a, b) {
  2.     for (i=0; i<myarray[a].length; i++) {
  3.        
  4.    
  5.         this["f_"+i].ausgabe = myarray[a][i];
  6.         if (myarray[a][i] == myarray_2[b]) {
  7.             this["f_"+i].okay = true;
  8.         }
  9.     }
  10. }

Und Frame 2 sieht so aus

ActionScript:
  1. myarray.splice(0);
  2. myarray_2.splice(0);
  3.  
  4. #include "´datei.as"
  5. trace(myarray);
  6. trace(myarray_2);
  7.  
  8. stop();
  9. funktion_1();
joker1983 ist offline   Mit Zitat antworten
Alt 26-03-2004, 00:49   #5 (permalink)
...
 
Benutzerbild von killerkarnickel
 
Registriert seit: Jul 2002
Ort: london
Beiträge: 174
Hallo joker,
wäre hilfreich, wenn Du dazu schreiben würdest, was da nun geht und was nicht.

Auf welchen Frames liegt der Code überhaupt ? Hauptzeitleiste ?
__________________
beim nächsten projekt wird alles besser ...
killerkarnickel ist offline   Mit Zitat antworten
Alt 26-03-2004, 01:11   #6 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 120
nur das Problem ist, das ich nun versuche das für jede Frage ein neuer frage pool erstellt wird, damit man den schwierigkeitsgrad kontrollieren kann, sprich mit zunehmender leistung steigt auch der schwierigkeitsgrad.

hier der basis code
ActionScript:
  1. QRes = new Array();
  2. ARes = new Array();
  3. LRes = new Array();
  4. #include "fragen.as"
  5.  
  6.  
  7.  
  8. richtig = 0;
  9. falsch = 0;
  10.  
  11. // Antwort Generator
  12. movieclip.prototype.antworten = function (akt, los) {
  13.     for (i=0; i<ARes[akt].length; i++) {
  14.        
  15.    
  16.         this["f_"+i].ausgabe = ARes[akt][i];
  17.         if (ARes[akt][i] == LRes[los]) {
  18.             this["f_"+i].okay = true;
  19.         }
  20.     }
  21. }
  22.  
  23. // Fragen Generator (Zufall ohne zurücklegen)
  24. movieclip.prototype.genFrage = function () {
  25.     if (QRes.length>0) {
  26.         kill();
  27.         fNr = random(QRes.length);
  28.         frage = QRes[fNr];
  29.         antworten(fNr, fNr);
  30.         //QRes.splice(fNr,1);
  31.         //ARes.splice(fNr,1);
  32.         //LRes.splice(fNr,1);
  33.     } else {
  34.         kill();
  35.         gotoAndStop(2);
  36.     }
  37. }
  38.  
  39.  
  40.  
  41. // Antwort Prüfen
  42. movieclip.prototype.pruf = function () {   
  43.    
  44.     if (_parent.uhr.ausgabe != "TIMEOUT !") {
  45.         _parent.uhr.reset = getTimer()/1000;
  46.         if (okay) {
  47.             _parent.controller2.nextFrame();
  48.             _parent.richtig++;
  49.             _parent.nextFrame();
  50.             _parent.genFrage();       
  51.             //Gewonnen Überprüfen !
  52.             if (_parent.richtig == 10) {
  53.             _parent.gotoAndStop("win");
  54.             }
  55.         } else {
  56.             _parent.gotoAndStop("falsch");
  57.        
  58.          
  59.            
  60.         }
  61.     }
  62.  
  63. }
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. // Soundeffekte
  71. movieclip.prototype.sfx = function (pass) {
  72.     z = random(3)
  73.     mSFX = new Sound(this);
  74.     if (pass) {  
  75.         mSFX.attachSound(RSFX[z]);
  76.         mSFX.start(0,1);
  77.     } else {       
  78.         mSFX.attachSound(FSFX[z]);
  79.         mSFX.start(0,1);
  80.     }
  81. }
  82.  
  83. // TimeOut
  84. movieclip.prototype.timeout = function (dauer,feld) {      
  85.     sek = int(getTimer()/1000-reset);   
  86.     this[feld] = (sek>dauer) ? this[feld] = "TIMEOUT !" : this[feld] = dauer-sek;
  87.     if (this[feld] == "TIMEOUT !") {
  88.          _parent.gotoAndStop("falsch");  
  89.     }
  90. }
  91.  
  92. // Clips Killen
  93. movieclip.prototype.kill = function () {   
  94.         for (i=0; i<max; i++) {
  95.             removeMovieClip ("f_"+i);
  96.         }   
  97. }
  98.  
  99. stop();
  100. genfrage();

so nun habe ich in frame 2

ActionScript:
  1. QRes.splice(0);
  2. ARes.splice(0);
  3. LRes.splice(0);
  4. #include "fragen_2.as"
  5. trace(QRes);
  6. trace(ARes);
  7. trace(LRes);
  8. trace(richtig);
  9.  
  10. genFrage();
  11. stop();

aber irgendwie funktioniert das schon aber irgendwie auch nicht, denn die auswertung und die überprüfung welche antowrt die richtige ist stimmt nicht, sobald man die sachen variert.

So dass zumbeispeil Button1 und Button2 die richtige Antwort ergeben obwohl in Frame 1 nur Button1 die richtige antwort ergeben haette und in Frame 2 nur Button2 die richtige antwort ergeben haette.

das ist mein hauptproblem !

Geändert von joker1983 (26-03-2004 um 13:43 Uhr)
joker1983 ist offline   Mit Zitat antworten
Alt 26-03-2004, 08:07   #7 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
Moin,

war gestern schon ein bisschen spät.
Wenn du funktion_1 aufrufst musst du natürlich auch die entsprechenden Parameter mit übergeben:
ActionScript:
  1. // -------- Frame1:
  2. movieclip.prototype.funktion_1 = function (a, b) {
  3.         for (i=0; i<myarray[a].length; i++) {
  4.                 //this["f_"+i].ausgabe = myarray[a][i];
  5.                 trace("folgende Werte vergleichen: "
  6.                       + myarray[a][i] + " : "
  7.                       + myarray_2[b]);
  8.                 if (myarray[a][i] == myarray_2[b]) {
  9.                     //this["f_"+i].okay = true;
  10.                     trace(">>> " + myarray[a][i] + "==" + myarray_2[b]);
  11.                 }
  12.         }
  13. }
  14.  
  15. myarray = new Array();
  16. myarray[0] = ["1", "2", "3"];
  17. myarray[1] = ["1", "2" ,"3"];
  18.  
  19. myarray_2 = ["1", "2", "3"];
  20.  
  21. // ------- Frame2:
  22. myarray.splice(0);
  23. myarray_2.splice(0);
  24.  
  25. #include "datei.as"
  26.  
  27. /* datei.as sieht so aus:
  28. / myarray[0] = ["A", "B", "C"];
  29. / myarray[1] = ["A1", "B2", "C3"];
  30. / myarray_2 = ["A", "B2", "C"];
  31. */
  32.  
  33. stop();
  34. funktion_1(0, 2); // -> C == C
  35. funktion_1(1, 1); // -> B2 == B2
  36. funktion_1(0, 0); // -> A == A
  37.  
gruß,
roman
romän ist offline   Mit Zitat antworten
Alt 26-03-2004, 11:23   #8 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 120
Hmm komisch komisch ich kriege es immer noch nicht gebacken

ansich liegt der Fehler nur in dieser Zeile
(in der prototype.antworten() Funktion)

ActionScript:
  1. this["f_"+i].okay = true;

f_0 - f_2 sind meine Buttons

er setzt damit die Buttons immer auf true die einmal vorkommen, sprich wenn f_0 einmal den wert true hat dann ist er weiterhin auch true und wird nicht zurück gesetzt.
Kiregt zum Beispiel f_2 im 2 durchlauf einen true bleibt dies auch bestehen und nun ist es egal ob ich Button f_0 oder f_2 drücke es liefert mir immer ein true zuück.

Ich habe schon versucht diesen wert nach jeder auswertung wieder zurück zusetzen, aber es klappt nicht.

Denn wenn die Buttons einen true zurück geben führt er die Funktion pruf(); aus (//Antworten prüfen)

weis denn jemand wie man nach erstellen der antworten die buttons nach einer falschen antwort wieder auf false zurück setzen kann so dass diese buttons nicht mehr true liefern ?
joker1983 ist offline   Mit Zitat antworten
Alt 26-03-2004, 12:49   #9 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
hi joker,

überarbeite mal antworten (für alles Buttons bei denen der Vergleich nicht zutrifft okay = false setzen):
ActionScript:
  1. movieclip.prototype.antworten = function (akt, los) {
  2.         for (i=0; i<ARes[akt].length; i++) {
  3.                
  4.                
  5.                 this["f_"+i].ausgabe = ARes[akt][i];
  6.                 if (ARes[akt][i] == LRes[los]) {
  7.                         this["f_"+i].okay = true;
  8.                 }else{
  9. this["f_"+i].okay = false; // <---------------------------
  10. }
  11.         }
  12. }
gruß,
roman
romän ist offline   Mit Zitat antworten
Alt 26-03-2004, 13:42   #10 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 120
das hatte ich auch gemacht...funktionierte nicht, unglaublich jetzt habe ich das einfach mal rauskopiert und sie da es geht =)

Habe mich wohl vertippt oder so.....naja wow vielen dank trotzdem

jetzt ist die welt wieder schön =)
joker1983 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:05 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele