Von extern mehrere Bilder(jpg) in Flash laden

helene1

Mitglied
Hallo,
ich möchte folgendes erreichen:

-ich habe einen Flashfilm mit 100 Bildern
-am linken Rand meines Films sind Button1-10, Beim drücken eines Buttons spring der Film also je nachdem auf Bild20, Bild80 oder auch zurück usw. Und bleibt dort stehen um jeweilige Inhalte anzuzeigen.
-Ich möchte unter jedem Bild 10, 20, 30 usw jeweils drei jpg Bilder von extern laden und anzeigen lassen.
-(die 9Bilder zwischen 10 und 20 usw könnte man auch löschen)

Mit unten stehendem Script geht es aber nur ein Bild einzuladen obwohl ich mir 3 Ebenen erzeugt habe und das Script kopiert habe(mit geänderter Bildbezeichnung usw) , er läd aber nur eines.

Wie bekomme ich das hin, dass alles endlich funktioniert?


Bild 1 2 3 4 5 ... 10 .... 20
Ebene1(bild1) home1.jpg about1.jpg
Ebene2(bild2) home2.jpg about2.jpg
Ebene3(bild3) home3.jpg about2.jpg

Je nachdem ob auf home_btn oder about_btn usw gedrückt wird, sollen die jeweiligen 3 bilder erscheinen.
Oder besser gesagt ich bekomme auf jeder seite EIN gewünschtes bild die anderen 2 erscheinen nicht mehr.


PHP:
stop();
_root.createEmptyMovieClip("bild3", 0);
_root.bild3.loadMovie("about3.jpg", 0);

bild3._y = 110;
bild3._x = 800;

_root.bild3._alpha = 0;
this.onEnterFrame = function() {
	gesamt = _root.bild3.getBytesTotal();
	geladen = _root.bild3.getBytesLoaded();
	preloader._visible = true;
        anz._visible = true
	if (geladen != gesamt) {
		_root.anz.text = Math.round(100*geladen/gesamt)+"%";
		//dynamisches Textfeld mit Instanznamen "anz" muss natürlich erstellt sein ^^
		preloader._xscale = 100*geladen/gesamt;
	} else {
		//hier müsste dann dein Script für die Größenänderung hin *gähn* man is schon spät
                anz._visible = false
		preloader._visible = false;
		if (_root.bild3._alpha<100 && geladen == gesamt) {
			_root.bild3._alpha += 2;  //war 10 jc
			//je höher der Wert desto schneller "faded" das Bild ein, also je niedriger desto langsamer
		}
	}
};


Ist das Problem evtl. dass ich 3 parallele ActionScripts habe und in jedem kommt der begriff "this" und "_root" vor
Wie löse ich dieses Problem? BITTE UM HILFE. (ich hab das ganze auch in ein weiteres Forum geschrieben, aber auch noch keine Antwort erhalten).

gruß
helene
 
Zuletzt bearbeitet:
hallo,

ich würde eher sagen, dass das Problem darin liegt, dass du deine 3 MovieClips in die selbe Tiefenebene lädst. Und diese Ebene hat nicht mit der Ebene in Flash selbst zu tun.
Versuch mal die Levels deiner loadMovie Aktion so zu machen, dass diese nicht gleich sind.
Also ungefähr so:

PHP:
_root.createEmptyMovieClip("bild3", diese Zahl erhöhen);
_root.bild3.loadMovie("about3.jpg", diese Zahl erhöhen);

dann hast du auf jeder Ebene das selbe Script und erhöst einfach deine Tiefenebene um 1.
Ebene 1:
PHP:
_root.createEmptyMovieClip("bild3", 0);
_root.bild3.loadMovie("about3.jpg", 0);

Ebene 2:
PHP:
_root.createEmptyMovieClip("bild3", 1);
_root.bild3.loadMovie("about3.jpg", 1);
usw.
Deine MovieClip, den du erstellst sollte dann natürlich auch angepasst werden. Also "bildX"...

gruß inctube
 
vielen dank für die recht einfach und logisch klingende antwort, allerdings wird dennoch immer nur ein bild angezeigt ich weis wirklich nicht mehr weiter, mir erscheint das sehr unlogisch.

3Ebenen:
EbeneBildlinks
EbeneBildmitte
EbeneBildrechts

Es wird immer nur das Bild angezeigt das in der Untersten Ebene steht!
Schiebe ich zB "EbeneBildlinks" unter "EbeneBildrechts" wird Bildlinks angezeigt usw.

Wenn ich folgende Zeile:
_root.bild4._alpha = 0;
obwohl ich nur Bild1-3 habe, ins leere laufen lasse, werden alle 3 Bilder angezeigt aber gehen nimmer weg!?

Vermutlich darf man nicht alles mit _root bezeichenen.

gruß helene
 
Zuletzt bearbeitet:
Du erstellst einen MovieClip mit dem Namen "bildX". Wenn du jetzt diesen MovieClip ansprechen willst, dann musst du überall wo dieser Bezeichner vorkommt diesen auch durch den richtigen Namen ersetzen.
Dein ganzer Code ist für ein bestimmtes Bild ausgelegt. Mit einer For-Schleife könntest du alle Bilder ansprechen und könntest dir so deine 3 Zeitleistenebenen sparen. Du hättest einmal deinen Code.
Als Besipiel:
PHP:
for (var i:Number= 0; i<anzahl; i++) {
        this.createEmptyMovieClip("cl"+i,i)
	var clip:Movieclip = cl.attachMovie("bild", "bild"+i, i+1);
}
Dieser Code erzeugt dir einen MovieClip und attached einen MovieClip aus der Library (muss verküpft sein) auf die Bühne, und zwar bei jedem Schelifendurchlauf. D.h. wenn du als "anzahl" 3 eingibst, macht er dir 3 MovieClips.

