Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-06-2008, 13:20   #1 (permalink)
Nixnutz
 
Registriert seit: Sep 2004
Beiträge: 53
Nur ein MC auf der Bühne (trotz schleife)

hallo,

hab mir den tip mit loadClip statt loadMovie zu Herzen genommen. Code:

ActionScript:
  1. stop();
  2.  
  3. var cp:MovieClip = createEmptyMovieClip("container",1);
  4. cp._x = 300;
  5. cp._y = 81.5;
  6.  
  7. var loadListener:Object = new Object();
  8. var mcLoader:MovieClipLoader = new MovieClipLoader();
  9. mcLoader.addListener(loadListener);
  10.  
  11. var XMLdaten = new XML();
  12. XMLdaten.ignoreWhite=true;
  13. XMLdaten.load("bilder.xml");
  14.  
  15. XMLdaten.onLoad = function(success) {
  16.  
  17.     XMLdaten_namen = [];
  18.     XMLdaten_file = [];
  19.     //bild=[];
  20.    
  21.     if (success) {
  22.         for (var i=0; i<XMLdaten.firstChild.childNodes.length; i++) {
  23.             XMLdaten_name[i] = XMLdaten.firstChild.childNodes[i].attributes.dateiname;
  24.             XMLdaten_file[i] = XMLdaten.firstChild.childNodes[i].attributes.file;
  25.             //trace ("Größe der XML: "+ XMLdaten.firstChild.childNodes.length + " Plätze");
  26.             //trace ("i ist gleich: " + i);
  27.             trace ("Pfad des aktuellen Bildes: " + XMLdaten_file[i]);
  28.            
  29.             mcLoader.loadClip(XMLdaten_file[i], container);
  30.            
  31.             loadListener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
  32.                 var prozent = int(bytesLoaded*100/bytesTotal);
  33.           _root.meineTextfeldinstanz.text = ""+prozent+" %";
  34.             }
  35.            
  36.             loadListener.onLoadInit = function(mc:MovieClip) {
  37.                 trace("fertig, beladen wurde "+mc);
  38.             } 
  39.         }
  40.         trace ("Ende Schleife.");
  41.         gotoAndPlay(2);
  42.     }
  43. }

Folgendes Problem existiert nun:
Im Debugger wird nur noch ein MC angezeigt, ich weiß auch warum - weil der Container ja stets mit dem aktuellen Schleifendurchlaufwert überschrieben und hat am Ende also das zuletzt geladene Bild drin. Wie krieg ichs nun hin, dass der mehrere MCs hinbastelt, wo jeweils ein Bild reingeladen wird? Wäre hier auch ein Array sinnvoll?

Zusätzlich zeigt die Ausgabe folgendes an:
Zitat:
Pfad des aktuellen Bildes: images/gemuese-obst.jpg
[noch mehr Pfade]
Pfad des aktuellen Bildes: images/kl-gemuesekorb.jpg
Ende Schleife.
fertig, beladen wurde _level0.container
Heißt also: der hüpft nach Ende der Schleife noch in eine Funktion innerhalb der Schleife - wieso?

Mein Kopf raucht schon
Für jede Hilfe wäre ich sehr dankbar.

lg
jun-jun ist offline   Mit Zitat antworten
Alt 09-06-2008, 16:08   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
var cp:MovieClip = createEmptyMovieClip("container",1);
..
mcLoader.loadClip(XMLdaten_file[i], container);

du erzeugst nur einen einzigen mc == container und in den lädst du alles rein. logisch, das jeder vorgänger überschrieben wird.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 10-06-2008, 14:35   #3 (permalink)
Nixnutz
 
Registriert seit: Sep 2004
Beiträge: 53
Zitat:
Zitat von jun-jun Beitrag anzeigen
Folgendes Problem existiert nun:
Im Debugger wird nur noch ein MC angezeigt, ich weiß auch warum - weil der Container ja stets mit dem aktuellen Schleifendurchlaufwert überschrieben und hat am Ende also das zuletzt geladene Bild drin. Wie krieg ichs nun hin, dass der mehrere MCs hinbastelt, wo jeweils ein Bild reingeladen wird?
Jaha, das habe ich schon erkannt =)

Ich habs inzwischen hinbekommen, dafür aber gleich das nächste Problem.
Meine Thumbs werden von PHP generiert, da muss ich nun nicht mit duplicateMovieClip hantieren... jedoch bekomm ich die MCs mit den Thumbs nicht angesprochen, dass die verlinkt werden.

ActionScript:
  1. _root.thumbs.thumb0.onRelease = function() {
  2.     trace("Thumb 0 gedrückt.");
  3.     _root.big.bild0._alpha = 100;
  4. }

Passiert nüscht. Bei austausch von _root mit _level0 auch nich. Doofes Dingens.

Btw, da liegen in Bild1 auf der Hauptzeitleiste 2 MCs, einer für die Thumbs (thumbs), einer für die großen Bilder (big). Und in diesen werden die einzelnen MCs nun für die einzelnen Bilder erstellt. Wird beides prima geladen, nur halt die Verlinkung will nich.

Muss ich die in einen der verschachtelten MCs hauen oder auf die Hauptzeitleiste oder wohin?

Kopfrauchende Grüße
Bine
jun-jun ist offline   Mit Zitat antworten
Alt 11-06-2008, 02:49   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
ein leeres mc als container erzeugen
da ein swf reinladen
das laden dauert etwas (und der programmablauf geht inzwischen weiter)
wenn das swf geladen wurde, dann ersetzt es den container.


wenn du vorher deinem container z.b. ein onRelease zugeordnet hast, das wird beim ersetzen mit ersetzt. d.h. das gibt es nachher nicht mehr.
du musst warten, bis das swf gelanden wurde, dann erst kannst du ihm etwas zuordnen. also z.b. in onLoadInit


eine oft verwendete variante:
ein leeres mc erstellen, das kann man skalieren, events zuordnen usw.
in dieses mc ein weiteres mc als container erzeugen
in dass das swf reinladen.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (11-06-2008 um 02:59 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 12-06-2008, 09:39   #5 (permalink)
Nixnutz
 
Registriert seit: Sep 2004
Beiträge: 53
Ha, tausend dank,

das war genau der Tipp, den ich brauchte... MC weg, sobald Bild reingeladen... lalala

Ich bin jetzt soweit, dass ich meine Minivorschaubilder habe, draufklicken kann und das jeweils große dazu erscheint.

Nu fehlt nur noch der Einflieg-Effekt *freudig ins nächste Kapitel stürz* ... "nur" ^^
jun-jun ist offline   Mit Zitat antworten
Alt 16-06-2008, 15:47   #6 (permalink)
Nixnutz
 
Registriert seit: Sep 2004
Beiträge: 53
Huhu,

eine kurze Rückmeldung, weil mir immer so nett weitergeholfen wurde
Die Galerie ist soweit fertig, es fehlt nur noch ein Preloader

Vielen lieben Dank nochmal
*ins getümmel stürz*
jun-jun 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 02:07 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele