IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

Probleme avec Remove Element


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Par défaut Probleme avec Remove Element
    Bonjour,

    Je suis nouvelle sur ce forum, j'ai fait des recherches mais je n'ai pas trouve de reponse donc je me permets de creer une nouvelle discussion. Si la question a ete deja postee, je m'en excuse d'avance.

    Je debute dans la programmation avec Flex, cela fait a peu pres quelques semaines que j'ai commence.
    A la base, j'ai un personnage (cree sous 3DSMAX) et les png pour les utiliser sous Flex. Mon but est de faire un pseudo-jeu avec mon personnage qui disparait (si possible avec des effets comme une explosion ou autre) lorsque l'on clique dessus. Le personnage, qui apparait a un intervalle donne sur l'ecran, parcourt l'ecran du bas vers le haut.
    En gros, c'est comme un balloon shooter (?), avec des ballons qui grimpent et il faut les faire exploser en cliquant dessus. Je sais pas si c'est vraiment clair...

    Bref, je suis arrivee jusqu'au point ou:
    ->Les "mobs" apparaissent bien en bas et grimpent jusqu'a sortir de l'ecran
    ->L'event onClick fait en sorte que la vitesse entre chaque "apparition" augmente (c'est pour que ca devienne de plus en plus difficile)

    Mais je n'arrive pas a supprimer chaque element ("mobs") lorsque je clique dessus. J'ai tente un "removeElement(this)" mais ca ne change rien, rien n'est supprime.

    Voici le code pour le lancement du jeu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    private function startGame(diff:int):void{
     
    	this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
    	switch (diff){
    		case 0: 
    			interval=100;
    			break;
    		case 1: 
    			interval=40;
    			break;
    		case 2: 
    			interval=20;
    			break;
    	}
    	characterPkg.Character.setDifficulties(diff);
    	if (nCHAR<1)
    		nCHAR=1;
    	else {
    		for (var j:int=0; j<nCHAR; j++){
    			delete charA[i];
    		}
    		this.removeAllElements();
    		this.addElement(About);
    		this.addElement(e);
    		this.addElement(h);
    		this.addElement(m);
     
    		nCHAR=1;
    	}
     
    	for (var i:int=0; i<nCHAR; i++){
    		//Declare new character instance
    		var newChar:characterPkg.Character = new characterPkg.Character;
    		//Add to array for easy reference
    		charA.push(newChar);
    		//Add to top level display container to make visible
    		this.addElement(charA[i]);
    		//Set position in window
    		charA[i].x=Math.round(Math.random()*600);
    		charA[i].y=this.height/2;
     
    	}
     
    }
    Pour la fonction onClick, je n'ai que 2 lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	this.removeElement(this);
    	Character.speed=Character.speed+10;
    Si je n'ai pas poste assez d'information, faites moi savoir, je serai ravie de completer.

    Merci d'avance.

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour et bienvenue sur le forum

    As tu essayé quelque chose de ce style ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.removeElement(IVisualElement(event.target));

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Par défaut
    Merci pour votre reponse, j'ai teste, j'ai eu cette erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1180: Call to a possibly undefined method IVisualElement.
    Je me suis renseigne sur le site de Adobe, je sais pas vraiment quelle fonction utiliser pour pouvoir get l'element. (avec le parametre event je suppose...?)

  4. #4
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Regarde ici (propriété target et currentTarget)

    Sinon pour supprimer, teste ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.removeElement(Mobs(event.target));

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Par défaut
    Encore merci, je viens de me rendre compte que le programme ne passe pas par le "onClick".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private function init():void{
    //load all the images into an array for easier reference
    //this is a bit nasty as I'm using it as untyped data
    for (var i:int=0; i<this.numElements; i++) {
    	imgA.push(this.getElementAt(i));
    }
    //Add a mouse click handler to this character:
    this.addEventListener(MouseEvent.CLICK, onClick);
     
    //Start walking by default
    startWalk();
    }
    J'ai regarde sur internet, il y a beaucoup de tuto pour mx:script mais pas pour fx:script.
    Est-ce qu'il y a une erreur dans mon init? J'ai egalement un onEnterFrame, il passe bien dedans (j'ai teste avec Alert).
    Est-ce qu'il y a moyen de mettre en highlight la hitbox du character? Ca se trouve je clique pas sur le bon pixel?

  6. #6
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Sur le CLICK de l'événement, teste ceci afin de voir sur quoi tu cliques :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    protected function onClick(event:MouseEvent):void
    {
       Alert.show(getQualifiedClassName(event.target));
    }

Discussions similaires

  1. probleme avec l'element liste
    Par dhay06 dans le forum Forms
    Réponses: 3
    Dernier message: 28/09/2009, 14h54
  2. probleme avec fusion de 2 llc trié element par element !
    Par Tshik3StyLe dans le forum Débuter
    Réponses: 1
    Dernier message: 03/05/2009, 04h10
  3. [DW9] Probleme avec element PA
    Par max336 dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 22/09/2008, 10h07
  4. [C#] Petit problème avec un élément du FAQ
    Par matech dans le forum ASP.NET
    Réponses: 11
    Dernier message: 24/01/2008, 14h11
  5. Probleme avec visibilite element inline sous IE
    Par nabab dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 15/06/2007, 14h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo