xterminator
%Europe/Berlin %767 %2005, 19:25
Hoe geraak ik in onderstaand script van de IF test af ?
Ik kan vanuit de listner functies de i variabele niet direct aanspreken, omdat deze onmiddellijk de exit waarde van de for lus bereikt (4 dus).
Dit onderstaand script werkt, maar die if test stoort me dus te fel en is een rem op de dynamiek.
var mclListener = new Array();
var image_mcl = new Array();
for (i=0; i<=3; i++) {
var pBar = this.createEmptyMovieClip("ProgressBar"+i, this.getNextHighestDepth());
pBar.createEmptyMovieClip("bar_mc", 1);
pBar.createEmptyMovieClip("stroke_mc", 2);
with (pBar.stroke_mc) {
lineStyle(0, 0x000000);
moveTo(0, 0);
lineTo(100, 0);
lineTo(100, 10);
lineTo(0, 10);
lineTo(0, 0);
}
with (pBar.bar_mc) {
beginFill(0xFF0000, 100);
moveTo(0, 0);
lineTo(100, 0);
lineTo(100, 10);
lineTo(0, 10);
lineTo(0, 0);
endFill();
_xscale = 10;
}
pBar._x = 235*i;
pBar._y = 10;
mclListener[i] = new Object();
if (i == 0) {
mclListener[i].onLoadStart = function(target_mc:MovieClip) {
movProgressBar0.bar_mc._xscale = 0;
};
mclListener[i].onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
movProgressBar0.bar_mc._xscale = Math.round(bytesLoaded/bytesTotal*100);
};
mclListener[i].onLoadComplete = function(target_mc:MovieClip) {
movProgressBar0.removeMovieClip();
};
}
if (i == 1) {
mclListener[i].onLoadStart = function(target_mc:MovieClip) {
ProgressBar1.bar_mc._xscale = 0;
};
mclListener[i].onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
ProgressBar1.bar_mc._xscale = Math.round(bytesLoaded/bytesTotal*100);
};
mclListener[i].onLoadComplete = function(target_mc:MovieClip) {
ProgressBar1.removeMovieClip();
};
}
if (i == 2) {
mclListener[i].onLoadStart = function(target_mc:MovieClip) {
ProgressBar2.bar_mc._xscale = 0;
};
mclListener[i].onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
ProgressBar2.bar_mc._xscale = Math.round(bytesLoaded/bytesTotal*100);
};
mclListener[i].onLoadComplete = function(target_mc:MovieClip) {
ProgressBar2.removeMovieClip();
};
}
if (i == 3) {
mclListener[i].onLoadStart = function(target_mc:MovieClip) {
ProgressBar3.bar_mc._xscale = 0;
};
mclListener[i].onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
ProgressBar3.bar_mc._xscale = Math.round(bytesLoaded/bytesTotal*100);
};
mclListener[i].onLoadComplete = function(target_mc:MovieClip) {
ProgressBar3.removeMovieClip();
};
}
mclListener[i].onLoadInit = function(target_mc:MovieClip) {
target_mc._height = 320;
target_mc._width = 200;
};
var movImage:MovieClip = this.createEmptyMovieClip("image_mc"+i, this.getNextHighestDepth());
image_mcl[i] = new MovieClipLoader();
image_mcl[i].addListener(mclListener[i]);
image_mcl[i].loadClip("http://www.deark.be/image"+i+".jpg", movImage);
movImage._x = 210*i;
}
Ik kan vanuit de listner functies de i variabele niet direct aanspreken, omdat deze onmiddellijk de exit waarde van de for lus bereikt (4 dus).
Dit onderstaand script werkt, maar die if test stoort me dus te fel en is een rem op de dynamiek.
var mclListener = new Array();
var image_mcl = new Array();
for (i=0; i<=3; i++) {
var pBar = this.createEmptyMovieClip("ProgressBar"+i, this.getNextHighestDepth());
pBar.createEmptyMovieClip("bar_mc", 1);
pBar.createEmptyMovieClip("stroke_mc", 2);
with (pBar.stroke_mc) {
lineStyle(0, 0x000000);
moveTo(0, 0);
lineTo(100, 0);
lineTo(100, 10);
lineTo(0, 10);
lineTo(0, 0);
}
with (pBar.bar_mc) {
beginFill(0xFF0000, 100);
moveTo(0, 0);
lineTo(100, 0);
lineTo(100, 10);
lineTo(0, 10);
lineTo(0, 0);
endFill();
_xscale = 10;
}
pBar._x = 235*i;
pBar._y = 10;
mclListener[i] = new Object();
if (i == 0) {
mclListener[i].onLoadStart = function(target_mc:MovieClip) {
movProgressBar0.bar_mc._xscale = 0;
};
mclListener[i].onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
movProgressBar0.bar_mc._xscale = Math.round(bytesLoaded/bytesTotal*100);
};
mclListener[i].onLoadComplete = function(target_mc:MovieClip) {
movProgressBar0.removeMovieClip();
};
}
if (i == 1) {
mclListener[i].onLoadStart = function(target_mc:MovieClip) {
ProgressBar1.bar_mc._xscale = 0;
};
mclListener[i].onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
ProgressBar1.bar_mc._xscale = Math.round(bytesLoaded/bytesTotal*100);
};
mclListener[i].onLoadComplete = function(target_mc:MovieClip) {
ProgressBar1.removeMovieClip();
};
}
if (i == 2) {
mclListener[i].onLoadStart = function(target_mc:MovieClip) {
ProgressBar2.bar_mc._xscale = 0;
};
mclListener[i].onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
ProgressBar2.bar_mc._xscale = Math.round(bytesLoaded/bytesTotal*100);
};
mclListener[i].onLoadComplete = function(target_mc:MovieClip) {
ProgressBar2.removeMovieClip();
};
}
if (i == 3) {
mclListener[i].onLoadStart = function(target_mc:MovieClip) {
ProgressBar3.bar_mc._xscale = 0;
};
mclListener[i].onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
ProgressBar3.bar_mc._xscale = Math.round(bytesLoaded/bytesTotal*100);
};
mclListener[i].onLoadComplete = function(target_mc:MovieClip) {
ProgressBar3.removeMovieClip();
};
}
mclListener[i].onLoadInit = function(target_mc:MovieClip) {
target_mc._height = 320;
target_mc._width = 200;
};
var movImage:MovieClip = this.createEmptyMovieClip("image_mc"+i, this.getNextHighestDepth());
image_mcl[i] = new MovieClipLoader();
image_mcl[i].addListener(mclListener[i]);
image_mcl[i].loadClip("http://www.deark.be/image"+i+".jpg", movImage);
movImage._x = 210*i;
}