Faire un trace dans mon script :s

deuval Messages postés 18 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 25 décembre 2008 - 17 déc. 2008 à 13:25
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010 - 17 déc. 2008 à 18:35
bonjour,

jai fait un script qui me permet de charger des images grace un xml. Ces images sont misent dans le clip _root.cadrechargement. Sur la scene il y a aussi 2 boutons , precedent et suivant ,nommé btPrecendent et btSuivant, chargés de faire défiler les images, tout fonctionne bien sauf que :

J'ai 1 problemes :

J'aimerais que lorsqu'on click sur une image ça affiche trace("bonjour"), tout simplement, mais tel que je l'ai fait ça ne fonctionne pas et je ne comprend pas pourquoi.

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//code a mettre dans le _root

photos_xml = new XML();
photos_xml.load("collection.xml");
photos_xml.ignoreWhite = true;
photos_xml.onLoad = function(ok) {
    //initialisation des variables
    if (ok) {
        noeuds = photos_xml.firstChild.childNodes;
        nbrPhotos = noeuds.length;

    }

    for (i=0; i<4; i++) {
        _root.cadreChargement.createEmptyMovieClip("image"+i,i);
        _root.cadreChargement["image"+i]._x = i*250;
        _root.cadreChargement["image"+i]._y = 0;

    }

    for (i=0; i<4; i++) {
        _root.cadreChargement["chargeur"+i] = new MovieClipLoader();
        _root.cadreChargement["chargeur"+i].onLoadInit = function() {
        };
        _root.cadreChargement["chargeur"+i].loadClip(photos_xml.firstChild.childNodes[i].attributes.chemin,_root.cadreChargement["image"+i]);
    }
};

for (i=0; i<4; i++) {
_root.cadreChargement["image"+i].onPress = function() {
                trace("bonjour");
            };
}

numeroImage = 0;

btSuivante.onPress = function() {
    numeroImage++;
    trace(numeroImage);
    _root.cadreChargement._x -= 250;
};

btPrecedente.onPress = function() {
    numeroImage--;
    trace(numeroImage);
    _root.cadreChargement._x += 250;
};
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
le xml au cas ou : collection.xml
///////////////////////////////////////////////////////////////////////////////////////////////////////////////

<?xml version='1.0' encoding='utf-8'?>
<collection>
    description de la photo premiere photo

    description de la photo 2 photo

    description de la photo 3 photo

    description de la photo 4 photo

</collection>

5 réponses

on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
17 déc. 2008 à 13:40
Salut,
Alors d'abord je me demande pourquoi tu initialises 3x ta boucle de façon identique ? Tu la déclares une fois et tu places tes instructions à l'intérieur, ça suffit, non? Ensuite trace() te serts uniquement à vérifier le fonctionnement de ton code dans ta boite de sortie, si tu veux que cela apparaisse sur ta page il faudra créer un TextField, non ?

@+.
telov.ch
0
deuval Messages postés 18 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 25 décembre 2008
17 déc. 2008 à 14:43
pour les boucle for, oui tu as raisons. et t'as bien compris je veux juste afficher le trace lorsque je click sur l'une des image.
0
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
17 déc. 2008 à 15:57
Et vires-moi tout ces _root, te servent à rien, si tu veux cibler, préfères le this.
Ensuite ton onLoadInit te sert à rien non plus ici, et si tu veux utiliser le trace() faut le placer correctement ...

Ton code corrigé:

photos_xml = new XML();
photos_xml.load("collection.xml");
photos_xml.ignoreWhite = true;
photos_xml.onLoad = function(ok)
{
    if (ok) {
        noeuds = photos_xml.firstChild.childNodes;
        nbrPhotos = noeuds.length;
}
    for (i=0; i<4; i++)
{
        cadreChargement.createEmptyMovieClip("image"+i,i);
        cadreChargement["image"+i]._x = i*250;
        cadreChargement["image"+i]._y = 0;
        cadreChargement.onPress = function() {
            trace("bonjour");
        }
        cadreChargement["chargeur"+i] = new MovieClipLoader();
        cadreChargement["chargeur"+i].loadClip(photos_xml.firstChild.childNodes[i].attributes.chemin,cadreChargement["image"+i]);
        cadreChargement["chargeur"+i].onLoadInit = function()
{
    //
}
}
}
numeroImage = 0;
btSuivante.onPress = function()
{
    numeroImage++;
    trace(numeroImage);
    cadreChargement._x -= 250;
}
btPrecedente.onPress = function()
{
    numeroImage--;
    trace(numeroImage);
    cadreChargement._x += 250;
}
0
deuval Messages postés 18 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 25 décembre 2008
17 déc. 2008 à 16:44
merci pour les conseils :)

mais ce que tu me donnes ne satisfait pas ma demande.Car dans ce que tu me donnes c est lorsque l'on click sur cadrechargement (qui contient les images) que le trace s'affiche, et non lorsque l'on click sur les images.

Avec ce script visuellement c est la meme chose, mais si par exemple je veux faire une action propre a l'image et bien je ne peux pas, par exemple afficher le chemin de l'image sur laquel on vient de cliquer, ou tout autre chose en relation avec l'image.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
17 déc. 2008 à 18:35
Mmmmmh ... dans ce cas je vais peut-être dire une bêtise, mais il me semble qu'il te faut d'abord récupéré l'url de l'image (ça peut se faire dans le onLoadInit) en passant par le xml, et ceci avec un objet écouteur ... enfin, je crois ...
0
Rejoignez-nous