Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-12-2003, 18:53   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Ort: Graz
Beiträge: 36
attachte MovieClips werden nicht richtig removed

Hallo liebe Kollegen!

Ich habe hier ein Problem - wohl ein Denkfehler o.ä. - und ich komme nicht dahinter, was ich falsch mache.

Die Situation:
Ich hänge mit attachMovie() mehrere Instanzen eines MC aus meiner Bibliothek an _root. Dann erzeuge ich mit createTextField() ein Textfeld, angehängt an die jeweilige MC Instanz, um dort Text auszugeben.

Die Anzahl der MC ist abhängig vom Input, wenn eine bestimmte Menge überschritten wird, wird "umgeblättert" auf die nächste "Seite" und nur die neuen Einträge angezeigt.

Mein Problem ist nun, daß sich anscheinend die alten MCs ohne Textfelder nicht löschen lassen, jedenfalls werden sie immer mit erzeugt obwohl ich sie eigentlich entfernen lasse.

Ein Beispiel:
Eine Seite kann max. 9 Einträge umfassen, dann wird eine neue Seite erzeugt. Folgendes sollte passieren: wenn nun Eintrag #10 vorhanden ist, dann werden die alten 9 Einträge und die MCs gelöscht und Seite 2 nun aktualisiert mit nur 1 Eintrag dargstellt.
Zumindest theoretisch. Praktisch werden nur die Textfelder entfernt, die MCs bleiben aber bestehen...

Ich habe auch einen Screenshot angehängt, falls jemand keine Lust hat, den Simulator auszuprobieren.

Mein bisheriges Werk kann man hier sehen.
Es handelt sich um eine Simulation einer Brainstorming Sitzung, bei welcher der User den Moderator spielt und lernen soll, wie man dies richtig macht.
Zum Starten auf den schwarzen Kreis klicken - bis das Problem auftritt kann es dauern - es werden nämlich die Ideen der Figuren mitgeloggt und die haben nur welche, wenn man sie gut moderiert -> 5 Moderationsbuttons oben links.
Die NPCs sind nummeriert von 0 (g. links) bis 5 (g. rechts).
Ihre Intention kann man dem entspr. Debugausgabefeldern entnehmen
Zuerst muß man den mit der Intention "Boss" ermahnen (NPC selektieren und dann auf den Boss-Button klicken, sonst kriechen ihm alle nur hinten rein), dann die "Critics" ermahnen, sonst kippt die Stimmung und sie beschimpfen sich nur.

Wenn nun genügend Ideen kommen, werden diese in das Logbuch rechts eingetragen und das ist eben auch mein Problem, sobald mehr als eine Seite besteht.


Hier nun der entsprechende Code:
ActionScript:
  1. function logbuchEintrag(eintrag) {
  2.     _global.ideaLogArray.push(eintrag);
  3.    
  4.     var seitenAnzahl = Math.ceil(_global.ideaLogArray.length / 9);
  5.     _global.aktuelleSeite = seitenAnzahl;
  6.     _root.gesamtSeite_txt.text = seitenAnzahl;
  7.     _root.aktuelleSeite_txt.text = _global.aktuelleSeite;
  8.     anzeigeLogbuch();
  9. }
  10.  
  11. function anzeigeLogbuch() {
  12. // zuerst werden hier alle vorhandenen MCs und TXTs gelöscht
  13.     for (var i = 0; i < 9; i++) {
  14.         _root["mc_logEintrag" + i]["txt_logEintrag" + i].removeTextField();
  15.         _root.removeMovieClip("mc_logEintrag" + i);
  16.     }
  17. // und hier anhand der Einträge im ideaLogArray wieder erzeugt  
  18.     for (var i = _global.aktuelleSeite * 9 - 9; i < _global.aktuelleSeite * 9 && i < _global.ideaLogArray.length; i++) {
  19.         var n = i - 9 * (_global.aktuelleSeite - 1);
  20.        
  21.         _root.attachMovie("gf_BSS-Log-Eintrag", "mc_logEintrag" + n, 10 + n);
  22. // durch die Rechnerei werden die MCs automatisch 3 x 3 positioniert
  23.         _root["mc_logEintrag" + n]._x = 524 + 86 * (n - Math.floor(n / 3) * 3);
  24.         _root["mc_logEintrag" + n]._y = 20 + 73 * Math.floor(n / 3);
  25.         _root["mc_logEintrag" + n]._alpha = 33;
  26.         _root["mc_logEintrag" + n].createTextField("txt_logEintrag" + n, 20 + n, 3, 3, 75, 62);
  27.         with(_root["mc_logEintrag" + n]["txt_logEintrag" + n]) {
  28.             selectable = false;
  29.             wordWrap = true;
  30.             text = _global.ideaLogArray[i];
  31.             setTextFormat(_root.logbuchStyle);
  32.  
  33.         }
  34.     }
  35.  
  36. }

Ich hoffe ich konnte das verständlich erläutern, mir ist erst beim Schreiben klar geworden, wie schwierig das Problem zu formulieren ist.

Vielen Dank an alle, die sich das bis hierher angetan haben
__________________
Robert Niessner
LAUFBILDkommission
rniessner ist offline   Mit Zitat antworten
Alt 10-12-2003, 18:55   #2 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Ort: Graz
Beiträge: 36
Hier nochmals der Versuch, den gezippten Screenshot anzuhängen.
Angehängte Dateien
Dateityp: zip as_probleme-mit-der-anzeige.zip (46,3 KB, 2x aufgerufen)
__________________
Robert Niessner
LAUFBILDkommission
rniessner ist offline   Mit Zitat antworten
Alt 11-12-2003, 21:07   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Ort: Graz
Beiträge: 36
Hat niemand eine Idee?
Meine Deadline rückt immer näher und ich kann den Fehler einfach nicht finden
__________________
Robert Niessner
LAUFBILDkommission
rniessner ist offline   Mit Zitat antworten
Alt 15-12-2003, 10:21   #4 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Ort: Graz
Beiträge: 36
bump
__________________
Robert Niessner
LAUFBILDkommission
rniessner ist offline   Mit Zitat antworten
Alt 15-12-2003, 11:21   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Ort: Graz
Beiträge: 36
OK, ich habe den Fehler gefunden, sowas blödes aber auch - man sollte Bücher halt genauer lesen

statt:
ActionScript:
  1. _root.removeMovieClip("mc_logEintrag" + i);

muß man schreiben:
ActionScript:
  1. _root["mc_logEintrag" + i].removeMovieClip();

ich habe in der Definition removeMovieClip(target) das "target" fehlinterpretiert.

Manchmal ist man wirklich blind...
__________________
Robert Niessner
LAUFBILDkommission
rniessner 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 14:40 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele