Basileus
Erfahrenes Mitglied
Hallo ,
Ich bin dabei ein Template einer Flash-Galerie zu entwickeln, die unter anderem einige Preloader-Elemente enthält.
Wegen der späteren modular gedachten Verwendung ist eine verschachtelte Struktur leider unerlässlich.
Das heißt, eine index.swf hat einen mc _level0.contain, dieser mc enthält(loadMovie, swf) die Buttons zum Laden einzelner Bilder, ein Textfeld zum Anzeigen des Ladestandes und den Container MC (con), der die zu ladenden Bilder enthält.
Soweit so gut, alle anderen Elemente der Galerie funktionieren sehr gut, nur um auch analog-User zu befriedigen, brauche ich den Preloader. Durch ein früheres Posting habe ich skylas fein abstrahiertes script in die Hände bekommen, das ich aber durch mein mangelhaftes Verständnis des AS Document Object Modeling nicht adaptiert bekomme:
Loader = function (datei) {
// mc, der das image empfängt
bild = _level0.contain.con
// mc um den onEnterFrame zu sponsernängt
controller = this.createEmptyMovieClip("b", 1);
bild.loadMovie(datei);
controller.onEnterFrame = function() {
//bild unsichtbar
bild._visible = false;
// zur vereinfachung
geladen = bild.getBytesLoaded();
total = bild.getBytesTotal();
// checkt ob der ladeprozess läuft
if (geladen>0 && total>0) {
// umrechnen in prozent
ready = Math.round(geladen*100/total);
} else {
ready = "angeblich nicht gestartet";
}
// das Textfeld
_level0.contain.my_txt.text = ready+" %";
if (ready>=99) {
// bild soll sichtbar sein, wenn geladen
bild._visible = true;
delete controller.onEnterFrame;
}
};
};
my_btn.onRelease = function() {
jumpPic = 7;
datei = jumpPic+".jpg"
loader(datei);
};
my_btn2.onRelease = function() {
jumpPic = 8;
datei = jumpPic+".jpg"
loader(datei);
};
Das ist die verkorkste Version, lief schon mal besser, aber im Prinzip ist das die Sache um die es geht.
Ich bin fast sicher das es was einfaches ist, vielleicht was wegen this oder so, aber ich würds nicht posten wenns mich nicht fast um den Verstand bringen würde, weil ich damit partout nicht weiter komme....
Das Script liegt auf nem Testserver: http://www.b-media24.de
und die Galerie in unperfektem Zustand: http://www.senzisound.de
Das Problem in Kurzform ist einfach, das das Script unverschachtelt funktioniert, das aber wenn es verschachtelt ist nur noch das Bild geladen wird, der Preloader aber ausoptet, als würde es die Datei nicht geben (im Script:ready = "angeblich nicht gestartet"
.
Über jede Hilfe wäre ich echt dankbar..
Ich bin dabei ein Template einer Flash-Galerie zu entwickeln, die unter anderem einige Preloader-Elemente enthält.
Wegen der späteren modular gedachten Verwendung ist eine verschachtelte Struktur leider unerlässlich.
Das heißt, eine index.swf hat einen mc _level0.contain, dieser mc enthält(loadMovie, swf) die Buttons zum Laden einzelner Bilder, ein Textfeld zum Anzeigen des Ladestandes und den Container MC (con), der die zu ladenden Bilder enthält.
Soweit so gut, alle anderen Elemente der Galerie funktionieren sehr gut, nur um auch analog-User zu befriedigen, brauche ich den Preloader. Durch ein früheres Posting habe ich skylas fein abstrahiertes script in die Hände bekommen, das ich aber durch mein mangelhaftes Verständnis des AS Document Object Modeling nicht adaptiert bekomme:
Loader = function (datei) {
// mc, der das image empfängt
bild = _level0.contain.con
// mc um den onEnterFrame zu sponsernängt
controller = this.createEmptyMovieClip("b", 1);
bild.loadMovie(datei);
controller.onEnterFrame = function() {
//bild unsichtbar
bild._visible = false;
// zur vereinfachung
geladen = bild.getBytesLoaded();
total = bild.getBytesTotal();
// checkt ob der ladeprozess läuft
if (geladen>0 && total>0) {
// umrechnen in prozent
ready = Math.round(geladen*100/total);
} else {
ready = "angeblich nicht gestartet";
}
// das Textfeld
_level0.contain.my_txt.text = ready+" %";
if (ready>=99) {
// bild soll sichtbar sein, wenn geladen
bild._visible = true;
delete controller.onEnterFrame;
}
};
};
my_btn.onRelease = function() {
jumpPic = 7;
datei = jumpPic+".jpg"
loader(datei);
};
my_btn2.onRelease = function() {
jumpPic = 8;
datei = jumpPic+".jpg"
loader(datei);
};
Das ist die verkorkste Version, lief schon mal besser, aber im Prinzip ist das die Sache um die es geht.
Ich bin fast sicher das es was einfaches ist, vielleicht was wegen this oder so, aber ich würds nicht posten wenns mich nicht fast um den Verstand bringen würde, weil ich damit partout nicht weiter komme....
Das Script liegt auf nem Testserver: http://www.b-media24.de
und die Galerie in unperfektem Zustand: http://www.senzisound.de
Das Problem in Kurzform ist einfach, das das Script unverschachtelt funktioniert, das aber wenn es verschachtelt ist nur noch das Bild geladen wird, der Preloader aber ausoptet, als würde es die Datei nicht geben (im Script:ready = "angeblich nicht gestartet"

Über jede Hilfe wäre ich echt dankbar..