cs_giulyman
Messages postés14Date d'inscriptionlundi 25 février 2008StatutMembreDernière intervention 7 avril 2011
-
16 juil. 2009 à 21:35
cs_giulyman
Messages postés14Date d'inscriptionlundi 25 février 2008StatutMembreDernière intervention 7 avril 2011
-
17 juil. 2009 à 15:27
Bonjour, je fais un jeu en flash le but est de cliquer sur des balles pour les faire disparaitre avant quelles ne touchent le sol. J'ai un soucis au niveau de les supprimer pouvez vous m'aider svp. MERCI
Voici le code :
var cpt=0; // on initialise le compteur à zero
function addmissile(event:Event) {
if (Math.random()*3>2) {
var element: Mcmissile= new Mcmissile();
addChild(element);
element.autorise = true;
element.x=Math.random()*550;
element.y=20;
element.name='missile'+cpt;
element.addEventListener(MouseEvent.MOUSE_DOWN,desamorce);
cpt++;
}
}
function decendre(Event) {
for (var i=0; i<cpt; i++) {
if (Mcmissile.autorise == true){
var taille = Math.random()*8;
var mcmissile = getChildByName('missile'+i);
mcmissile.y+=taille;
}
}
}
stage.addEventListener(Event.ENTER_FRAME,decendre); // On ajoute un evenement pour faire tomber les missiles sans faire de cliques
function desamorce(evt:MouseEvent) { // fonction qui permet de faire disparaitre les bombes
var nettoyer = getChildByName(evt.target.name);
removeChild(nettoyer);
nettoyer.autorise = false;
dj_ouf
Messages postés221Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention 6 septembre 2011 17 juil. 2009 à 15:19
Hello
Ton code est un peu étrange si jpeux me permettre
- 1 seul écouter ENTER_FRAME suffit pour faire les différents traitements.
- un écouteur MouseEvent.CLICK est plus approprié.
- pourquoi ne pas utiliser un Timer plutôt que math random dans un boucle enterframe ?
Pour effacer tes balles :
var nettoyer = evt.target as Mcmissile;
getChildByName est très couteux, à prohiber tant que possible.
Et attention à ce que le click ne soit pas récupérer par un de ses enfants.. (mc.mouseChildren = false)
function decendre(Event) {
for (var i=0; i<cpt; i++) {
var taille = Math.random()*10;
var mcmissile = getChildByName('Mcmissile'+i);
mcmissile.y+=taille;
}
}
stage.addEventListener(Event.ENTER_FRAME,decendre); // On ajoute un evenement pour faire tomber les missiles sans faire de cliques
function desamorce(evt:MouseEvent) { // fonction qui permet de faire disparaitre les bombes
var nettoyer = getChildByName(evt.target.name);
removeChild(nettoyer);
}