Hiho,
Ich arbeite derzeit an einer Bildergallerie, hat zuvor wunderbar funktioniert, bis ich angefangen habe für jedes einzelne Bild, welche aus der XML gelesen werden, einen Preloader hinzuzufügen. Das Problem liegt nicht am Loader, der funktioniert, nur seit dem ich den Loader mit drinne habe fadet er das erste Bild nur einmal und die folgenden gar nicht... Ich finde aber den Fehler einfach nicht. Ich habe schon einige Varianten ausprobiert und die Aktion für das Faden an andere Stellen gesetzt, nur dann passiert logischerweise entweder gar nichts oder die Bilder flackern nur so durch.
Aufbau:
Ich habe auf der Bühne ein Hintergrundbild mit einem Kreis, dieser hat eine Iris mit einer Maske, die die Bilder Kreisrund anzeigt, die Bilder werden aus einer XML (in der XML steht noch die Zeit für die Weiterschaltung der Bilder) gelesen und in eine Loaderkomponente geladen. Habe einen Preloader für den ganzen Film und jeweils einen für die einzelnen Bilder ....
Das Script(liegt auf dem ersten Frame in der Timeline):
var Bilder_xml = new XML()
Bilder_xml.ignoreWhite = true;
Bilder_xml.load("Bilder.xml");
var BilderArray = new Array();
Bilder_xml.onLoad = function()
{
var slideTimer:Number=Number(Bilder_xml.firstChild.firstChild.attributes.time);
for (i = 1; i < Bilder_xml.firstChild.childNodes.length; i++)
{
_root.BilderArray[i - 1] = Bilder_xml.firstChild.childNodes[i].attributes.path;
}
BilderLoader.load( _root.BilderArray[0] );
setInterval(nextImage, slideTimer);
id = setInterval(faden,100);
BilderLoader._alpha = 0;
function faden(){
if (BilderLoader.percentLoaded >= 100){
BilderLoader._alpha += 5;
if(BilderLoader._alpha >= 100){
trace("stop");
clearInterval(id);
}
}}
}
var curImage = 0;
_root.onEnterFrame = function()
{
if (BilderLoader.percentLoaded != 100)
{
Prozent._visible = true
Prozent._xscale = BilderLoader.percentLoaded
}
else {
Prozent._visible = false
}
}
function nextImage()
{
_root.curImage++
if (_root.curImage == _root.BilderArray.length)
{
_root.curImage = 0;
}
_root.BilderLoader.load( _root.BilderArray[curImage]);
}
Alles anzeigen
Frage:
Wie ist es möglich das alle Bilder einfaden evtl. auch ausfaden und da
ich derzeit nur einen einfachen Preloader (Balken scalen) für die
Bilder habe, wie es am besten geht, einen mit Prozentangabe zu
erstellen... An sich kein Problem aber ich habe das noch nie für Bilder
die aus einer XML geladen werden gemacht...Bei dem Ausfaden wäre es
auch interessant ob und wie es machbar wäre das Ausfaden erst nach
einer bestimmten Zeit festzulegen z.B Intervall für die Weiterschaltung
beträgt 9 Sekunden dann kommt der Einfade und nach weitern 4 der
Ausfade..
Oder ist es einfacher mit einem Preloader der alle Bilder läd (mit
Prozentanzeige, damit man weiss wie lange es noch dauert...), dann wenn
das geschehen ist die Iris aufgeht ... dann einfach Bild einfaden, für
ein paar Sekunden stehen bleiben, ausfaden, dann Iris wieder zu, wenn
geschlossen, kurz warten nächstes Bild, wieder auf und so weiter und
halt so das man sieht, das das Bild einfadet, wärend sich die Iris
öffnet?
Wäre über jede Hilfe sehr dankbar..
-->LG<--