hallo
ich habe mir ein script für einen banner zusammengebastelt, möchte aber nicht dass alle bilder der xml gleichzeitig geladen werden. es sollte das erste zufällig geladene bild geladen werden während dem dann das nächste usw. Dann hätte ich auch noch evtl. einen preloader eingebaut der funktioniert aber nicht für die bilder der xml?
vielen dank im voraus!
hier das script:
Code:
var pic = new Array();
var current = 0;
var loaded = 0;
var IV = 0;
var centerX = 800; //Bühne mitte Horiz.
var centerY = 200; //Bühne mitte Vert
var timeout = 20000; // Zeit zwischen den Bildern!
var xm = new XML();
xm.ignoreWhite = true;
xm.load("pictures.xml"); //pfad xml Datei
xm.onLoad = function() {
parse(this);
}
function parse(obj) {
for (var i=0; i<obj.childNodes.length; i++) {
pic[i] = this.createEmptyMovieClip("pic" + i, i + 512);
pic[i].ct = pic[i].createEmptyMovieClip("ct", 1);
pic[i]._alpha = 0;
pic[i].nr = i;
pic[i]._x = centerX;
pic[i]._y = centerY;
pic[i].blur_in_alpha = function() { // Einblenden
this.onEnterFrame = function() {
var bl = 50; //blurversatz in px indirekt blurzeit
var blur = new flash.filters.BlurFilter(bl,bl,1);
onEnterFrame = function(){
blur.blurX = bl;
blur.blurY = bl;
this.filters = [blur];
if(--bl==0)
delete this.onEnterFrame;}
this._alpha += (100 - this._alpha) / 4;
if (this._alpha >= 50) { //Deckkraft Einstellen in%
this._alpha = 50; //Deckkraft Einstellen in%
this._parent.nextPic(this.nr);
delete this.onEnterFrame;}
}
}
pic[i].Blur_out = function() { // Ausblenden
this.onEnterFrame = function() {
this._alpha += (0 - this._alpha) / 4;
if (this._alpha <= 2) {
this._alpha = 0;
delete this.onEnterFrame;
}
}
}
pic[i].ct.loadMovie(obj.childNodes[i].attributes.picture);
pic[i].onEnterFrame = function() {
if (this.ct._width > 10 && this.ct._height > 10) {
this.ct._x = -this.ct._width / 2;
this.ct._y = -this.ct._height / 2;
this._parent.nextLoaded();
delete this.onEnterFrame;
}
}
}
}
function showPic(nr) { // Blendet ein Bild ein
clearInterval(IV);
if (current != nr) {
for (var i=0; i<pic.length; i++) {
if (nr != i) {
pic[i].Blur_out();
} else {
pic[i].blur_in_alpha();
current = i;
}
}
}
}
function nextLoaded() {
loaded ++;
if (loaded >= pic.length) randPic();
}
function nextPic(nr) { // Blendet ein zufälliges Bild verzögert ein
clearInterval(IV);
do {
var v = int(Math.random() * pic.length);
} while (v == nr);
IV = setInterval(function() { showPic(v); }, timeout);
}
function randPic() { // Blendet ein zufälliges Bild ein
clearInterval(IV);
do {
var v = int(Math.random() * pic.length);
} while (v == current);
showPic(v);
}