POO en AS2

rachelb Messages postés 48 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 19 décembre 2007 - 3 mai 2006 à 15:52
Prouprou_Sensei Messages postés 517 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 24 octobre 2006 - 3 mai 2006 à 18:57
Bonjour

j'ai un problème pour débuter mon code, en effet, j'ai un clip dans lequel je souhaite créer dynamiquement d'autre clip(je ne connais pas d'avance le nombre)

le truc c que je vodrait faire ca en POO. en fait je voudrait que chaque clip enfant créer soit en réalité un classe

j'ai crée une classe Monclip :

class Monclip extends MovieClip{
    var mc:MovieClip;
    var id:Number;
   
     function Monclip(parent:MovieClip , i:Number) {
    
         this.mc = parent.createEmptyMovieClip("leclip",i);
       
    }
   
    function clique(id:Number){
        this.id = id;
        gotoAndPlay("description")
    }
}
"parent" est le clip mère. Du coup j'accéderai au clip enfant via cette classe
Si j'avait qu'un enfant à crée je ferai : var leclip = new Monclip(travaux_mc,1) par exemple mais étant donné que j'en veu plusieur je voit pas comment instantier les classe!!

je suis perdu !! aidez moi svp merci d'avance

3 réponses

Prouprou_Sensei Messages postés 517 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 24 octobre 2006 1
3 mai 2006 à 16:23
En fait l'utilisation des movieClip est plus compliquée que ca. Si tu as une classe qui herite de la classe MovieClip, tu ne peut pas l'instancier avec un new, mais juste specifier a un clip dans la bibliothèque qu'il appartient a cette classe.
Mais comme tu as commencé ici, il te suffit d'enlever le extends MovieClip car tu fait de la composition et non de l'heritage (ici ta classe possede un clip mc, mais elle n'est pas un clip).
Ensuite pour instancier plusieurs clip il te suffit de changer :
this.mc = parent.createEmptyMovieClip("leclip",i);
en
this.mc = parent.createEmptyMovieClip("leclip"+i,i);
et d'instancier avec
var leclip1:MonClip = new Monclip(travaux_mc,1)
var leclip2:MonClip = new Monclip(travaux_mc,2)
ou grace a une boucle si besoin est.

A tchao !
0
rachelb Messages postés 48 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 19 décembre 2007
3 mai 2006 à 16:28
Ba justement j'ai lié cette classe à un clip dans ma bibliothèque, donc je dois faire comment pour créer plein de clip enfant?
Tu me dis de faire:
var leclip1:MonClip = new Monclip(travaux_mc,1)
var leclip2:MonClip = new Monclip(travaux_mc,2)

suaf que je ne connais pas le nombre de clip que je dois créer!!
j'ai pensé faire un attachMovie avec le clip de la bibliothèque mais c pareil si je veux créer plein de clip et me référer à eux après la je vois pas!!
0
Prouprou_Sensei Messages postés 517 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 24 octobre 2006 1
3 mai 2006 à 18:57
Et bien si tu me que tu as liée cette classe a un clip, tui n'as pas besoin de reference vers le mc. Dans ta classe this represente le movieClip.

Ensuite quand tu a un clip de ta bibliothèque qui est liée a une classe, tu ne peut les utiliser qu'avec attachMovie.

Finalement si tu ne sais pas le nombre de clip que tu doi créer tu peux toujours utiliser un tableau pour les stocker

A tchao !
0
Rejoignez-nous