begin process at 2012 05 27 06:48:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

creation et suppression dynamique de clip [AS2]


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

creation et suppression dynamique de clip [AS2]

mardi 4 mai 2010 à 17:47:07 | creation et suppression dynamique de clip [AS2]

mamelon04

Bonjour,

Après avoir longuement recherché sur le net et ne trouvant pas de solution ni même d'indication pouvant résoudre mon problème, je viens vous demander de l'aide.

problème : Je crée de façon dynamique (attacheMovie) un certain nombre de clip. Le problème se trouve lors de la suppression de ces clips.

le programme que j'écris consiste en une sorte de space invader avec un mouton et des loups...
Dans ma bibliothèque j'ai un clip nommé "ennemis".


pour créer les ennemis :
Code ActionScript :
function creaEnnemis(){
	var i;
	
	//on crée le nombre d'ennemis voulu :
	for(i=1;i<=nbEnnemis;i++)
	{
		
		this._root.attachMovie("ennemis","loup"+i,_root.getNextHighestDepth());
        
   
       //on l'affiche aux coordonnées suivantes :
	_root["loup"+i]._x=Math.round(Math.random()*((xmax-30)-(xmin+30))+(xmin+30));
	_root["loup"+i]._y=0;
	
	}
	
	
}




Lors de la collision entre le mouton et un des loups, je veux bien entendu supprimer ce loup :
Code ActionScript :
function collision(){
	
	// en cas de collision avec un loup on supprime le loup :
	for(i=1;i<nbEnnemis+1; i++)
	{
		
		var loup =_root["loup"+i];
		if(mouton.hitTest(loup))
		{
			trace("suppression du loup "+loup);
			loup.removeMovieClip();
		 	nbEnnemis --;
                }
       }


Voilà pour le code....
j'espère que vous pourrez m'aider....
mardi 4 mai 2010 à 18:37:06 | Re : creation et suppression dynamique de clip [AS2]

BBFUNK01

Hello,

essaie ceci :

Code ActionScript :
function collision(){
	
	// en cas de collision avec un loup on supprime le loup :
	for(i=1;i<nbEnnemis+1; i++)
	{
		
		var loup =_root["loup"+i];
		if(mouton.hitTest(loup))
		{
			trace("suppression du loup "+loup);
			removeMovieClip("loup"+i);//ou peut-être aussi "removeMovieClip(loup);
		 	nbEnnemis --;
                }
       }



BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
mardi 4 mai 2010 à 20:32:07 | Re : creation et suppression dynamique de clip [AS2]

mamelon04

Merci d'avoir répondu rapidement,
J'ai suivi ton conseil et ça ne fonctionne toujours pas....

le truc c'est que le nombre d'ennemis crée dépend du niveau où le joueur est rendu nbEnnemis = niveau * niveau.
les loup se deplace verticalement vers le bas.

je crée donc nbEnnemis loup.
au niveau 1 lorsque mon mouton touche le loup pas de problème il est bien supprimé.
au niveau 2, il y a alors 4 loups, lorsque je rentre en collision avec un loup il y en a un qui s'arrête....

je suis débutant et là je bloque vraiment...
mardi 4 mai 2010 à 20:55:40 | Re : creation et suppression dynamique de clip [AS2]

BBFUNK01

hum... je pense que le problème vient du fait qu'il faut que tu réinitalises les "positions" des éléments contenus dans ton array qui gère les loups, c'est probablement à cause de ça que les loups qui doivent être supprimés, ne le sont pas à un certain niveau du jeu.
Que donne ton trace() dans ta fonction "suppression du loup" ? C'est par là qu'il faut creuser.

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
mardi 4 mai 2010 à 21:14:22 | Re : creation et suppression dynamique de clip [AS2]

mamelon04

Je n'utilise pas d'array.... (est-ce obligatoire ?)
Je viens d'avoir une idée après je sais pas si c'est vraiment ça dis mois ce que tu en pense :
lorsque je supprime un clip avec removeMovieClip, ce clip a une certaine profondeur admettons que j'en supprime un dont la profondeur est 2 est ce possible que ça affecte celui qui se trouve à la profondeur 3....
Peut être est-ce juste un problème de profondeur...

sinon le trace me renvoi "suppression du loup _level0.loup" avec après loup le numeros du loup.

mardi 4 mai 2010 à 22:21:49 | Re : creation et suppression dynamique de clip [AS2]

BBFUNK01

Non ce n'est pas un problème de profondeur à priori, par contre en regardant ton code je remarque que tu commences ainsi :
Code ActionScript :
var i;
, mais tu ne définis pas "i" réellement, tes clips sont créés dynamiquement et dans ta boucle cela incrémente les valeurs de "i", par conséquent j'imagine qu'au fur et à mesure des clips supprimés ou ajoutés, on se retrouve avec des valeurs "i" présentes sur la scène sans ordre logique, j'entends par là que tu pourras te retrouver à un moment avec ces valeurs là pour "i" : 1,3,4,7,11... je ne sais pas si mon explication est très claire , ce que je veux dire c'est que si tu stockes tes clips dans un array() lorsqu'ils sont attachés ou supprimés, tu auras peut-être plus de facilité à gérer ces clips, du fait qu'avec le code adéquat tu auras une suite croissante et ordonnée au niveau des valeurs de "i".

Par exemple :
Code ActionScript :
function creaEnnemis(){
	var i:Number = 0;
var TableauEnnemis:Array = new Array();
	
	//on crée le nombre d'ennemis voulu :
	for(i=0;i<=TableauEnnemis;i++)
	{
		
		this._root.attachMovie("ennemis","loup"+i,_root.getNextHighestDepth());
TableauEnnemis.push(i);
        
   
       //on l'affiche aux coordonnées suivantes :
	_root["loup"+i]._x=Math.round(Math.random()*((xmax-30)-(xmin+30))+(xmin+30));
	_root["loup"+i]._y=0;
	
	}
}

function collision(){
	
	// en cas de collision avec un loup on supprime le loup :
		if(mouton.hitTest("loup"+i))
		{
			trace("suppression du loup "+("loup"+i));
			removeMovieClip("loup"+i);
		 	TableauEnnemis.splice(i, 1);
                }
       }



BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
mercredi 5 mai 2010 à 10:57:32 | Re : creation et suppression dynamique de clip [AS2]

mamelon04

Bonjour, merci pour ton explication pour ma variable de boucle "i".
Effectivement je pense avoir compris ce que tu m'a dit je vais donc opter pour la solution d'un array.
Cependant j'ai essayé ton code d'exemple pour commencer. Il semble que flash player n'apprécie pas du tout la boucle pour ainsi modifié dans la fonction creaEnnemis().... lorsque j'exécute l'animation (ou plutôt quand j'essai de l'exécuter), j'ai un message qui me dit en gros qu'un script présent dans l'animation ralenti flash player et que si je continu son exécution il se pourrait que mon ordi plante... J'ai quand même essayé et pour une fois le message d'erreur avait raison mon ordi a planté pendant 5 minutes... et au final l'animation ne s'est même pas lancé...

Si tu vois à quoi cela est dû...

En tout cas merci pour ta patience envers le débutant que je suis.
mercredi 5 mai 2010 à 11:33:57 | Re : creation et suppression dynamique de clip [AS2]

BBFUNK01

Hello,

mets ton code complet dans le post s.t.p. afin qu'on voit le tout de A à Z. Si tu souhaites m'envoyer ton fla pour que je regarde, fais-moi signe.

A plus,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
mercredi 5 mai 2010 à 11:47:35 | Re : creation et suppression dynamique de clip [AS2]

mamelon04

je crois que je vais t'envoyer le .fla ça sera beaucoup plus simple.Enfin je pense...
Seulement je suis nouveau sur ce forum comment je dois procéder pour te l'envoyer ?
mercredi 5 mai 2010 à 13:11:42 | Re : creation et suppression dynamique de clip [AS2]

BBFUNK01

Re,

je t'envoie mon adresse e-mail en pv, envoie moi le fichier à cette adresse. Je regarderai ce soir car je n'ai pas Flash sous la main.

A plus,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;

1 2

Cette discussion est classée dans : code, suppression, clip, root, loup


Répondre à ce message

Sujets en rapport avec ce message

Je n'arrive pas à retouver le nom d'un clip dans un code [ par lodossgp ] sté le: Dim Mai 23, 2004 8:45 pm    Sujet du message: Problème actionscript Flash Bonjour, j'ai récupéré un tutoriel flash avec une partie code, pou ****URGENT****S.V.P !! [ par lezart ] Bonjour a tous !...Mon probleme : j'ai trois boutons, avec trois clip invisible au depart... avec pour code sur chaque clip celui-ci :onClipEvent(load propriétés d'un bouton sur un autre clip [ par HFanny ] Bonjour à tous,j'utilise la fonction : createEmptyMovieClip pour créer un nouveau clip nommé buttons sur mon scénario, dans celui-ci, je load un certa panorama, deplacement fluide [ par tiburse ] Bonjour, On m'a donné un code pour un panorama, dans celui ci on peu se déplacer en 360°, c'est à dire que lorsqu'on place la souris à gauche de l'écr Probleme : Collisions entre deux clip de même nom [ par Seydjinn ] Bonjour j'avais envoyé une question il y a qq temps car je ne parvenais pas à générer un déplacement aléatoire multiple, graàce à l'aide d'Inaden j'ia pb mise en place du code [ par fanatikx ] Bonjour, Voici la situation:j'ai sur _root 2 calques, un nommé "menu" (sur lequel est placé le clip du même nom) et un calque action.Mon clip menu est remove clip [ par BBFUNK01 ] Bonsoir à tous, j'ai créé un clip chargé avec attachemovie, le clip est donc chargé lorsqu'on clique sur un bouton dans le menu. Dans le clip chargé s Menu qui boude ses pages..... [ par polo59223 ] Bonjour à tous, Nouveau sur le site, je vous livre mon premier post.... Dans le cadre de mon travail, je dois re-faire le site de ma boîte suite à u Bouton dans un clip [ par biancadiane ] Bonsoir, J'ai un clip qui contient un bouton, ce bouton permettrait dans l'idéal d'avancer dans la scène1 (stoppée sur la frame1) dans laquelle le cl load en AS2 objet [ par carton99 ] Bonjour, je n'arrive à faire crée un loading sur mon jeu . Tous d'abord le jeu est finit il est programmé en AS2 objet ,mais je doit crée un loading.


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,669 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales