PDA

Tails
12-19-2002, 08:51 PM
I have a bunch of images with the names 20.gif through 2f.gif (following hex). I want them to all be preloaded in as short amount of script as possible. There's It's a nice trick to store variables in hex, but if you increment it through the FOR loop, or any other type of arithmetic, it converts it to base10. This isn't good. I had something more like this in mind:

N=0x20
for (i=N; i<0x30; i++)
{
"p"+i=new Image()
"p"+i.src="'i'.gif"
}

beetle
12-19-2002, 09:11 PM
0x20 or whatever is a perfectly legit Number literal, so just use that. All you need is the toString() method, which takes a radix for an argument (10 is default).
var hex, arrImgs = new Array();
for (i=0x20, j=0x30; i<j; i++) {
hex = i.toString(16);
arrImgs["p"+hex] = new Image();
arrImgs["p"+hex].src = hex + ".gif";
}

Tails
12-19-2002, 10:38 PM
Radix? I don't know what that is...But you mean it is that easy to convert a number to hex?

beetle
12-20-2002, 01:11 AM
The radix is the base of the number system. For binary, the base is 2, octal 8, decimal (our favorite) 10, and hex is 16.

Javascript interprets the 0x20 as it's base 10 value, which in this case is 32. Applying [B]toString(16) gives us the hex value, again in this case, 20.

Yes, it's that easy :D