Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-07-2006, 17:12   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 35
Movieclips nach loadMovie ansprechen

Hi,
ich habe einen Startfilm, indem ich aus einer csv-Datei heraus Namen lade.
Die csv-Datei sieht wie folgt aus:
ABC;Suchmaschine

Wenn ich nun im Startfilm einen leeren Movieclip anlege und diesem den Instanznamen "ABC" gebe, dann erscheint der Text im Movieclip. Das habe ich mit createTextField erledigt und klappt auch wunderbar.
Wenn ich nun allerdings einen einen Film mit loadMovieNum("suchen.swf",1); lade, und dort einem leeren Movieclip den Instanznamen "ABC" gebe, dann erscheint der Text nicht. Woran liegt das?

Hinweis: Diesen Film entlade ich wieder mit "unloadMovieNum(1)" damit ich wieder zum Startfilm gelange...
mhzip ist offline   Mit Zitat antworten
Alt 17-07-2006, 17:34   #2 (permalink)
mushroom powered
 
Benutzerbild von b.asile
 
Registriert seit: Jun 2005
Ort: Amsterdam
Beiträge: 2.649
Hast du auch sichergestellt das der MovieClip geladen ist.
Also als Instanz in deinem Film existiert?
Es wird wahrscheinlich an deinen verwendeten Pfaden liegen, da ist wahrscheinlich ein (denk)Fehler drin.

Ausserdem solltest du loadMovie verwenden denn loadMovieNum ist veraltet.

Dein Pfad müsste z.B. lauten:

PHP-Code:
_root."geladener mc".textfeld.text BlaBla;

_root.lade_mc.text123.text BlaBla
Durchblickt?
__________________
[ WHEN THE GOING GETS WEIRD THE WEIRD TURN PRO ]

devboy.org
b.asile ist offline   Mit Zitat antworten
Alt 17-07-2006, 22:41   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 35
Ich habe mal die einzelnen Flash-Sourcen nun hochgeladen.
Leider kriege ich das immer noch nicht hin!
Also wie gesagt - ich lade eine csv-Datei und hole mir aus diesen Textbeschreibungen. Diese lade ich in einen Movieclip. Das klappt alles wunderbar. Wenn ich nun allerdings einen anderen Film dazulade, indem ebenfalls diese Movieclips erscheinen sollen, funktioniert das Ganze nicht mehr.
Wahrscheinlich ist der Pafd nun falsch, aber ich habe schon einiges ausporbiert - bekomme es aber einfach nicht hin ;(
Angehängte Dateien
Dateityp: zip movieclip_csv.zip (28,0 KB, 10x aufgerufen)
mhzip ist offline   Mit Zitat antworten
Alt 18-07-2006, 00:57   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Mit loadMovieNum erstellst du dir einen neuen (überflüssigen) Level, hier z.B. den Level 1. D.h. alles, was du in diesen Level lädst, kannt du auch nur noch über den _level1 als Objektpfad erreichen. Ersetz mal die loadMovieNums durch loadMovies in irgendwelche MCs.

Und wenn du weitere Hilfe benötigst, solltest du zumindest irgendwo den Ablauf deiner Filme dokumentieren...
  Mit Zitat antworten
Alt 18-07-2006, 07:56   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 35
wenn ich aber loadmovie mache in einen mc und nicht loadmovienum, dann erscheinen in dem neuen aufgerufenen film noch alte buttons im hintergrund aus dem anderen mc und das ist ja nicht gewollt. wie kann ich das verhindern? schaut etc am besten das zip an - dann ist es gut zu verstehen, was ich meine.
ich habe jetzt einen leeren mc mit namen "film" erzeugt und diesen auf 0,0 positioniert. dann lade ich mit _root.film.loadmovie("auswahl"); den anderen film. das klappt ja, abner im hintergrund sind noch die alten buttons, effekte, etc. zu sehen, was nicht gewünscht ist.
mhzip ist offline   Mit Zitat antworten
Alt 18-07-2006, 13:29   #6 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
wie kann ich das verhindern?
MCs kann man mit removeMovieClip löschen. Wenn das Bühnen-MCs sind, solltest du die vorher aber mit swapDepths auf eine Tiefe ab 0 schieben.
  Mit Zitat antworten
Alt 18-07-2006, 17:50   #7 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 35
wenn ich aber den movieclip im hintergrund komplett lösche, dann sind die ganzen variablen doch nicht mehr gefüllt, oder?
die lade ich ja alle in dem movieclip - von daher wird das sicherlich nicht so einfach gehen.
Außerdem möchte ich ja immer wieder zum Startfilm zurück und daher nicht jedesmal diesen neu laden...
Kann sich nicht jemand nochmal mein file anschauen. Wäre echt total klasse, da ich am verzweifeln bin -
ich probiere den ganzen Tag herum, aber irgendwie will das einfach nicht klappen und für nen Profi ist das sicherlich nur ne kurze Sache (hoffe ich).
mhzip ist offline   Mit Zitat antworten
Alt 18-07-2006, 21:54   #8 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Ich hab mir dein File schon angeschaut, dein Problem aber wahrscheinlich noch immer nicht verstanden...

Wenn du einen Film in einen MC nachladen willst und der soll andere MCs/Buttons überdecken, musst du entweder alle MCs /Buttons removen oder sie von vornherein in einen Container-MC laden, den du dann bei Bedarf removen kannst.

Was hat das aber mit "gefüllten" Variablen zu tun? In Flash kannst du Variablen global erstellen, dann gelten die für alle Zeitleisten, oder du erstellst Variablen für die Hauptzeitleiste, bzw. Level 0 (mit _level0 oder _root). Du kannst aber auch lokale Variablen (mit var) erstellen. Wenn du Variablen an einen MC gebunden hast, den MC löschen willst, nicht aber die Variable, dann nimm eine globale Variable oder eine Zeitleistenvariable...

Geändert von agedoubleju (18-07-2006 um 21:55 Uhr)
  Mit Zitat antworten
Alt 18-07-2006, 23:04   #9 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 35
Das will alles irgendwie nicht klappen!
Also hier mein Source, womit ich das csv auslese und die Movieclips mit einem Textbereich fülle:
PHP-Code:
// DATEN EINLESEN
/***  Variablen deklarieren  ***/
var kuerzel_arr = [];
var 
name_arr = [];
var 
loader = new LoadVars();
/*** csv-Datei laden  ***/
loader.load("namen.csv");
/*** Funktionen  ***/
// Daten mit onData laden
loader.onData = function(dat) {
    
// split mit \r\n \n  für WINDOWS-Systeme
    
var input_arr dat.split('\r\n');
    
// split mit \n  für LINUX-Systeme
    
if (input_arr.length == 1) {
        
input_arr dat.split('\n');
    }
    
// Daten einlesen      
    
name_arr input_arr[0].split(';');
    for (var 
1i<input_arr.lengthi++) {
        var 
fields_arr input_arr[i].split(';');
        
kuerzel_arr.push({});
        for (var 
0j<fields_arr.lengthj++) {
            
kuerzel_arr[i-1][name_arr[j]] = fields_arr[j];
        }
        
variable1 fields_arr[0];
        
variable2 fields_arr[1];
        
_root[variable1].createTextField(variable1+"_txt"1006010);
        
_root[variable1][variable1+"_txt"].backgroundColor 0x3366cc;
        
_root[variable1][variable1+"_txt"].background false;
        
_root[variable1][variable1+"_txt"].setNewTextFormat(new TextFormat("Verdana"90x3366cc));
        
_root[variable1][variable1+'_txt'].text variable2;
        
_root[variable1][variable1+'_txt'].autoSize true;
        
_root[variable1][variable1+'_txt'].textHeight _root[variable1][variable1+'_txt']._height+10;

        
// Button-Effekte (RollOver)
        
_root[variable1].onRollOver = function() {
            
this[this._name+"_txt"].textColor 0xffffff;
            
this[this._name+"_txt"].background true;
        };
        
        
// Button-Effekte (RollOver)
        
_root[variable1].onRollOut _root[variable1].onDragOut=function () {
            
this[this._name+"_txt"].textColor 0x3366cc;
            
this[this._name+"_txt"].background false;
        };
    }
    
loadNextRecord();
};

function 
loadNextRecord() {
    for (var 
0i<name_arr.lengthi++) {
        
this[name_arr[i]].text kuerzel_arr[irecord][name_arr[i]];
        
_root.button_mc.home_txt.text this[name_arr[i]].text;
    }
}

stop(); 
Danach habe ich auf der Bühne eine Movieclip, dem ich den Instanznamen "ABC" gebe und der dann autoamtisch den Text anzeigt, der in der csv-Datei neben "ABC" stand.
Wenn ich nun mit loadmovie einen neuen Film lade (oder mit loadMovieNum) und dort einen Movieclip mit "ABC" erzeuge, erscheint da nichts. Woran liegt das? Das ist genau mein Problem
mhzip ist offline   Mit Zitat antworten
Alt 19-07-2006, 01:15   #10 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
loader.onData
Wieso nicht eine onLoad-Funktion festsetzen? Und wenn du einen Response erwartest, würde ein sendAndLoad auch mehr Sinn machen, also:
PHP-Code:
function geladen(erfolgreich) {
        if(
erfolgreich) {
             
trace("empfangene Variable: "+this.dat);
        }
        else {
                
trace("Fehler beim Laden");
        }
}
loader = new LoadVars();//Instanz erstellen
loader.onLoad geladen;//Callback setzen
loader.sendAndLoad("namen.csv",loader,"POST"); 
Was steht dann bspw. in this.dat?

Was steht bspw. in variable1 = fields_arr[0]; ? Vor allem, was soll das bringen, ohne einen MC anzulegen? Du überschreibst ja sonst alle Textfeldinstanzen in der Schleife...


Zitat:
Wenn ich nun mit loadmovie einen neuen Film lade (oder mit loadMovieNum) und dort einen Movieclip mit "ABC" erzeuge, erscheint da nichts.
Wo steht der loadMovie? Wo erzeugst du einen MovieClip?
  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 19:18 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele