...

View Full Version : Help on making multiple instances of a script work on a page.



Tyree
09-24-2003, 05:28 PM
I am wanting to put 6 slide shows on one page...however, when I do so using the same script (which is self-contained, no script in the head tag) only the last instance on the page works.

I have tried adding numbers to the end of all the variables that I know of...to no avail.

Would someone mind looking at this page
http://www.craddockcunningham.com/indextemp.html
and giving the code a quick look. I know it's bound to be something simple, I'm just not catching it.

Thanks a ton!
Matt Tyree

beetle
09-24-2003, 05:57 PM
I've got a slideshow that allows multiple instances. My demo page (http://www.peterbailey.net/dhtml/oo_slideshow.htm) has 4, but 6 is certainly possible. Let me know if you like what you see.

Tyree
09-24-2003, 06:07 PM
I like that a lot actually. What's the catch?:)

Thanks!
Matt

beetle
09-24-2003, 06:10 PM
Nothing, just keep the copyright in tact, and inform me post-haste of any bugs you might find.

http://www.peterbailey.net/dev/jsclasses/

Enjoy.

Tyree
09-24-2003, 06:21 PM
One question....does the slide show allow me to input a separate link for each image in the slideshow...a link that can pop up in a new window? The goal is to have a larger version of each image in the slideshow pop up in a new window.

Thanks!!!

beetle
09-24-2003, 07:25 PM
Yes, the demo page includes a link to the demo w/links.

Tyree
09-24-2003, 08:35 PM
Oh my dear goodness...this is gonna take a bit to figure out!:D

beetle
09-24-2003, 09:23 PM
You won't need to change anyting in the class code - it's just how you create slideshows that changes. I haven't written any docs for this, so lemme know if you get stuck.

Tyree
09-24-2003, 09:31 PM
I am a bit stuck...

It's doing something very bizarre...as far as I can tell I have placed the 6 shows as you did the 4 on your demo...but only my first show plays...and when it does it plays the first slides really fast and then stops....the rest just load the first image and stop.

Any help would be most appreciated...Here's the test url:

http://www.craddockcunningham.com/indextest.html

Thanks!
Matt

beetle
09-24-2003, 09:46 PM
First thing I see wrong is that you're running the play method on the first instance, ss1, each time. You need enact the play method for each instance, so
function init()
{
var delay = 2500;
var imgRoot = 'http://www.craddockcunningham.com/images/job_pics/adapt/';

var ss1 = new SlideShow( 'slide1', 'slide1Link', '', '', imgRoot, 'resiData', 1, 0);
var ss2 = new SlideShow( 'slide2', 'slide2Link', '', '', imgRoot, 'eccData', 1, 0);
var ss3 = new SlideShow( 'slide3', 'slide3Link', '', '', imgRoot, 'commData', 1, 0);
var ss4 = new SlideShow( 'slide4', 'slide4Link', '', '', imgRoot, 'muniData', 1, 0);
var ss5 = new SlideShow( 'slide5', 'slide5Link', '', '', imgRoot, 'adaptData', 1, 0);
var ss6 = new SlideShow( 'slide6', 'slide6Link', '', '', imgRoot, 'indeData', 1, 0);

ss1.play( delay );
ss2.play( delay );
ss3.play( delay );
ss4.play( delay );
ss5.play( delay );
ss6.play( delay );
}

Tyree
09-24-2003, 09:54 PM
Okay...in the end they will all have different image roots....so what then? The way you just showed seems to make them all have the same root. I was setting them all up separately as you did in your demo with the 4 shows.

Thanks so much for your help, by the way!!!

Tyree
09-24-2003, 09:56 PM
Nevermind...if I had payed attention I would have seen what you did...just made those two things reoccuring variables...So, how is that different from how I did it? I had each show play as well.

Tyree
09-24-2003, 09:58 PM
LOL...maybe I should reserve comment until I actually LOOK at my code...I see what you mean...I still had "ss1" for all 6 instances.

Thanks!!! :D

beetle
09-24-2003, 09:59 PM
Hehe, no problem.

And yes, I just made the root and delay variables for brevity's sake :D

Tyree
09-24-2003, 10:03 PM
Okay...Man...this is a good script...

I just added the filters/wipes to them....but I can't upload the working file yet...stupid server is messed up. I will let you know when I get it. Like to get your thumbs up on it.

Are there any other filter effects you can do besides the wipe?

Tyree
09-24-2003, 10:10 PM
You're gonna want to hurt me by the time this is done...but...

What variable makes it loop? Right now it's getting to the last pic and stopping. It keeps doing the wipe...but the same picture remains.

beetle
09-24-2003, 10:41 PM
Originally posted by Tyree
Are there any other filter effects you can do besides the wipe? Yup (http://msdn.microsoft.com/workshop/author/filter/filters.asp). Just know that they only work on IE - other browsers just see a plain image swap.

Ya, let me know when it's uploaded - I'd like to see :D

beetle
09-24-2003, 10:42 PM
Just change the last parameter to a boolean true - changing the 0 to a 1 or the literal true will work fine

Tyree
09-24-2003, 11:14 PM
Thank you soooo much for your help today!!!

I just have a couple more questions:

I have it uploaded now...can you tell me why in IE the last 3 don't play? Gives me an error on line 64, char 3...which, from what I can tell is the play handler for show number 5...any ideas?

Also, is it possible to make the links load in a new window?

http://www.craddockcunningham.com/indextest.html

Thanks,
Matt

beetle
09-24-2003, 11:35 PM
Your muniData array has a misplaced comma at the end - just after the last slide, thus creating and empty, "undefined" index.

ABout the links in the new window, you have two options. 1) Just use HTML
<a href="somelink.htm" [B]target="_blank">link</a>Or, 2) Change lines 32 and 33 in the class code
if ( linkId != '' )
this.link = document.getElementById( linkId );To this
if ( linkId != '' )
{
this.link = document.getElementById( linkId );
this.link.onclick = function()
{
window.open( this.href, "_blank" );
return false;
}
}
Additionally, you'd gain some efficiency, readability, and editability but creating variables for your filters and delays.


var delay = 3000;
var fadeFilter = 'progid:DXImageTransform.Microsoft.Fade(duration=1, overlap=0.0)';
var wipeFilter = 'progid:DXImageTransform.Microsoft.GradientWipe(duration=1)';

var ss1 = new SlideShow('slide1','slide1Link','','','images/job_pics/res/','resiData',1,1);
ss1.addFilter( fadeFilter );
ss1.addFilter( wipeFilter );
ss1.play( delay );

var ss2 = new SlideShow('slide2','slide2Link','','','images/job_pics/ecc/','eccData',1,1);
ss2.addFilter( fadeFilter );
ss2.addFilter( wipeFilter );
ss2.play( delay );

// Etc...

beetle
09-24-2003, 11:36 PM
Also, since you're using this commercially, I wouldn't balk at a little donation :D

Not required, though - just not my style :cool:

Tyree
09-25-2003, 12:10 AM
THANKS!! :D

Give me an address and I'll send you some cashola. You definitely deserve it after all your help!

Thanks again!!!
Matt

beetle
09-25-2003, 07:27 AM
I sent you a PM.

Tyree
09-25-2003, 03:26 PM
Okay...here's the site close to what the final will be.
http://www.craddockcunningham.com/indextest.html

Thanks so much for all your help!!!
Take care!
Matt



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum