View Full Version : Code to display two images help!
MarkFoster
04-04-2009, 12:34 PM
If I use this code: <SCRIPT LANGUAGE="JavaScript">
<!-- Begin Random Logo In Header Script
var theImages = new Array() // do not change this
<!-- Edit the url images to match yours
theImages[0] = 'images/statusicon/forum_old.gif'
theImages[1] = 'images/statusicon/forum_new.gif'
var j = 0
var p = theImages.length;
var preBuffer = new Array()
for (i = 0; i < p; i++){
preBuffer[i] = new Image()
preBuffer[i].src = theImages[i]
}
var whichImage = Math.round(Math.random()*(p-1));
function showImage(){
document.write('<td align="$stylevar[left]"><a href="index.php"><img src="'+theImages[whichImage]+'" border="0" alt="$vboptions[bbtitle]" /></a></div>');
}
// End -->
</script>
How will I be able to use two images at one "theImages[0] = 'images/statusicon/forum_old.gif'" ?
Thanks.
TigerC10
04-04-2009, 12:46 PM
I don't understand the question... What are you trying to do?
MarkFoster
04-04-2009, 12:49 PM
I don't understand the question... What are you trying to do?
That code makes it so my logo's can change after refreshes or clicks to other pages.
The part below allows you to enter the URL's of the images you want, however my images are extremely huge even thougth their file sizes are small so I want to add two images on one line instead of having one image on one line.
<!-- Edit the url images to match yours
theImages[0] = 'images/statusicon/forum_old.gif'
theImages[1] = 'images/statusicon/forum_new.gif'
TigerC10
04-04-2009, 02:44 PM
You uh... Can't put two images on one line like that. Well I guess you can, but it takes some complicated handling and parsing.
You should just create two image arrays...
<!-- Edit the url images to match yours
theImagesA[0] = 'images/statusicon/forum_old.gif'
theImagesB[0] = 'images/statusicon/forum_old2.gif'
theImagesA[1] = 'images/statusicon/forum_new.gif'
theImagesB[1] = 'images/statusicon/forum_new2.gif'
That's the best way of doing "two images".
MarkFoster
04-05-2009, 12:30 AM
You uh... Can't put two images on one line like that. Well I guess you can, but it takes some complicated handling and parsing.
You should just create two image arrays...
<!-- Edit the url images to match yours
theImagesA[0] = 'images/statusicon/forum_old.gif'
theImagesB[0] = 'images/statusicon/forum_old2.gif'
theImagesA[1] = 'images/statusicon/forum_new.gif'
theImagesB[1] = 'images/statusicon/forum_new2.gif'
That's the best way of doing "two images".
That makes it so that no images are displayed, just one of those classic broken image boxes. Could it be releated to other parts of the code?
--------------- Added 1238900644 at 1238900644 ---------------
might it also have to do anything with the code you use to display it where you want?
<SCRIPT LANGUAGE="JavaScript">
showImage();
</script>
MarkFoster
04-06-2009, 02:45 AM
Bump, I need help and I need it before a certain date.
Mr-Moo
04-06-2009, 03:19 AM
I am still not quite clear on this. You mention that you have a 'huge' (as in area size) pictures. Why would you want to put two large images together to make a superimage?
I need to understand your goal a little more before I can further assist.
Thank you for your patience!
TigerC10
04-06-2009, 07:05 AM
That makes it so that no images are displayed, just one of those classic broken image boxes. Could it be releated to other parts of the code?
Well, yeah. You would have to go and alter the Javascript code to change all references from...
theImages[i]
to...
theImagesA[i]
theImagesB[i]
Where i is the number of the image.
I figured you would know to do that since you're changing a variable name there. It's not like you can alter 1 line of code and magically get everything to do everything you want.
EDIT:
Consider using this instead
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin Random Logo In Header Script
var theImagesA = new Array() // do not change this
var theImagesB = new Array() // do not change this
<!-- Edit the url images to match yours
theImagesA[0] = 'images/statusicon/forum_old1.gif'
theImagesB[0] = 'images/statusicon/forum_old2.gif'
theImagesA[1] = 'images/statusicon/forum_new1.gif'
theImagesB[1] = 'images/statusicon/forum_new2.gif'
var j = 0
var p = theImagesA.length;
var preBufferA = new Array()
var preBufferB = new Array()
for (i = 0; i < p; i++){
preBufferA[i] = new Image()
preBufferA[i].src = theImagesA[i]
preBufferB[i] = new Image()
preBufferB[i].src = theImagesB[i]
}
var whichImage = Math.round(Math.random()*(p-1));
function showImage(){
document.write('<td align="$stylevar[left]"><a href="index.php"><img src="'+theImagesA[whichImage]+'" border="0" alt="$vboptions[bbtitle]" /><img src="'+theImagesB[whichImage]+'" border="0" alt="$vboptions[bbtitle]" /></a></div>');
}
// End -->
</script>
See? You have to do it to the whole thing.
Mr-Moo
04-06-2009, 12:22 PM
Just tossing the question out there because I am interested in learning, but are you able to assign multiple results to a variable? If so, why and what are the circumstances?
Thank you!
TigerC10
04-06-2009, 03:01 PM
Just tossing the question out there because I am interested in learning, but are you able to assign multiple results to a variable? If so, why and what are the circumstances?
Thank you!
Yeah, it's called an array. You would do it to keep lists of things (like pictures, names). That's what we're doing with the [i] stuff at the end of the variable name.
So like...
var friends = new Array();
friends[0] = "Woody";
friends[1] = "Buzz";
friends[2] = "Potato Head";
friends[3] = "Rex";
friends[4] = "Hamm";
friends[0] = "Slinky";
friends[6] = "Bo Peep";
Will be multiple variables, multiple strings (names) of people in the variable friends.
You can also use 2D arrays to make arrays of arrays. This is to keep track of checkerboard kind of things.
var timestable = new Array(3);
for(var i=0; i<6; i++){
timestable[i] = new Array(5)
}
for(var i=0; i<timestable.length; i++
{
for(var j=0; j<timestable[0].length; j++)
{
timestable[i][j] = i * j;
}
}
document.writeln("2 x 3 = " + timestable[2][3]);
The code above makes a multiplication table, that looks something like this...
0 1 2
0 [0][0][0]
1 [0][1][2]
2 [0][2][4]
3 [0][3][6]
4 [0][4][8]
The first subvariable calls the column, the second subvariable calls the row. So timestable[1][4] is 4. Then timestable[2][2] is also 4.
So MarkFoster here can solve his problem either with a two arrays or a 2D array. Either way, he has to extensively change his code. Because the list probably isn't very long, and he would only need two rows - using a 2D array would be wasteful and inefficient. He probably needs to just keep two arrays (which is what I've given him code for).
vBulletin® v3.8.12 by vBS, Copyright ©2000-2024, vBulletin Solutions Inc.