Forums Développement Multimédia

Aller au contenu

Shadowbox dans Flash

PAO Flash

9 réponses à ce sujet

#1 plagazombie

    Ceinture Blanche

  • Members
  • Pip
  • 8 messages

Posté 07 August 2008 - 13:08 PM

Bonjour,

Je suis actuellement en train de faire un site en Flash et j'aimerais que lorsque l'on clique sur certaines sections cela ouvre une Shadowbox contenant une page Html. Je n'avais aucun problème à le faire sur une page Html mais là dans Flash j'ai beau chercher je ne trouve pas la solution. Je sais que c'est faisable comme sur cet exemple http://www.yaelle.com/?p=71 mais je ne parviens pas à le faire.

Si quelqu'un connait la solution cela m'aiderait beaucoup.

Par avance merci

#2 matt-murdock

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 6851 messages

Posté 07 August 2008 - 15:30 PM

ben deja dit nous ce que tu a fait, ce qui ne marche pas, un exemple, une URL etc..

car la ...

je pourrait dire: oui c est possible! et puis debrouille toi!

tu sait qu il y a des version de lightbox dedier a flash? tu a deja testé? quelle version de shadowbox tu utilise? tu test avec quelle navigatuer? tu test online? tu est sur que tes scripts sont bien en place? que les chemins sont correcte? que tu a pas deactiver javascript?


tu a fouiller le forum? car le sujaet a deja ete aborde dans cette salle!


.... icon_neutral.gif

#3 plagazombie

    Ceinture Blanche

  • Members
  • Pip
  • 8 messages

Posté 07 August 2008 - 16:34 PM

Alors j'ai Flash 8, pour shadowbox je ne sais pas comment voir la version (si quelqu'un à une version à conseiller je suis preneur), j'ai fait le nécessaire sur une page Html avec des codes trouvés à droite à gauche dont je me suis ensuite servi pour le faire avec Flash mais j'ai essayé beaucoup de choses sans résultat, ce que je ne sais vraiment pas c'est quoi tapé dans mon lien sous flash. Pour le navigateur j'ai Firefox sur PC. Je teste sur mon ordi je n'ai pas fait de test en ligne.

J'ai cherché sur le forum mais je n'ai pa trouvé la solution. J'ai peut etre mal fait quelque chose.

#4 plagazombie

    Ceinture Blanche

  • Members
  • Pip
  • 8 messages

Posté 20 August 2008 - 17:38 PM

Je cherche toujours une solution pour faire une effet shadowbox en partant d'un site en flash, sans réponse.
Si quelqu'un ici à des infos depuis cela m'arrangerait beaucoup.
Je suis meme pret a proposer une petite participation financière à la personne qui s'occupera de me faire les pages et les codes java, xml, xhtml, AS ... ou autres nécessaire.
Pour me contacter plagazombie@free.fr
Merci

#5 AspiGeek2

    Ceinture Orange

  • Members
  • PipPipPip
  • 45 messages

Posté 28 September 2008 - 22:37 PM

Salut,

Bon moi aussi je suis sur le même projet et j'ai déjà fait plusieurs tests sans résultat.
La seule piste sérieuse que j'ai trouvé est la suivante :

http://www.nabble.com/shadowbox-from-flash-td19154879.html

Le code qu'il fournit fonctionne bien seulement il utilise d'autres librairies et je soupçonne qu'il soit en shadowbox v1.
Dans tous les cas je cherche à faire passer les paramètres relatif à certains fichiers (swf, flv etc).

Cela dit Yoo2, si tu cherches à l'utiliser juste pour des photos ou des pages html ça marche très bien avec le code du lien.

Si tu as d'autres pistes je suis preneur ! Par contre le problème reste le même avec la multibox ou autres, je sais pas comment faire passer les paramètres que l'on doit placer normalement dans l'attribut rel="param..."

@+

#6 AspiGeek2

    Ceinture Orange

  • Members
  • PipPipPip
  • 45 messages

Posté 28 September 2008 - 23:59 PM

Bon j'ai du nouveau...

Voici un lien vers le travail d'un autre membre qui marche j'ai testé, c'est simple mais il utilise lui aussi une autre bibliothèque alors que normalement en mode standalone ça devrait marcher icon_eek.gif

http://flash.mediabox.fr/index.php?showtopic=83141

Sinon il y a toujours ce lien qui peut être utile

http://mjijackson.com/shadowbox/doc/faq.html

@+

#7 AspiGeek2

    Ceinture Orange

  • Members
  • PipPipPip
  • 45 messages

Posté 29 September 2008 - 00:56 AM

Bon c'est bon pour moi...

Je suis parti du code de la page d'index du site de la shadowbox, puis j'ai utilisé le code de la FAQ en rajoutant les params width et height et en modifiant le code ci-dessous :

Action Script

var openShadowbox = function(content, player, title, width, height){
Shadowbox.open({
content: content,
player: player,
title: title,
width: width,
height: height
});
};

Pour moi c'est ok par contre je ne comprends pas pourquoi ça n'avait pas marché avant en appelant directement la fonction mais ne maîtrisant pas le javascript j'ai du me planter dans la syntaxe.

Bref en passant par la variable et en respectant la FAQ du site ça marche !

Tout ça pour en arriver là...ça craint un max icon_mrgreen.gif

@++

#8 osamwal

    Ceinture Jaune

  • Members
  • PipPip
  • 21 messages

Posté 20 October 2008 - 12:16 PM

Bonjour à toutes et à tous !

Comme beaucoup de monde me demande comment j'ouvre une galerie Shadowbox depuis un fichier Flash, PictureFlow en l'occurence, voici un petit tutto pour la communauté :

1- Préparer un fichier Javascript qui va faire l'interface entre votre anim Flash et Shadowbox.js. Celui ci aura pour rôle de pré-construire la galerie et de déclencher Shadowbox à chaque fois que Flash le lui demandera.
Voici son code :

Action Script


var galleryArray = []; // On stocke les éléments dans ce tableau
var resetzeBox = function(){galleryArray = []}; // Fonction qui vide la liste des éléments de la galerie
var add2box = function(myFlowItem){galleryArray.push(myFlowItem);}; // Fonction piloté par flash qui remplit le tableau
var openzeBox = function(id){Shadowbox.open(galleryArray, ShadowboxOptions, id);}; // Fonction qui ouvre la galerie Shadowbox en fonction des options ci-dessous et de l'indice de l'élément passé par Flash

// Les options de Shadowbox (Voir liste complète sur http://www.mjijackso...ox/doc/api.html)
var ShadowboxOptions = {
continuous : true,
counterType : "skip",
animate : true,
handleOversize : "drag",
slideshowDelay : 0,
animSequence : "sync" // Beware to don't put a "," after this last line of options... Else, massive headache to debug in IE wink.gif
}

2 - Il faut modifier légèrement la fonction open de Shadowbox pour qu'elle puisse ouvrir sur 1 item passé en variable et non sur le premier élément de la galerie. Donc à la ligne 1750 de shadowbox.js on modifie le code comme suit :

Action Script


Shadowbox.open = function(obj, opts, id){
// revert options
this.revertOptions();

// is it a link?
if(isLink(obj)){
if(typeof obj.shadowboxCacheKey == 'undefined' || typeof cache[obj.shadowboxCacheKey] == 'undefined'){
// link element that hasn't been set up before
// create on-the-fly object
obj = this.buildCacheObj(obj, opts);
}else{
// link element that has been set up before, get from cache
obj = cache[obj.shadowboxCacheKey];
}
}
// is there a shortcut to one gallery item
if(!id){id=0};
// is it already a gallery?
if(obj.constructor == Array){
gallery = obj;
current = id;
}else{

... Etc



#9 osamwal

    Ceinture Jaune

  • Members
  • PipPip
  • 21 messages

Posté 20 October 2008 - 12:48 PM

3 - Enfin dans Flash, on crée une fonction build_shadowbox(); qui va s'occuper de formater un objet shadowbox pour le passer à la fonction add2box du JS au point 1. Cette fonction part d'un objet monXML (formé avant et non détaillé) dans lequel sont stockées plusieurs tableaux reprenant toutes les caractéristiques nécessaires pour construire la galerie :
- Un premier tableau contient la liste des fichiers à ouvrir (monXML.goArray),
- Un second, la liste des titres (monXML.titleArray),
- Un troisième (optionnel), la liste des hauteurs (monXML.heightArray) du conteneur,
- Un quatrième (optionnel), la liste des largeurs (monXML.widthArray) du conteneur.
Une grosse partie de la fonction sert à identifier l'extension du fichier à ouvrir pour leur affecter le bon lecteur dans Shadowbox.

Action Script


import flash.external.*; // On importe les classes permettant de dialoguer avec Javascript

// Build Shadowbox
function build_shadowbox():Void{
ExternalInterface.call("resetzeBox");
for(var i=0;i<n_image;i++){
var item2load:Object = {}
var extArray:Array = monXML.goArray[i].split("."); // On separe les extensions du nom du fichier dans un tableau
var ext:String=extArray[extArray.length-1].toLowerCase(); // Isole l'extension du nom du fichier (en minuscule)
switch (ext)
{
case "png":
case "jpg":
case "jpeg":
case "gif":
case "bmp":
trace(i+"."+ext+" -> img");
item2load.player = "img";
break;
case "swf":
trace(i+"."+ext+" -> swf");
item2load.player = "swf";
break;
case "flv":
trace(i+"."+ext+" -> flv");
item2load.player = "flv";
break;
case "dv":
case "mov":
case "moov":
case "movie":
case "mp4":
trace(i+"."+ext+" -> qt");
item2load.player = "qt";
break;
case "asf":
case "wm":
case "wmv":
trace(i+"."+ext+" -> wmp");
item2load.player = "wmp";
break;
case "avi":
case "mpg":
case "mpeg":
trace(i+"."+ext+" -> qtwmp");
item2load.player = "qtwmp";
break;
default :
trace(i+"."+ext+" -> iframe");
item2load.player = "iframe";
break;
}
item2load.content = monXML.goArray[i];
item2load.height = parseInt(monXML.heightArray[i]);
item2load.width = parseInt(monXML.widthArray[i]);
item2load.title = monXML.titleArray[i];
ExternalInterface.call("add2box", item2load);
}
}


4 - A chaque fois que l'on veut ouvrir une Shadowbox, on fait :

Action Script


build_shadowbox();
ExternalInterface.call("openzeBox",id); // id représente le numéro de l'indice dans la galerie que l'on souhaite ouvrir.

Ne pas oublier d'inclure les JS nécessaires dans votre page html et ça devrait roulé tout seul.

Voili, Voilou !!

#10 stuntman

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 220 messages

Posté 22 June 2009 - 14:10 PM

Bonjour,

Je reprends ce post car je travaille à l'intégration d'un système de box ajax via Flash.
J'ai donc tenté d'appliquer la modif ci-dessous (qui fonctionne parfaitement sur yaelle.com) mais rien n'y fait, c'est pourquoi je post les sources, au cas où quelq'un aurait une idée ou aurait résolue le problème.

Les modifs apportées sont légères :
- ajout du nouveau fichier js
- pour le fichier js shawdowbox on ne trouve plus les lignes indiqués (une mise à jour ayant du passer là), donc j'ai insérer la version présente sur yaelle.com (l'originale était à côté).
- production d'un xml (flash/boite.xml).
- insertion du code dans ma classe AS comme suit :

Action Script



private function ClickLien (e:MouseEvent):void {
//navigateToURL(new URLRequest(e.currentTarget.Lien), e.currentTarget.modeLien);
build_shadowbox();
ExternalInterface.call("openzeBox", e.currentTarget._id);
}


qui appel la classe :

Action Script


// Build Shadowbox
function build_shadowbox():void{

ExternalInterface.call("resetzeBox");
sortie.htmlText=" truc = " + (xml.boite[idBoite].children().length()-1);
for(var i=0;i<xml.boite[idBoite].children().length()-1;i++){
var item2load:Object = {}
var extArray:Array = xml.boite[idBoite].produit[i].split("."); // On separe les extensions du nom du fichier dans un tableau
var ext:String=extArray[extArray.length-1].toLowerCase(); // Isole l´extension du nom du fichier (en minuscule)
switch (ext)
{
case "png":
case "jpg":
case "jpeg":
case "gif":
case "bmp":
trace(i+"."+ext+" -> img");
item2load.player = "img";
break;
case "swf":
trace(i+"."+ext+" -> swf");
item2load.player = "swf";
break;
case "flv":
trace(i+"."+ext+" -> flv");
item2load.player = "flv";
break;
case "dv":
case "mov":
case "moov":
case "movie":
case "mp4":
trace(i+"."+ext+" -> qt");
item2load.player = "qt";
break;
case "asf":
case "wm":
case "wmv":
trace(i+"."+ext+" -> wmp");
item2load.player = "wmp";
break;
case "avi":
case "mpg":
case "mpeg":
trace(i+"."+ext+" -> qtwmp");
item2load.player = "qtwmp";
break;
default :
trace(i+"."+ext+" -> iframe");
item2load.player = "iframe";
break;
}
item2load.content = xml.boite[idBoite].produit[i].@lien;
item2load.height = parseInt(xml.boite[idBoite].produit[i].@hauteur);
item2load.width = parseInt(xml.boite[idBoite].produit[i].@largeur);
item2load.title = xml.boite[idBoite].produit[i].@titre;
ExternalInterface.call("add2box", item2load);

}
}

Quelqu'un a t-il réussit à intégrer ce protocole ?

Fichier(s) joint(s)





1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP