# So simple, but it doesn't work!

**URL:** https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893
**Category:** Uncategorized
**Created:** [April 17, 2006, 2:25pm UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893 "2006-04-17T14:25:19Z")
**Posts on this page:** 18
**Page:** 1

<div class="post-metadata">

### Author: ![5TEF](https://avatars.discourse-cdn.com/v4/letter/5/85e7bf/32.png) [@5TEF](https://forum.kirupa.com/u/5TEF)
#### Post date: [April 17, 2006, 2:25pm UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/1 "2006-04-17T14:25:19Z")

</div>

Hi,  
don’t laught ! but i’ve got some difficulty to make a preloader for downloading a JPG picture into a MC !

i’ve got a simple MC on my scene. i want to download a picture inside it, when i lauche my swf.

this my as code:

```auto

stop();
MC_Cont._alpha = 0;
_root.preloader_mc._visible = true;
preloader_mc.txt_loader = "backGround loading";

function preload(uurl) {
    this.onEnterFrame = function() {
        var loaded:Number = this.getBytesLoaded();
        var total:Number = this.getBytesTotal();
        var percent:Number = Math.round((loaded/total)*100);
        _root.preloader_mc.percent = percent+"%";
        trace(loaded);
        if (percent>=100) {
            delete this.onEnterFrame;
            _root.preloader_mc._visible = false;
            this.onEnterFrame = function() {
                this._alpha += 2;
                if (this._alpha == 100) {
                    delete this.onEnterFrame;
                }
            };
        }
    };
}
MC_Cont.preload("backgrounds/backg_1.jpg");

```

what’s wrong ?

---

<div class="post-metadata">

### Author: ![Mirandir](https://avatars.discourse-cdn.com/v4/letter/m/a5b964/32.png) [@Mirandir](https://forum.kirupa.com/u/Mirandir)
#### Post date: [April 17, 2006, 2:44pm UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/2 "2006-04-17T14:44:52Z")

</div>

Initially while loading something into a movieclip bytesLoaded and bytesTotal may equal. The value may be either the current bytesize of the movieclip or -1. So first do an unload on the target movieclip and then make sure that the amount of loaded bytes is larger than the movieclips initial size. For an empty movieclip put on stage at authortime that size is 4 bytes.

/Mirandir

---

<div class="post-metadata">

### Author: ![5TEF](https://avatars.discourse-cdn.com/v4/letter/5/85e7bf/32.png) [@5TEF](https://forum.kirupa.com/u/5TEF)
#### Post date: [April 17, 2006, 4:29pm UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/3 "2006-04-17T16:29:51Z")

</div>

thanks, but i think it’s not the solution , since i try an “unLoadMovie” with no result.  
i change my code to this:

```auto

bgConteneur.loadMovie("backgrounds/backg_1.jpg");
bgConteneur.onEnterFrame = function() {
    var loaded:Number = this.getBytesLoaded();
    var total:Number = this.getBytesTotal();
    var percent:Number = Math.round((loaded/total)*100);
    preloader_mc.percent = percent+"%";
    trace(loaded);
    if (percent>=100) {
        delete this.onEnterFrame;
        preloader_mc._visible = false;
        this.onEnterFrame = function() {
            this._alpha += 2;
            if (this._alpha == 100) {
                delete this.onEnterFrame;
            }
        };
    }
};

```

i think it’s not a big pb…but a vicious pb !

---

<div class="post-metadata">

### Author: ![5TEF](https://avatars.discourse-cdn.com/v4/letter/5/85e7bf/32.png) [@5TEF](https://forum.kirupa.com/u/5TEF)
#### Post date: [April 17, 2006, 6:12pm UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/4 "2006-04-17T18:12:04Z")

</div>

ok, i found the error 🙂

---

<div class="post-metadata">

### Author: ![scotty](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@scotty](https://forum.kirupa.com/u/scotty)
#### Post date: [April 17, 2006, 6:15pm UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/5 "2006-04-17T18:15:40Z")

</div>

If you load in a mc you can’t use that mc’s onEnterframe to check the loading…

```auto
bgConteneur.loadMovie("backgrounds/backg_1.jpg");
var temp = this.createEmptyMovieClip("temp", 998);
bgConteneur._alpha = 0;
temp.onEnterFrame = function() {
	var loaded:Number = bgConteneur.getBytesLoaded();
	var total:Number = bgConteneur.getBytesTotal();
	var percent:Number = Math.round((loaded/total)*100);
	preloader_mc.percent = percent+"%";
	if (bgConteneur._width) {
		preloader_mc._visible = false;
		bgConteneur._alpha += 2;
		if (bgConteneur._alpha>100) {
			bgConteneur._alpha = 100;
			delete this.onEnterFrame;
		}
	}
};

```

