J'ai un problème pour faire disparaitre une image en action script

dams2007 Messages postés 3 Date d'inscription dimanche 4 juin 2006 Statut Membre Dernière intervention 22 avril 2007 - 22 avril 2007 à 20:03
Darkrats Messages postés 212 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 12 mai 2008 - 23 avril 2007 à 09:23
Salut à tous, j'espère que quelqu'un pourra m'aider, je débute en action script et G un souci pour faire disparaitre une image que j'ai chargé en externe pour en charger une autre. Avec ce code mes images s'ajoute les unes à la suite des autres sans disparaitre.

bouton_mc.onRelease = function ()
{
    this.loadMovie("image.jpg");
    this._x = -300;
    this._y = -500;    this._xscale this._yscale this._yscale / 4;
}
;
bouton_mc1.onRelease = function ()
{
    this.loadMovie("image1.jpg");
    this._x = -300;
    this._y = -500;    this._xscale this._yscale this._yscale / 4;
}
;

je pense qu'il faudrait que je rajoute une condition mais quoi exactement je suis à l'ouest totale

4 réponses

Bboy_Minh Messages postés 16 Date d'inscription vendredi 30 septembre 2005 Statut Membre Dernière intervention 3 juillet 2007
22 avril 2007 à 20:20
Hello,

Dans tes 2 fonctions, tu utilises this. qui fait référence à l'objet dans lequel tu te situes... c'est un concept de la programmation objet, concrètement dans ton code pour le bouton bouton_mc, lorsque tu utilises this. tu fait référence à bouton_mc. Donc tu peux remplacer le this. par bouton_mc ça ne changerait rien.
Idem pour bouton_mc1.

En réalité ce n'est pas le bouton qui doit charger l'image mais ton movieclip.
Tu dois donc remplacer tous les this. par le nom d'occurence de ton movieClip. Et ça devrait fonctionner.

Sinon côté pratique, tu écris deux fois :
    this._x = -300;
    this._y = -500;    this._xscale this._yscale this._yscale / 4;

Ce qui n'est pas nécessaire, positionne et redimensionne ton movieClip au moment où tu le créé si tu le fait de manière dynamique sinon au début de ta page de code hors de tes 2 fonctions sur clic de tes boutons.
0
dams2007 Messages postés 3 Date d'inscription dimanche 4 juin 2006 Statut Membre Dernière intervention 22 avril 2007
22 avril 2007 à 21:41
j'ai essayé et ça ne fontionne toujours pas, par contre tu avais raison  pour this. à remplacerpar bouton_mc, C vrai que ça ne change rien.

Pour le
this._x = -300;
this._y = -500;this._xscale this._yscale this._yscale / 4;

C normal qu'il soit présent deux fois car ne n'est pas une version finale, après maes images n'auront pas la même taille donc je pourrais les caller comme je veux.
0
dams2007 Messages postés 3 Date d'inscription dimanche 4 juin 2006 Statut Membre Dernière intervention 22 avril 2007
22 avril 2007 à 21:50
je suis deg je suis sûr que C un tout petit détail pour que ça fontionne.
0
Darkrats Messages postés 212 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 12 mai 2008 1
23 avril 2007 à 09:23
Salut,

Alors comme l'a si bien expliqué Bboy_Minh, ton code remplace actuellement ton bouton_mc par ton image jpg.
Lorsque tu fais appel à la fonction loadMovie, celle-ci écrase le clip conteneur par la cible.
Dans le cas du code : clip_conteneur.loadMovie("image.jpg");
le clip "clip_conteneur" va être remplacer par l'image, les actions qui lui sont associées seront donc supprimées, etc.

Dans ton cas, le fait d'utiliser this.loadMovie("image.jpg") dans la fonction bouton provoque l'écrasement du bouton et donc la perte du bouton.

Je te conseillerai donc d'utiliser un clip conteneur qui serait au même niveau que le code de tes boutons et de faire un code comme ceci :
Code :
    bouton_mc.onRelease = function (){
        // Création dans le clip conteneur d'un clip vide qui recevra ton image
        conteneur.createEmptyMovie("image1", conteneur.getNextHighestDepth());
        // Chargement de ton image
        conteneur.image1.loadMovie("image.jpg");
        // Redimensionnement
        conteneur.image1._x = -300;
        conteneur.image1._y = -500;        conteneur.image1._xscale conteneur.image1._yscale conteneur.image1._yscale / 4;
    }
Fin du code

Par contre, j'ai un peu de mal à saisir ta question, tu veux faire quoi exactement ?
Supprimer l'image directement et la remplacer par la nouvelle ou faire une animation de disparition etc ?

Si tu veux simplement la remplacer tu peux faire ceci :
Code :

    bouton_mc.onRelease = function (){

        // Nettoyage du clip conteneur
        conteneur.image.removeMovieClip();
        // Création dans le clip conteneur d'un clip vide qui recevra ton image

        conteneur.createEmptyMovie("image", conteneur.getNextHighestDepth());

        // Chargement de ton image

        conteneur.image.loadMovie("image.jpg");

        // Redimensionnement

        conteneur.image._x = -300;

        conteneur.image._y = -500;

        conteneur.image._xscale conteneur.image._yscale conteneur.image._yscale / 4;

    }

    bouton1_mc.onRelease = function (){

        conteneur.image.removeMovieClip();

        conteneur.createEmptyMovie("image", conteneur.getNextHighestDepth());

        conteneur.image.loadMovie("image.jpg");


        conteneur.image._xscale conteneur.image._yscale conteneur.image._yscale / 4;

    }

ou mieux encore si tes boutons font tous la même chose :



    bouton_mc.onRelease bouton1_mc.onRelease function (){


        conteneur.image.removeMovieClip();


        conteneur.createEmptyMovie("image", conteneur.getNextHighestDepth());


        conteneur.image.loadMovie("image.jpg");



        conteneur.image._xscale conteneur.image._yscale conteneur.image._yscale / 4;


    }

Fin du code

Voilà, comme ça, tu replaceras toujours la nouvelle image dans le même clip, tu effaceras toujours l'image précédente.

--------- Darkrats ---------
la loi est dure mais c'est la loi
 -------- Infograpix --------
0
Rejoignez-nous