in extene swf externe Bilder laden

schirly

Mitglied
Hallo zusammen! :)
Ich brauche Eure Hilfe. Wer weiss wie kann man in einen externen swf, der ich in meine
Haupt swf lade, per loadMovie noch externe Bilde laden, (mit preloader).
zB Ich hab in externe swf kleine Bilder und wenn ich drauf auf einen Bild klicke, soll ein Grosses Bild mit einenPreloader geladen.
in erste frame steht:
Code:
_root.createEmptyMovieClip("mccontainer5", 1);
_root["mccontainer5"]._x = 0;
_root["mccontainer5"]._y = 0;
_root.createEmptyMovieClip("loadercontainer", 10);
_root["loadercontainer"]._x = 0;
_root["loadercontainer"]._y = 0;

und auf schaltfläche steht:
Code:
on (release) {
	_root.loadercontainer.loadMovie("preloader.swf");
	_root.mccontainer6.loadMovie("fs_01.swf");
}
------------------------------------------------------
Ich benutze einen externen Preloader:
in1 frame steht:
Code:
bytes_gesamt = _root.mccontainer5.getBytesTotal();
bytes_geladen = _root.mccontainer5.getBytesLoaded();
prozent = Math.round((bytes_geladen/bytes_gesamt)*100);
balken.gotoAndStop(prozent);
if (prozent == "100") {
	gotoAndPlay(3);
}

in 2 Frame steht:
Code:
gotoAndPlay(1);
in 3 steht:
Code:
_root.mccontainer5.gotoAndPlay(2);
unloadMovie(_root.loadercontainer(this));

Danke
 
Hi und willkommen im Forum,

Deine Beschreibung reicht nicht aus, um Dein Problem zu lösen - es wird nicht klar, in welcher Datei sich in welcher Form kleine Bilder befinden, wie diese angelegt sind und geladen werden, und wo und wie Du das große Bild anzeigen willst.

Die von Dir geposteten Codeausschnitte zeigen nur, dass eine externe Datei in einen Container geladen wird, wobei dieser Ladefortschritt von einem Preloader überwacht wird, der ebenfalls in einen Container geladen wird (eine Vorgehensweise, die ich Dir übrigens nicht empfehlen würde, da sie zu unvorhergesehenen Problemen führen kann: Wie verhältst Du Dich z.B. in dem Fall, dass der Preloader nach der anderen Datei zur Verfügung steht?).

Um Dir weiterzuhelfen, würde ich Dich bitten, alle verwendeten Dateien (und zwar die Quelldateien "fla", nicht die kompilierten SWFs) als Anhang zu posten und noch einmal genau zu erklären, was bei welcher Aktion wohin geladen werden soll.

Gruß

P.S.: Bitte verwende beim Posten von Code die CODE- oder ACTIONSCRIPT-bbCodes. Deinen Beitrag habe ich entsprechend editiert.
.
 
Hallo Tobias:),
Danke für Antwort Anbei meine test.fla Ich hätte gerne, wenn ich eine externe Datei
mit kleinen Bildern lade, und auf Bild anklicke soll dann in diese Datei noch externe grosse Bild geladen werden und das mit preloader natürlich.
Danke dir für deine hilfe.
 

Anhänge

  • kollektion_hw.fla
    146 KB · Aufrufe: 51
  • test1.zip
    76,5 KB · Aufrufe: 21
Hi,

genau das passiert doch schon, wenn Du auf eines der kleinen Bilder klickst: Es wird in den Hauptcontainer das entsprechende große Bild geladen und auch noch einmal der Preloader, der den Ladefortschritt anzeigt. Dafür musst Du allerdings folgenden Codeauschnitt in den Collection-Dateien löschen:
Code:
_root.createEmptyMovieClip("mccontainer5", 5);
_root["mccontainer5"]._x = 0;
_root["mccontainer5"]._y = 0;
_root.createEmptyMovieClip("loadercontainer", 10);
_root["loadercontainer"]._x = 200;
_root["loadercontainer"]._y = 200;
Damit überschreibst Du nämlich auch den Container, in dem sich die aktuell geladene Datei befindet.

