PDA

View Full Version : [FMX2] preloader and visibility



Maizoon
December 29th, 2003, 07:55 PM
Hello,

I have index.swf which has the following script on frame one:

_root.createEmptyMovieClip("container", 1000);
_root.container._visible = 0;
_root.createEmptyMovieClip("preloader", 1001);
_root.container.loadMovie("content.swf");

then on frame two:

preloader.onEnterFrame = function() {
t = _root.container.getBytesTotal();
trace("t="+t)
l = _root.container.getBytesLoaded();
trace("l="+l)
p = l/t;
trace ("p="+p)
loader._width = p*100;
if (l>=t) {
_root.container._visible = 1;
trace("done")
delete this.onEnterFrame;
}
};
stop();

It works like it should, minus the fact that at about 35% (60k out of 153k) it shows the content.swf. This doesn't make any sense because container (the MC holding content.swf) is set to to be invisible until l = t (loaded = total). I've been tweaking this for hours and can't for the life of me figure out why its showing the container prematurly and why its ignoring my _visible tags

claudio
December 29th, 2003, 10:20 PM
Try:
this.createEmptyMovieClip("container", 1000);
this.createEmptyMovieClip("preloader", 1001);
container.loadMovie("content.swf");
preloader.onEnterFrame = function() {
var t, l, p;
t = container.getBytesTotal();
l = container.getBytesLoaded();
p = l/t;
trace("t="+t);
trace("l="+l);
trace("p="+p);
if (l) {
container._visible = 0;
loader._width = p*100;
if (l == t) {
container._visible = 1;
trace("done");
delete this.onEnterFrame;
}
}
};
stop();

Maizoon
December 29th, 2003, 10:58 PM
sweet thanks...so putting that if (l) block is what makes this work on one frame...and make it visible/invisible? Why did my code not work as i thought it should have?

claudio
December 29th, 2003, 11:04 PM
Because you set the visible property to false and then you loaded some movie into it. When that happens, the visible property is set back to true.