scotty(-:

---

<div class="post-metadata">

### Author: ![5TEF](https://avatars.discourse-cdn.com/v4/letter/5/85e7bf/32.png) [@5TEF](https://forum.kirupa.com/u/5TEF)
#### Post date: [April 17, 2006, 9:46pm UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/6 "2006-04-17T21:46:15Z")

</div>

hey, Scotty ! 🙂

thanks very much.

if i understand, we must create another temp MC ( “temp” ) to make the “onEnterFrame” and make the preloader ? but why ?

another question about your AS code: what’s the " [COLOR=#0000FF]if[/COLOR] COLOR=#000000" condition ? i don’t understand…

so, this is my version, it’s seems to work… ( but i think i will try your AS code 🙂 i know you legendary AS code quality 😉 )  
[/COLOR]  
if you can explain me my AS error, you’re welcome !

thanks !

```auto

 [COLOR=#0000FF][/COLOR][COLOR=#000000][/COLOR]onEnterFrame = function () {
    var loaded:Number = bgConteneur.getBytesLoaded();
    var total:Number = bgConteneur.getBytesTotal();
    var percent:Number = Math.round((loaded/total)*100);
    preloader_mc.percent = percent+"%";
    if (percent>=90) {
        bgConteneur._alpha += 2;
        preloader_mc.tween(["_y", "_alpha"], [0, 0], 4, "easeOutExpo");
        if (bgConteneur._alpha>=100) {
            delete this.onEnterFrame;
            play();
        }
    }
};
bgConteneur.loadMovie("backgrounds/backg_1.jpg");

```

stef ( always want to learn )

---

<div class="post-metadata">

### Author: ![scotty](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@scotty](https://forum.kirupa.com/u/scotty)
#### Post date: [April 18, 2006, 6:13am UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/7 "2006-04-18T06:13:17Z")

</div>

If you load something into a movieclip all properties of that movieclip are reset to default. For example the onEnterFrame handler the movieclip had before it loaded has to be replaced by a new onEnterFrame handler the loaded movie uses. That’s why I use mc ‘temp’.

```auto
if (bgConteneur._width) {

```

checks if bgConteneur has a width (ie is full loaded), as long as it is not loaded, it will returns false (width=0).  
In your code, it’s better to assign the onenterframe to a mc plus (as said above) you can’t use the alpha property before it’s fully loaded, so the

```auto
if (percent>=90) {
       bgConteneur._alpha += 2;

```

will work, as soon percent equals 100 🙂

scotty(-:

---

<div class="post-metadata">

### Author: ![5TEF](https://avatars.discourse-cdn.com/v4/letter/5/85e7bf/32.png) [@5TEF](https://forum.kirupa.com/u/5TEF)
#### Post date: [April 18, 2006, 7:29am UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/8 "2006-04-18T07:29:38Z")

</div>

thanks very much professor 😉

i will write this in my learning book 🙂  
more i learn, more i found flash AS vicious !!!  
it’s not easy to found THE good tip each time i’ve got a pb…

---

<div class="post-metadata">

### Author: ![scotty](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@scotty](https://forum.kirupa.com/u/scotty)
#### Post date: [April 18, 2006, 7:39am UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/9 "2006-04-18T07:39:08Z")

</div>

You’re welcome =)

---

<div class="post-metadata">

### Author: ![5TEF](https://avatars.discourse-cdn.com/v4/letter/5/85e7bf/32.png) [@5TEF](https://forum.kirupa.com/u/5TEF)
#### Post date: [April 20, 2006, 7:21pm UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/10 "2006-04-20T19:21:37Z")

</div>

ah Scotty !

another question:  
i notice a strange thing with your AS version code, and mine…

when i reload my page quickly, and several times ( with Firefox ) , i see a %NAN% for 0.5sec, and then, the preload work…strange !

what’s this ? is it normal ? how can i resolve this “bug” ?

---

<div class="post-metadata">

### Author: ![scotty](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@scotty](https://forum.kirupa.com/u/scotty)
#### Post date: [April 20, 2006, 9:40pm UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/11 "2006-04-20T21:40:50Z")

</div>

Try

```auto
percent !=isNaN ? preloader_mc.percent = percent+"%" : preloader_mc.percent = 0%;

```

scotty(-:

---

<div class="post-metadata">

### Author: ![5TEF](https://avatars.discourse-cdn.com/v4/letter/5/85e7bf/32.png) [@5TEF](https://forum.kirupa.com/u/5TEF)
#### Post date: [April 21, 2006, 8:23am UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/12 "2006-04-21T08:23:31Z")

</div>

thanks scotty 🙂  
i will try this tonight…  
what do you think about this issue ?? i think the preloader work too quickly, due to my connection speed ?

---

<div class="post-metadata">

### Author: ![scotty](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@scotty](https://forum.kirupa.com/u/scotty)
#### Post date: [April 21, 2006, 1:11pm UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/13 "2006-04-21T13:11:23Z")

</div>

The preloader works ok, but if the load is initiated for a moment bgConteneur.getBytesTotal() returns 0 and you can’t didide by 0 🙂

scotty(-:

---

<div class="post-metadata">

### Author: ![5TEF](https://avatars.discourse-cdn.com/v4/letter/5/85e7bf/32.png) [@5TEF](https://forum.kirupa.com/u/5TEF)
#### Post date: [April 21, 2006, 5:56pm UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/14 "2006-04-21T17:56:45Z")

</div>

don’t work :-(… synthax error !  
(% need operator …humm seems to have pb with the “:”)

---

<div class="post-metadata">

### Author: ![5TEF](https://avatars.discourse-cdn.com/v4/letter/5/85e7bf/32.png) [@5TEF](https://forum.kirupa.com/u/5TEF)
#### Post date: [April 21, 2006, 6:14pm UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/15 "2006-04-21T18:14:27Z")

</div>

humm… your tips seems not to work ( always NaN% when my swf is online )…maybe i make an error :

```auto

var temp = this.createEmptyMovieClip("temp", 998);
bgConteneur._alpha = 0;
temp.onEnterFrame = function() {
    var loaded:Number = bgConteneur.getBytesLoaded();
    var total:Number = bgConteneur.getBytesTotal();
    var percent:Number = Math.round((loaded/total)*100);
    percent != isNaN ? preloader_mc.percent=percent+"%" : preloader_mc.percent=0;
    preloader_mc.percent = percent+"%";
    if (bgConteneur._width) {
        bgConteneur._alpha += 4;
        preloader_mc.tween(["_alpha"], [0], 2, "easeOutExpo");
        if (bgConteneur._alpha>100) {
            bgConteneur._alpha = 100;
            delete this.onEnterFrame;
            play();
        }
    }
};

```

---

<div class="post-metadata">

### Author: ![scotty](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@scotty](https://forum.kirupa.com/u/scotty)
#### Post date: [April 21, 2006, 7:13pm UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/16 "2006-04-21T19:13:58Z")

</div>

Two things:  
First my code wasn’t correct, it should read

```auto
isNaN(percent) ? preloader_mc.percent="0 %" : preloader_mc.percent=percent;

```

Second you have a line

```auto
 preloader_mc.percent = percent+"%";

```

skip this cause this one overwrites the if statement line that’s above it  
So the complete code

```auto
var temp = this.createEmptyMovieClip("temp", 998);
bgConteneur._alpha = 0;
temp.onEnterFrame = function() {
    var loaded:Number = bgConteneur.getBytesLoaded();
    var total:Number = bgConteneur.getBytesTotal();
    var percent:Number = Math.round((loaded/total)*100);
    isNaN(percent) ? preloader_mc.percent="0 %" : preloader_mc.percent=percent;
    if (bgConteneur._width) {
        bgConteneur._alpha += 4;
        preloader_mc.tween(["_alpha"], [0], 2, "easeOutExpo");
        if (bgConteneur._alpha>100) {
            bgConteneur._alpha = 100;
            delete this.onEnterFrame;
            play();
        }
    }
};

```

scotty(-:

---

<div class="post-metadata">

### Author: ![5TEF](https://avatars.discourse-cdn.com/v4/letter/5/85e7bf/32.png) [@5TEF](https://forum.kirupa.com/u/5TEF)
#### Post date: [April 22, 2006, 7:37am UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/17 "2006-04-22T07:37:24Z")

</div>

thanks very much Scotty ! it work perfectly now ! 🍺🍺

Please, write a book about learning and making good AS code ! i will buy it for sure !🙂

now, i can continue to developpe my personnal website ! let’s go !:red:

---

<div class="post-metadata">

### Author: ![scotty](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@scotty](https://forum.kirupa.com/u/scotty)
#### Post date: [April 22, 2006, 2:11pm UTC](https://forum.kirupa.com/t/so-simple-but-it-doesnt-work/185893/18 "2006-04-22T14:11:01Z")

</div>

welcome =)
