pat_morita
Mitglied
hi,
eigentlich bin ich Flasher und Javascript is nicht wirklich meine Welt. Dennoch eine für mich diffizil Frage.
Wer "Lightbox" kennt, weiß, daß es eine Gallery auf Ajax/Javascript basis ist. Das Script wurde mal angepaßt, um es aus FLASH heraus aufrufen zu können. Und da greift mein Problem. Das Script unterscheidet zwei Fälle. Sind die Bilder Einzelbilder oder Bilder eines Sets? Die Links, die normalerweise aus HTML übergeben werden lauten
EINZELBILD:
SERIENBILD:
Das entsprechende Javascript (gekürzt):
Jetzt wurde das Script geändert (nicht von mir) um es aus FLASH heraus aufrufen zu können:
In Flash produziere ich dann den Link dazu, der an JS übergeben wird. FLash-Code:
Damit kommt beispielsweise solch ein Link heraus:
Soweit funktioniert das auch. Der Titel wird als String übergeben, damit greift die ELSE routine im JS nicht mehr.
Wie richte ich das java script ein, damit die Bilder als SERIE dargestellt werden? Also entweder... wie übergebe ich aus FLash die INFO oder wie ändere ich das Script ab...
viel zu lesen... ich weiß...
hoffe trotzdem daß mir jemand helfen kann. hier noch ein Link zum kompletten Script
>KLICK MICH<
lg pat
eigentlich bin ich Flasher und Javascript is nicht wirklich meine Welt. Dennoch eine für mich diffizil Frage.
Wer "Lightbox" kennt, weiß, daß es eine Gallery auf Ajax/Javascript basis ist. Das Script wurde mal angepaßt, um es aus FLASH heraus aufrufen zu können. Und da greift mein Problem. Das Script unterscheidet zwei Fälle. Sind die Bilder Einzelbilder oder Bilder eines Sets? Die Links, die normalerweise aus HTML übergeben werden lauten
EINZELBILD:
PHP:
<a href="http://www.tutorials.de/forum/images/image-1.jpg" rel="lightbox" title="my caption">image #1</a>
PHP:
<a href="http://www.tutorials.de/forum/images/image-1.jpg" rel="lightbox[roadtrip]">image #1</a>
Das entsprechende Javascript (gekürzt):
PHP:
start: function(imageLink) {
if (!document.getElementsByTagName){ return; }
var anchors = document.getElementsByTagName( imageLink.tagName);
// if image is NOT part of a set..
if((imageLink.getAttribute('rel') == 'lightbox')){
// add single image to imageArray
imageArray.push(new Array(imageLink.getAttribute('href'), imageLink.getAttribute('title')));
} else {
// if image is part of a set..
// loop through anchors, find other images in set, and add them to imageArray
for (var i=0; i<anchors.length; i++){
var anchor = anchors[i];
if (anchor.getAttribute('href') && (anchor.getAttribute('rel') == imageLink.getAttribute('rel'))){
imageArray.push(new Array(anchor.getAttribute('href'), anchor.getAttribute('title')));
}
}
imageArray.removeDuplicates();
while(imageArray[imageNum][0] != imageLink.getAttribute('href')) { imageNum++;}
}
}
Jetzt wurde das Script geändert (nicht von mir) um es aus FLASH heraus aufrufen zu können:
Code:
start: function(imageLink) {
if (!document.getElementsByTagName){ return; }
(typeof imageLink == 'string') {
var splitIdx = imageLink.indexOf('|')
var imageTitle = splitIdx != -1 ? imageLink.substr(splitIdx + 1) : ''
splitIdx != -1 ? imageLink = imageLink.substr(0, splitIdx) : null
imageArray.length = 0
imageArray.push(new Array(imageLink, ((isMSIE) ? decode_utf8(imageTitle) : imageTitle)));
}
else {
var anchors = document.getElementsByTagName( imageLink.tagName);
// if image is NOT part of a set..
if((imageLink.getAttribute('rel') == 'lightbox')){
// add single image to imageArray
imageArray.push(new Array(imageLink.getAttribute('href'), imageLink.getAttribute('title')));
} else {
// if image is part of a set..
// loop through anchors, find other images in set, and add them to imageArray
for (var i=0; i<anchors.length; i++){
var anchor = anchors[i];
if (anchor.getAttribute('href') && (anchor.getAttribute('rel') == imageLink.getAttribute('rel'))){
imageArray.push(new Array(anchor.getAttribute('href'), anchor.getAttribute('title')));
}
}
imageArray.removeDuplicates();
while(imageArray[imageNum][0] != imageLink.getAttribute('href')) { imageNum++;}
}
}
In Flash produziere ich dann den Link dazu, der an JS übergeben wird. FLash-Code:
PHP:
on (release) {
var imgPath = 'meinedomain/bilder/bild.jpg'
var imgTitle = 'Bla Fasel und überhaupt'
getURL("javascript:myLightbox.start('" + imgPath + ((imgTitle != '') ? '|' + escape(imgTitle) : '') + "')");
}
Damit kommt beispielsweise solch ein Link heraus:
PHP:
javascript:myLightbox.start('http://meinedomain.com/bilder/bild.jpg|Bla Fasel und überhaupt')
Soweit funktioniert das auch. Der Titel wird als String übergeben, damit greift die ELSE routine im JS nicht mehr.
Wie richte ich das java script ein, damit die Bilder als SERIE dargestellt werden? Also entweder... wie übergebe ich aus FLash die INFO oder wie ändere ich das Script ab...
viel zu lesen... ich weiß...
hoffe trotzdem daß mir jemand helfen kann. hier noch ein Link zum kompletten Script
>KLICK MICH<
lg pat