Gruß inctube
 
hi, wirklich vielen dank für deine hilfe ich dachte eigentlich das ich wüsste was du meinst, aber ich habe lange herumprobiert und krieg es leider wirklich nicht hin, könntest du BITTE ne .fla anhängen?

gruß
helene
 
hallo,
wie lade ich in deinem Bsp. die Bilder in die 3 Filme? Hab ich dann dieses "virtuelle Ebenenproblem 0, 1, 2 usw nicht mehr (da hatte es ja immer nur 1Bild angezeigt!?

Ich dachte es müsste so gehen: (wenn ich zB 3Bilder ability1.jpg - ability3.jpg anzeigen lassen möchte.? ich krieg aber ne Fehlermeldung, wie schreibe ich die Zeile richtig
PHP:
for (var i:Number= 0; i<3; i++) { 
        this.createEmptyMovieClip("cl"+i,i);
		this."cl"+i.loadMovie("ability"+i+".jpg",i);
    var clip:MovieClip = cl.attachMovie("bild", "bild"+i, i+1); 
}



Das hier ist die Fehlermeldung:

**Fehler** Szene=Szene 1, Ebene=Ebene 32, Bild=68:Zeile 3: Nach '.'-Operator wurde ein Feld erwartet.
this.("cl"+i).loadMovie("ability"+i+".jpg",0);

Anzahl der ActionScript-Fehler: 1 Gemeldete Fehler: 1
 
Zuletzt bearbeitet:
Also du musst das so schreiben:
PHP:
for (var i:Number= 0; i<3; i++) { 
        this.createEmptyMovieClip("cl"+i,i);
        this["cl"+i].loadMovie("ability"+i+".jpg",i);
    var clip:MovieClip = cl.attachMovie("bild", "bild"+i, i+1); 
}
Jetzt hast du deine 3 MovieClips in die jeweils ein Bild geladen wird.


Gruß inctube
 
Danke! ...habs inzwischen auch geschaft, allerdings stellt sich dann wieder das Problem: dass die Bilder nur angezeigt werden wenn man das mit dem alpha auskommentiert!

Hier mal meine Idee um das ActionScipt zudem über den gesamten Film gehen zu lassen(indem man die jeweiligen 3 Bilder in Abhängigkeit davon wo der Film gerade steht (Bildname) anzeigen lässt):

PHP:
//In Flash kann man doch Bildbezeichnungen geben! ich habe die Bildbezeichnungen(auch Buttons) home, about, ability usw.

var bildbez:String="about"; //initialisierung falls ich unter about meine ersten 3 bilder anzeigen möchte.
//bildbez(Bild(name)) ist die bezeichnung der "Bilder des Flashfilms" NICHT der meiner jpg Bilder!

if(frame.name == "ability"){      //was mach ich hier falsch
	bildbez="ability";  //meine Bilder haben hier den namen ability0.jpg ..- ability2.jpg
}

else if .... usw



for (var i:Number=0; i<3; i++) { 
      _root.createEmptyMovieClip("cl"+i,i);
      _root["cl" + i].loadMovie(bildbez+i+".jpg",i); 

    _root["cl" + i]._x = 197 + 276 * i; //anordnen der jeweiligen 3 Bilder
    _root["cl" + i]._y = 118;
	
//_root["cl" + i]._alpha = 0;
......
Die Bilder werden NUR angezeigt wenn ich diese Zeile (_root["cl" + i]._alpha = 0 ; )auskommentiere! (aber um einzufaden muss es ja erst alpha 0 sein!).
wenn mans auskommentiert werden die Bilder angezeigt, gehen aber auch nicht mehr weg, egal welchen menüpunkt man klickt. Ausserdem möchte ich ja faden!?

.....weiter im Code:
PHP:
this.onEnterFrame = function() { 
    gesamt = _root["cl" + i].getBytesTotal(); 
    geladen = _root["cl" + i].getBytesLoaded(); 
    preloader._visible = true; 
        anz._visible = true 
    if (geladen != gesamt) { 
        _root.anz.text = Math.round(100*geladen/gesamt)+"%"; 
        //dynamisches Textfeld mit Instanznamen "anz" muss natürlich erstellt sein ^^ 
        preloader._xscale = 100*geladen/gesamt; 
    } else { 
        //hier müsste dann dein Script für die Größenänderung hin *gähn* man is schon spät 
                anz._visible = false 
        preloader._visible = false; 
        if (_root["cl" + i]._alpha<100 && geladen == gesamt) { 
            _root["cl" + i]._alpha += 2;  //war 10 jc 
            //je höher der Wert desto schneller "faded" das Bild ein, also je niedriger desto langsamer 
        } 
    } 
};  
}

Ich würde mich sehr freuen wenn ich diesen Wahnsinn heute hinter mich bringen könnte. Das alles nur um 3 Bilder anzuzeigen. Und immer wieder gehts dann doch nicht, obwohl man sich schon gefreut hat, und auch alles logisch scheint! Was mach ich jetzt noch falsch? gruß helene
 
Zuletzt bearbeitet:
1. bilder home0.jpg home1.jpg und home2.jpg usw (irgendwelche so bez. jpgs einfach in den gleichen ordner wie die fla)

2.der error mit der inhalt.txt, ist egal, da steht bei mir nur irgendein text drin der als content angezeigt werden soll.

3.alpha muss wieder auskommentiert werden, sonst zeigt es wie gesagt nie ein bild an!!?

vielen Dank!
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück