Questions

Answer

How to use Lightbox with a flash component

Follow these steps to add Lightbox (possibility to pop-up only images) functionality to Flash files:

 

Step 1. First, download Lightbox++

Step 2. Copy the css, images and js folders from the archive in the same folder with your HTML file on your web server. This HTML file should embed the SWF file to which you want to add the Lightbox to.

If your site is running on Wordpress or Joomla, you will need to copy these folders in a new folder, let's call it lightbox, in the root of your Joomla/Wordpress site.

 

Step 3. Edit the HTML file and add these lines in the <head> section:

<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
<script src="js/prototype.js" type="text/javascript"></script>
<script src="js/scriptaculous.js?load=effects" type="text/javascript"></script>
<script src="js/lightbox++.js" type="text/javascript"></script>

Make sure you use the correct path for the above files.

For Joomla or Wordpress sites, you need to update the code, to make it point to the root lightbox folder, where you copied the Lightbox folders in step 2:

<link rel="stylesheet" href="lightbox/css/lightbox.css" type="text/css" media="screen" />
<script src="lightbox/js/prototype.js" type="text/javascript"></script>
<script src="lightbox/js/scriptaculous.js?load=effects" type="text/javascript"></script>
<script src="lightbox/js/lightbox++.js" type="text/javascript"></script>

If your site is running on Joomla, you will need to add the code right before the </head> tag of the index.php file located in your active template's folder (e.g. templates/rhuk_milkyway/index.php)

If your site is running on Wordpress you need to add the code in the <head> section of the header.php file located in your active theme's folder (e.g. wp-content/themes/twentyten/header.php)

 

Step 4 (option A). If you want to have a Lightbox Image Set (with Next and Previous buttons), right after the lines from Step 3 add these lines, otherwise go to Step 4 (option B)

<script type="text/javascript">
function GroupDelegate(id) {
 var objLink = document.getElementById(id);
 Lightbox.prototype.start(objLink);
}
</script>

 

In the body of your HTML file you’ll have to add invisible links to the images which will be displayed in the Lightbox, like this:

<a id="img1" title="First image" rel="lightbox[img]" href="images/01.jpg"></a>
<a id="img2" title="Second image" rel="lightbox[img]" href="images/02.jpg"></a>

 

Step 4 (option B). If you intend to have a single image display in Lightbox (as opposed to option A with Image set) you simply have to add these lines into the <head> section of the HTML file:

<script type="text/javascript">
function LightboxDelegate(url,caption) {
 var objLink = document.createElement('a');
 objLink.setAttribute('href',url);
 objLink.setAttribute('rel','lightbox');
 objLink.setAttribute('title',caption);
 Lightbox.prototype.start(objLink);
}
</script>

 

Step 5 (option A). If you’re using SWFObject to embed the SWF, make sure you’re having these two params (in addition to maybe other params):

params.wmode = "transparent";
params.allowscriptaccess = "samedomain";

 

Step 5 (option B). If you’re using <object> </object> tags to embed the SWF file, add these lines:

<param name="allowscriptaccess" value="samedomain">  
<param name="wmode" value="transparent">

And in the embed tag you must insert the attribute:

wmode="transparent"

 

Step 6. If the links to go to when clicking an image are specified through the XML file, the url attribute, or in some cases the link attribute, must be set like this:
1. For Step 4 (option A):

url="javascript:GroupDelegate('img1')"

2. For Step 4 (option B):

url="javascript:LightboxDelegate('images/01.jpg','First Image')"

Also, you’ll have to change the target attribute to _self like this:

target="_self"

 

Note that the Lightbox will not work if tested locally. You’ll have to test it on a HTTP server.

 

For a more detailed description visit the original blog post from codefidelity.com

Comments

Stifroc

Posted 9 years ago

I have loaded the image scroller. The scroller scrolls my images very nicely. I cannot get anything to happen when I click on an image though. I have followed the steps for adding lightbox.

I have created little thumbs of my images to look like a film strip. When you click on one of those I want it to call to the large unedited version. I believe that I have all of the locations and code navigations correct. I have gone over the code 3 times here comparing to your tutorial and I cant find where I made the mistake.

http://www.mattcorfits.com/

Thanks

FlashXML Support

Hi,

Your lightbox++.js file is missing. Upload it to this path: http://www.mattcorfits.com/js/lightbox++.js and you should have your Lightbox working.

Starmonkey

Posted 9 years ago

Hi,
i’m trying to upload the file of the scrollbar i’m using for my portfolio website gallery section on line but it doesn’t work.

if you want to have a look this is the site address: www.starmonkeydesign.com

thanks in advance

Starmonkey

FlashXML Support

Hi,

What exactly do you mean? Can you be more explicit?

Davide

Posted 9 years ago

I have this kind of error with Internet Explorer 8
In Firefox and Safari it works fine.

Can somebody help me??
Thanks very much!

This is the error:

Agente utente: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Timestamp: Fri, 30 Apr 2010 12:56:53 UTC

Messaggio: Propriet√† o metodo non supportati dall’oggetto
Linea: 567
Carattere: 3
Codice: 0
URI: http://www.sartoriasabino.it/js/effects.js

FlashXML Support

Hi,

It seems that you have a JavaScript conflict between Lightbox and Rokbox. Try to use only one, not both at the same time.

Greg Buchanan

Posted 9 years ago

How do you call this from within flash?

I am using this AS3 code for my button and it won’t work:

code

info_mc.image1_btn.addEventListener(MouseEvent.CLICK, getImage1);
function getImage1(evtObj:Event):void { var Image1:URLRequest = new URLRequest(“javascript:GroupDelegate(‘http://gelfuzion.com/p3m/images/01.gif’)”); navigateToURL(Image1);
code

Here is the URL: http://gelfuzion.com/p3m/index_flash_lightbox2.html

If you click on the P3M Info button then the orange box you can see what I am trying to do, the orange box will be a picture.
}

FlashXML Support

Hi,

First, you should use Step 4 (option B).
Secondly, you should use this code for your button:

info_mc.image1_btn.addEventListener(MouseEvent.CLICK, getImage1);
function getImage1(evtObj:Event):void { ExternalInterface.call("LightboxDelegate", "http://gelfuzion.com/p3m/images/01.gif", "Image Title"); }

Gary

Posted 9 years ago

Hi again

Thanks for the previous help, i managed to get it to work. I have now managed to get lightbox to work in my own flash file using yur above tutorial, however it works ok in IE version 7, but it will not work in firefox.

Here is my link http://www.proposedsite.co.uk/lightbox2/test01.html

I created a very simple flash file and created a button which has the following code applied to it;

on (release) { getURL(“javascript:LightboxDelegate(‘images/01.jpg’,‘First Image’)”);
}

Please could you tell me why it will not work in firefox? Thanks again, i really appreciate the help.

FlashXML Support

Hi,

You have to move the wmode=“transparent” attribute in the embed element.

Like this:

<embed src="test.swf" quality="high" [...] wmode="transparent">

Do you have a question?

you will get an answer in 24 hours, tops.

(required) Only alphanumeric characters allowed
(required) (will not be published)
Please type a message! Your message is too long! Either try to keep within 1500 characters, or contact our support team via email at support [at] flashxml.net.
(will not be published)
You mistyped the two words!
Can't read? Change the image
Format your comments using Textile: *bold*, _italic_, "link text":address, @code@
Connect to us on Facebook Follow us on Twitter Subscribe to our RSS feed
Copyright © FlashXML.net 2009 - 2019