Comment rendre "clicable" un duplicatemovieclip

Tom C Messages postés 7 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 20 septembre 2006 - 27 août 2006 à 03:37
shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008 - 27 août 2006 à 15:56
Bonjour,

J'ai un MC nommé lampe, avec un linkage lampe, dans ma bibliothèque. (c'est l'image d'une lampe torche)
Je souhaite, en cliquant dessus, qu'un double apparaisse à l'écran.
J'arrive à le faire avec un duplicateMovieClip mais ensuite, je ne peux pas cliquer sur ces duplicates (alors que je souhaiterais par exemple les déplacer aussi en Drag & Drop).
Comment faire?
Merci d'avance.
voici mon code:

var ex=0;
lampe.onPress = function() {
    this.startDrag()
    ex++;
    this.duplicateMovieClip("lampe"+ex,ex);
    //_root.attachMovie("lampe","lampe"+ex,this.getNextHighestDepth(), {_x:100, _y:100});
    _root["lampe"+ex]._x=50+10*ex;
    _root["lampe"+ex]._y=50+10*ex;
};
lampe.onRelease = function() {
    stopDrag();
};

après, aucun effet avec un:
lampe0.onPress = function(){

    this.startDrag();

};
ou un:
_root["lampe"+ex].onRelease = function(){
    stopDrag();
};

Est-ce lié au linkage des duplicates? D'ailleurs, quel est-il? Peut-on le nommer soit même avec une commande type lampe0._linkage = lampe0?

NB: également, pourquoi avec la ligne _root.attachMovie("lampe","lampe"+ex,this.getNextHighestDepth(), {_x:100, _y:100}); que j'ai laissé en commentaire, ça ne marche pas, à savoir qu'à chaque clic, je crée un nouveau MC mais celui d'avant disparait? (et c'est toujours non clicable)?

4 réponses

shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
27 août 2006 à 11:19
salut

les fonctions liée a un clip que tu duplicate ne sont pas 'recopier' donc il faut les redéfinir pour chaque clip.
soit tu fait simpliste
clip=this.duplicateMovieClip("lampe"+ex,ex);
clip.onPress = function(){
....
}
....

soit tu regarde du coté des classes ou prototype qui te ferais la recopie 'automatiquement'
pour ton attachMovie je sait pas trop mais tu melange du root et du this. et sache que pour faire un duplicate le linkage n'est pas nécésaire.
petit rappel : duplicate : cela duplique un clip deja existant dans l'animation via son nom d'instance.
                    attach : cela crée une instance d'un clip via un symbole contenu dans la library (et c'est ici que l'on a besoin du linkage)

En espérant t'avoir aidé un petit peu ;)
<hr />Venez que je vous vide de votre sang ^^
0
Tom C Messages postés 7 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 20 septembre 2006
27 août 2006 à 13:15
Bah, en fait, pas complétement, mais je viens de trouver une parade:
mon objectif est de pouvoir faire du Drag & Drop sur les copies.
J'ai donc inséré le code:
this.onPress = function () {
    this.startDrag();
};
this.onRelease = function () {
    stopDrag ();
};
.... directement dans le symbole movieclip "lampe". (Edit MC puis clic dans la fenêtre hors symbole).. (je viens de découvrir qu'on pouvait coder dans le symbole:!).

Du coup, dès le départ, le MC "lampe" que je veux dupliquer est "Drag & Dropable"..
Ensuite, j'ai créé un autre MC "double" sur la scène avec le code:
    double.onPress = function() {
    ex++;
    tempo = _root.attachMovie ("lampe","lampe"+ex,ex);
    tempo._x=50+10*ex;
    tempo._y=50+10*ex;
   };

Et là, ça marche. A chaque clic sur "double", j'ai une copie de "lampe" que je peux "drag & drop"
0
bibi_81 Messages postés 345 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 25 octobre 2007
27 août 2006 à 14:57
tu peux simplement faire movieclip.onRelease = function(){}
Wala ^^
0
shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
27 août 2006 à 15:56
Et bien voula la plupart du tps on trouve tout seul les solutions a nos problémes ^^
C'est comme ca que l'on apprend ;)

<hr />http://www.carton.c.la
0
Rejoignez-nous