Ich halte es zwar für unnsinnig, den Preloader bei jedem neu zu ladenden Inhalt ebenfalls als externe Datei einzuladen, aber wenn Du es so haben willst, funktioniert es auch.

Beachte, dass das Vorladen der Dateien "kollektion_hw.swf" und "kollektion_fs.swf" nicht funktionieren kann, da beide Dateien kleiner als der Preloader sind. ;)

Gruß
.
 
Hallo Tobias!
Danke dir.
Ich habe zwar, wie du geschrieben, diese Script gelöscht, aber passiert das gleiche wie früher. Wenn ich auf klein Bild anklicke wird grosses Bild geladen, aber kleine Bilder werden nich mehr zusehen seien. Wie kann man doch so machen das kleine Bilder bleiben?

Danke dir noch Mal.
 
Hi,

ich hatte nicht gewusst, dass die Collections sichtbar bleiben sollen.

Dann nimm den Codeblock in dem ersten Frame der "kollektion_fs.fla" (und in der anderen) wieder rein, z.B. so:
Code:
this.createEmptyMovieClip("kleineBilder", 5);
this["kleineBilder"]._x = 0; // wo auch immer Du sie hinhaben willst
this["kleineBilder"]._y = 0;
this.createEmptyMovieClip("loadercontainer", 10);
this["loadercontainer"]._x = 0; 
this["loadercontainer"]._y = 0;
und sage auf der Schaltfläche mit dem Bild:
Code:
on (release) {
	this.loadercontainer.loadMovie("preloader.swf");
	this.kleineBilder.loadMovie("fs_01.swf");
}

Gruß
.
 
Hallo Tobias,
Ich habe noch eine Frage. Habe aus kleine Bilder eine Gallerie gemacht und weiss nicht wo hier dein script stehen soll, das grosse Bild ist leider nicht zusehen.
noch Mal Danke.
 

Anhänge

  • kollektion_fs.zip
    68,4 KB · Aufrufe: 16
Hi,

auf die Hauptzeitleiste kommt der selbe Code, wie bei der alten Kollektion, und auf den Bildern (ui, Du hast die wirklich recht tief verschachtelt) dann dieser:
Code:
on (release) {
	_parent._parent._parent.loadercontainer.loadMovie("preloader.swf");
	_parent._parent._parent.kleineBilder.loadMovie("fs_04.swf");
}

Zwei Anmerkungen:
  • Du solltest Dir das korrekte Adressieren in Flash aneignen. Mit dem Bezeichner "_root "kommst Du auf die Hauptzeitleiste (bei eingeladenen Filmen auf die des Hauptfilms), mit "this" sprichst Du das aktuelle Objekt an (aber nur, wenn es sich um einen MovieClip handelt!), mit "_parent" kommst Du auf die nächst höher gelegene Zeitleiste. Wie viele _parent man braucht, um einen bestimmten Ort zu adressieren, kann man notfalls durch ausprobieren (oder Zählen der Verschachtelungen) selbst leicht herausfinden. ;)

  • Ich empfehle Dir, nicht mit Objekten vom Typ "Grafik" (und auch nicht mit Schaltflächen) zu arbeiten, da deren eingeschränkte Funktionalität grade für Anfänger verwirrend sein kann. Alle Grafiken kannst Du problemlos durch MovieClips ersetzen.

    Ein Beispiel für nicht konsistentes Verhalten bei MovieClips und Schaltflächen ist folgendes:
Code:
// Code auf einer Schaltflächen-Instanz:

on(release) {
    trace(this); // Du bekommst nicht die Schaltfläche, sondern die übergeordnete Zeitleiste ausgegeben
}
Code:
// Code auf einer MovieClip-Instanz:

on(release) {
    trace(this); // Du bekommst den Pfad zu dem MovieClip ausgegeben, auf dem der Code steht
}
Von daher braucht man bei Schaltflächen immer ein "_parent" weniger ... ;)

Gruß
.
 

Neue Beiträge

Zurück