Diaporama flash n'affiche pas les photo [Résolu]

Signaler
Messages postés
31
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
23 février 2009
-
Messages postés
34
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
23 février 2009
-
bonjour j'ai un probleme et je bute dessus depuis une bonne semaine.
j'ai récupéré un code flash ici meme pour un diaporama simple en flash avec resize des image.
il fonctionne tres bien sur mon pc quand je lance le swf
néanmoin je l'ai intégré dans une page html pour afficher mes photo:
le flash se lance bien j'ai l'interface, je voit les bouton, mais pas d'image !!!
j'ai essayé plusieur diaporama et toujours le meme résultat,  l'interface mais pas d'image et parfois meme les bouton sont figé.

voila ma page html (tout simple pour les test)

<html>
<head>
<title>Titre de la page</title>
</head>

<center>
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#3,0,0,0" width="800" height="600">
   
   
   
   
   
    </object>

</center>

</html>

et voila le code action script:

/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
/* %%%%%%%%%%%%%% CONSTANTE DE PARAMETRES %%%%%%%%%%%%%% */
//marge entre le cadre et l'image : doit etre > 0
ECART_DE_RECHERCHE = 0.1;
//largeur/hauteur d'un clip/image/bouton numero (vignette)
LARGEUR_VIGNETTE = 58.65;
HAUTEUR_VIGNETTE = 40.65;
//espacement entre les vignettes
ESPACEMENT = 5;
//interval de temps en milliseconde pour le diaporama
TEMPS_INTERVAL = 3000;
/* %%%%%%%%%%%%%% CONSTANTE DE PARAMETRES %%%%%%%%%%%%%% */
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
_root.INDICE = -1;
_root.PIC = new Array();
//ecouteurs sur chargement
Ec = new Object();
Ec.onLoadProgress = function(MCtarget, loadedBytes, totalBytes) {
    _root.loadbar.percent = Math.floor(loadedBytes*100/totalBytes);
    _root.loadbar.gotoAndStop(_root.loadbar.percent);
    _root.loadbar.percent += "%";
};
Ec.onLoadInit = function(MCtarget) {
    while (MCtarget._width>_root.cadre._width or MCtarget._height>_root.cadre._height) {
        MCtarget._xscale -= ECART_DE_RECHERCHE;
        MCtarget._yscale -= ECART_DE_RECHERCHE;
    }
    while (MCtarget._width<=_root.cadre._width and MCtarget._height<=_root.cadre._height) {
        MCtarget._xscale += ECART_DE_RECHERCHE;
        MCtarget._yscale += ECART_DE_RECHERCHE;
    }
    MCtarget._x = _root.cadre._x+(_root.cadre._width-MCtarget._width)/2;
    MCtarget._y = _root.cadre._y+(_root.cadre._height-MCtarget._height)/2;
    _root.loadbar.gotoAndStop(1);
    _root.loadbar.percent = "";
};
//objet chargement
MCloader = new MovieClipLoader();
MCloader.addListener(Ec);
//effet de la souris sur les vignettes
function setMouseEffect(clip) {
    //si la souris passe dessus
    clip.onRollOver = function() {
        this.gotoAndStop(2);
    };
    //si la souris n'est plus dessus
    clip.onRollOut = function() {
        if (_root.INDICE+1 == this.num) {
            this.gotoAndStop(4);
        } else {
            this.gotoAndStop(1);
        }
    };
    //si on clique
    clip.onPress = function() {
        this.gotoAndStop(3);
    };
    //si on relache
    clip.onRelease = function() {
        //this.gotoAndStop(1);
        _root.PREV_INDICE = _root.INDICE;
        _root.INDICE = this.num;
        B_previous.onRelease();
    };
    //si on relache hors du bouton
    clip.onReleaseOutside = function() {
        this.gotoAndStop(1);
    };
}
//objetXML
MCXML = new XML();
MCXML.load("photos.xml");
MCXML.ignoreWhite = true;
MCXML.onLoad = function(succes) {
    function Pic_Desc(n, u) {
        this.name = n;
        this.url = u;
        this.small = undefined;
    }
    if (succes) {
        //extraction des images du fichier XML
        var i = 0;
        while (this.firstChild.childNodes[i] != undefined) {
            _root.PIC[i] = new Pic_Desc(this.firstChild.childNodes[i].attributes.nom, this.firstChild.childNodes[i].attributes.url);
            if (this.firstChild.childNodes[i].attributes.mignature != undefined) {
                _root.PIC[i].small = this.firstChild.childNodes[i].attributes.mignature;
            }
            i++;
        }
        _root.MAX = i;
        //affichage des numeros d'images ou des mignatures
        for (i=1; i<=_root.MAX; i++) {
            var newClip;
            if (_root.PIC[i-1].small != undefined) {
                //chargement des vignettes si besoin.
                newClip = v_holder.holder.attachMovie("mignature", "bn_"+i, i+100);
                Ecm = new Object();
                Ecm.onLoadInit = function(MCtarget) {
                    MCtarget = MCtarget._parent;
                    MCtarget._width = LARGEUR_VIGNETTE;
                    MCtarget._height = HAUTEUR_VIGNETTE;
                    setMouseEffect(MCtarget);
                    MCtarget.num = Number(MCtarget._name.substring(3));
                };
                MCloaderm = new MovieClipLoader();
                MCloaderm.addListener(Ecm);
                MCloaderm.loadClip(_root.PIC[i-1].small, newClip.holder);
            } else {
                newClip = v_holder.holder.attachMovie("B_numero", "bn_"+i, i+100);
                newClip.num = i;
                newClip._width = LARGEUR_VIGNETTE;
                newClip._height = HAUTEUR_VIGNETTE;
                setMouseEffect(newClip);
            }
            newClip._x = (i-1)*(ESPACEMENT+LARGEUR_VIGNETTE);
            newClip._y = 0;
        }
        //pour afficher la premiere image directement
        B_next.onRelease();
    }
};
//boutons
B_next.onRelease = function() {
    //chargement de l'image selectionnée
    v_holder.holder["bn_"+(_root.INDICE+1)].gotoAndStop(1);
    v_holder.holder["bn_"+(_root.PREV_INDICE+1)].gotoAndStop(1);
    _root.INDICE++;
    if (_root.INDICE == _root.MAX) {
        _root.INDICE = 0;
    }
    _root.MCloader.loadClip(_root.PIC[_root.INDICE].url, "_root.holder");
    _root.desc = _root.PIC[_root.INDICE].name;
    v_holder.holder["bn_"+(_root.INDICE+1)].gotoAndStop(4);
    v_holder.slideTo(_root.INDICE);
};
B_previous.onRelease = function() {
    //chargement de l'image selectionnée
    v_holder.holder["bn_"+(_root.INDICE+1)].gotoAndStop(1);
    v_holder.holder["bn_"+(_root.PREV_INDICE+1)].gotoAndStop(1);
    _root.INDICE--;
    if (_root.INDICE<0) {
        _root.INDICE = _root.MAX-1;
    }
    _root.MCloader.loadClip(_root.PIC[_root.INDICE].url, "_root.holder");
    _root.desc = _root.PIC[_root.INDICE].name;
    v_holder.holder["bn_"+(_root.INDICE+1)].gotoAndStop(4);
    v_holder.slideTo(_root.INDICE);
};
B_diapo.sw = false;
B_diapo.onRelease = function() {
    if (!sw) {
        inter = setInterval(B_next.onRelease, TEMPS_INTERVAL);
        sw = true;
        _root.raye._alpha = 0;
    } else {
        clearInterval(inter);
        sw = false;
        _root.raye._alpha = 100;
    }
};
//**********************************************************************
//********************* ECOUTEUR SUR LE CLAVIER ************************
//**********************************************************************
var keyListener = new Object();
keyListener.onKeyDown = function() {
    switch (Key.getCode()) {
    case Key.RIGHT :
        B_next.onRelease();
        break;
    case Key.LEFT :
        B_previous.onRelease();
        break;
    case Key.SPACE :
        B_diapo.onRelease();
        break;
    }
};
Key.addListener(keyListener);

alors je sait pas quel actionscript cela est mais c'est le seul diaporama avec resize des image qui fonctionne nickel. j'essai daprendre l'AS3.

si vous pouviez m'aider svp

Cordialement tazagaga.

7 réponses

Messages postés
34
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
23 février 2009

salut,

Pour ma part le swf doit etre dans la meme racine que le html, par contre rien ne t empeche d avoir tes photo dans un autre repertoire, ce quil faut dans ton xml c lui donnée un chemin absolue.

voili voilou
Messages postés
31
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
23 février 2009

A propos du chemin relatif dans un xml pour les photo d'un diaporama


OK c'est bon je met la solution trouvé si ca peut en aidé certain.
merci beaucoup au passage
voila un shéma de mon implentation:

//dossier
monsite
//sous dossier
=>index.php
=>mon_flash
=>mon_xml
=>ma_photo

et il me faut:

//dossier
monsite
//sous dossier
=>index.php
=>mon_flash
=>mon_xml
=>mon_fichier_de_photo
           //sous sous dossier
            =>ma_photo

voila un exemple de mon xml:
avant:
<?xml version='1.0' encoding='UTF-8' ?>
<root>
   
</root

remarque: le miniature est présent car il s'agit d'un diaporama avec des photo afficher en miniature avant visionnage.
il nous reste simplement a mettre le chemin relatif.

