Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/08/2007, 23h47   #1
Invité de passage
 
Inscription : août 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 3
Points : 0
Points : 0
Par défaut Comment dupliquer un movieclip construit avec les addchild

Voila..je suis en pleine recheche d'une solution me permettant de pouvoir dupliquer un movieclip fabriquer a partir d'autre movieclip


alors imaginons 2 clip ..IC1 avec un carre dessine dedans
et IC2 un rond..je met le clip IC2 dans IC1 et je veux afficher seulement IC1
qui possede le rond et le carre

voici un exemple du code :

Code :
1
2
3
4
5
var IC1:MovieClip = new Class_Icones();
var IC2:MovieClip = new Class_Inners();
 
IC1.addChild(IC2)
addChild (IC1)
jusque la tout va bien..je peux voir mon clip IC2 lorsque
j'affiche IC1..mais ensuite je veux dupliquer IC1..

voici mon code qui ne fonctionne pas...

Code :
1
2
3
4
5
6
7
8
9
// Ici la creation des clips
for (var i = 0; i<numOfItems; i++) {
	Angle[i] = i*((Math.PI*2)/numOfItems);
	ClipTab[i] = new Class_Icones()  
	ClipTab[i].x = Math.cos(Angle[i])*radiusX+centerX;
	ClipTab[i].y = Math.sin(Angle[i])*radiusY+centerY;
	this.addChild(ClipTab[i]);
 
}
il m'affiche effectivement l'image de IC1..mais pas celui de IC2...

je sais que mon code est faux, mais si kkl un trouve la solution cela me soulagerais merci...
jaykby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 23h50   #2
Invité de passage
 
Inscription : août 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 3
Points : 0
Points : 0
Par défaut arf..j'oublias

ClipTab[i] est un tableau defini comme

ClipTab: Array = new Array()

voial et encore merci pour vos reponses
jaykby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 11h25   #3
Membre actif
 
Inscription : avril 2007
Messages : 126
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2007
Messages : 126
Points : 150
Points : 150
Par défaut Inclusion de IC2

Ca me semble être juste une erreur d'inattention...

Je pense que tu as oublié une ligne du genre:
Code :
ClipTab[i].addChild(new Class_Inners());
Evidemment, si tu veux pouvoir contrôler ton IC2, il va falloir que tu construises un second Array en parallèle, du genre:
Code :
1
2
ClipTabBis[i] = new Class_Inners();
ClipTab[i].addChild(ClipTabBis[i]);
David Buff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2007, 00h00   #4
Invité de passage
 
Inscription : août 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 3
Points : 0
Points : 0
Ah ..ok..je suis donc obliger de le faire pour tous les clips que j'inclus..
voila..je comprends mieux..en fait mon erreur etait de penser que je n'avais qu'a le faire une fois dans un clip puis de multiplier celui ci en pensant que tous les autres y aurait été inclus..mais erreur..
okok

merci beaucoup pour tes lumières..
jaykby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 12h33   #5
Membre actif
 
Inscription : avril 2007
Messages : 126
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2007
Messages : 126
Points : 150
Points : 150
Heu...

Dis, t'as édité le code tu premier message du thread non? Vaut mieux refaire un message à la suite des autres, sinon on comprend plus rien si le premier message n'est plus le même... Enfin... je me rappelle plus... (je sais plus si je suis en train de répondre deux fois à la même question ou à deux questions différentes)

Je sais pas exactement ce que tu veux faire... si tu veux construire un clip dynamiquement, puis te servir de ce modèle pour le répéter autant de fois que tu le désires... il n'y a pas de fonction qui copie un clip. Tu dois la programmer.

Il faut savoir aussi qu'un objet ne peut avoir qu'une seule représentation à l'écran: si tu crée deux IC1 et un IC2, que tu fais IC1_A.addChild(IC2), il apparaitra dans le IC1_A, puis si tu fais IC1_B.addChild(IC2), il apparaitra dans le IC1_B, mais plus de le IC1_A. En ce cas, tu devrais créer deux IC2.

Ce que je comprends pas, c'est pourquoi tu veux faire une copie. Si tu as créé le clip dynamiquement, cela veut dire que tu en connais la structure, et donc que tu peux en créer un nouveau similaire... ce qui est plus facile que de copier un clip.

Cependant, pour tenter de répondre à ta question, si tu veux copier un clip, il faut programmer une méthode récursive qui parcours toute l'arborescence graphique de ton clip, en en reconstruissant un en parallèle, en tentant au mieux de lui attribuer les mêmes paramètres. Mais il y en a tellement que je doute que cela puisse être programmé de manière solide, efficace et marchant dans tous les cas.

Dans ce thread, http://www.developpez.net/forums/sho...d.php?t=400454, tu trouveras une méthode qui parcours le clip qui pourrais te montrer une voie possible par rapport à ce que tu veux faire... si j'ai bien compris ce que tu veux...
David Buff est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h38.


 
 
 
 
Partenaires

Hébergement Web