<?xml version='1.0' encoding='UTF-8' ?>
<root>
   
</root>

a propos du visionnage du flash sur une page html/php sous IE ou firefox

car c'était un de mes probleme au moment ou jai posé ce  post.

pour s'éxécuter le flaash a besoin d'un fichier "AC_RunActiveContent" que vous pouvez mettre dans un sous dossier "script"
néanmoins le flash  a besoin d'etre dans le meme dossier que la page html/php qui l'affiche
voila ce qu'il faut mettre dans le <head></head> de votre page:

<head>
<script language="javascript">AC_FL_RunContent = 0;</script>
<script src="Script/AC_RunActiveContent.js" language="javascript"></script>   //voyez ici le sous dossier script contenant le fameux fichier
</head>
//puis ce code dans le body

<script language="javascript">
                                    if (AC_FL_RunContent == 0) {
                                        alert("Cette page nécessite le fichier AC_RunActiveContent.js.");
                                    } else {
                                        AC_FL_RunContent(
                                            'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
                                            'width', '200',
                                            'height', '200',
                                            'src', 'menu',
                                            'quality', 'high',
                                            'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
                                            'align', 'middle',
                                            'play', 'true',
                                            'loop', 'true',
                                            'scale', 'showall',
                                            'wmode', 'window',
                                            'devicefont', 'false',
                                            'id', 'menu',
                                            'bgcolor', '#cccccc',
                                            'name', 'menu',
                                            'menu', 'true',
                                            'allowFullScreen', 'false',
                                            'allowScriptAccess','sameDomain',
                                            'movie', 'menu',
                                            'salign', ''
                                            ); //end AC code
                                    }
                                </script>
//il ya plein de trruc je ne sait meme pas a quoi cela sert mais sa fonctionne comme ca. en approfondissant ce sont plein d'option que vous n'aurez surement pas besoin
//puis votre fichier flash qui s'apelle ici "menu.swf"
<noscript>
                                    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="600" height="400" id="menu" align="middle">
                                   
                                   
                                   
                                   
                                       
                                   
                                    </object>
                                </noscript>

voila j'ai pas mal galéré mais c'est en forgeant que l'on devient forgeron. en espérans que cela aide d'autre personne, vous gagnerez du temp pour les débutant comme moi :D

merci a zairino de m'avoir aidé a trouver la solution

a+ all
Messages postés
1671
Date d'inscription
dimanche 6 mars 2005
Statut
Membre
Dernière intervention
21 juillet 2013
4
salut
tu devrais poser la question directement a l'auteur de la source a l'endroit ou tu as recupere ce script sur ce site
bonne continuation
a+
Messages postés
31
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
23 février 2009

le probleme c'est que c'est une source qui date, il n"y a plus de suivi edssus.
et je vien de découvrir pire, j'ai mis le fichier HTML sous wamp (car je pensait qu'il y avait un probleme de serveur avec l'envoie de donnée javascript) et la j'ai meme pas de flash qui s'affiche -_-".
Messages postés
34
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
23 février 2009

salut,
alors une chose tous simple ton fichier xml html et tes photo son sous le meme repertoire?
Messages postés
31
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
23 février 2009

mon xml et photo son sous le meme repertoire le fichier html est sur un repertoire au dessus.
quand je met tout dans le meme repertoire  ca fonctionne, mais ca met le bordel dans le fichier car j'ai une 50 aine de photos avec mes flash plus mes pages. c'est ingerable.
et ouais je vien de découvrir pour qu'un flash fonctionne bien il doit etre dans le meme reprtoire que la page .
mais est ce vraiment obligé ?? on ne peut pas jouer avec le "run active content" et les flash ?
Messages postés
34
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
23 février 2009

Denada et a bientot... content que sa fonctionne pour toi.