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

ActionScript 3 Discussion :

OnComplete réagissant mal


Sujet :

ActionScript 3

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 72
    Par défaut OnComplete réagissant mal
    Bonsoir,

    j'ai un petit souci avec ce code, quand je fait sa mon onComplete ne laisse pas le temps à mon image de se charger ( ou la supprime avant meme qu'elle soit commencé de chargé.

    Par ailleur quand j'enleve ma ligne de suppression du swf, lors de la collision entre mes 2 objets, le .swf se charge en boucle sans interruption et ne disparait pas de la fenetre ... Vraiment je comprend pas pourquoi , merci d'avance.



    Bien à vous, ptitdje

    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
    package com.shooter2012.explosions {
    	import flash.display.Sprite;
    	import flash.events.ProgressEvent;
    	import flash.net.URLRequest;
    	import flash.display.Loader;
    	import flash.display.MovieClip;
    	import flash.events.Event;
    	import flash.display.Stage;
     
    	/**
    	 * @author Benjamin
    	 */
    	public class MiniExplosion extends Sprite {
    		[Embed(source="../gfx/swf/StingerDetruit.swf")]
    		private var Ressource : Class;
    		private var stageRef : Stage;
    		public function MiniExplosion(s : Stage, x : Number, y : Number) {
    			stageRef = s;
     
    			this.x = x;
    			this.y = y;
    			var image : MovieClip = new Ressource();
    			addChild(image);
    			// Evénement	
    			addEventListener(Event.COMPLETE,chargementTermine);
    			//image.contentLoaderInfo.addEventListener(Event.COMPLETE, chargementTermine);
    			addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
    		}
     
    		// Boucle de l'explosion
    		private function loop(pEvt : Event) : void {
    		//	removeEventListener(Event.ENTER_FRAME, loop);
    		//	if (stageRef.contains(this)) stageRef.removeChild(this);
    		// Supprime l'explosion
    		}	
     
     
     
       function chargementTermine (evt:Event) {
    		if (stageRef.contains(this)) stageRef.removeChild(this);
       }
    	}
    }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 197
    Par défaut
    Salut,
    je ne comprend pas quel est l'objectif de ton code.

    Pour rappel:
    qqch.removeChild(this) c'est interdit en AS3 (le problème c'est bien sur le this).

    On peut néanmoins passez à travers cette rêgle comme tu le fait avec l'utilisation d'un Event. A utiliser avec délicatesse.

    En gros tu fait une erreur de débutant , une classe graphique ne doit jamais s'auto supprimer d'un conteneur graphique. Tu doit te forcer à réfléchir autrement ton code.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 72
    Par défaut
    En gros mon souhait est simple, je veux chargé mon .swf lors d'une collision entre 2 objets ( sa il y a pas de souci ) sauf que lors de la collision je veux qu'il ne s'affiche qu'une fois, et non pas qu'il se mette en boucle.

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2011
    Messages : 27
    Par défaut
    Tu devrais alors lancer le chargement dés le début ( au moins c'est fait )

    Ensuite tu l'affiches dés que tu en as besoin ( ca doit etre une explosion ou un choc quoi je suppose )

    Dés l'affichage tu lances un timer, a la fin tu timer tu le supprimes ^^ pour obtenir l'effet voulu,

    tu peut aussi utiliser l'asture "explosion.visible = false" ou true au lieu de recharger a chaque fois, par simplicité.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2011
    Messages : 6
    Par défaut
    Perso ce que je ferais (une solution parmis d'autre comme celle cité au dessus selon tes besoin) :

    1/ Je crée une classe choc/Explosion

    2/ De mon main au moment de l'impact je crée une instance de cette classe que j'ajoute à la scène

    3/ Quand l'animation d'explosion est terminé, je lance de ma classe un évent pour la fin de l'animation

    4/ Sur la main, j'écoute l'événement de fin d'animation, et quand je le reçoit, je remove l'instance de ma classe explosion.

    Voila en gros les grandes lignes

Discussions similaires

  1. Le kernel version 2.6.3-mdk mal reconnu
    Par christophe D dans le forum Administration système
    Réponses: 5
    Dernier message: 23/03/2004, 10h03
  2. Pb de pointeur mal détruit
    Par olive_le_malin dans le forum MFC
    Réponses: 20
    Dernier message: 15/01/2004, 21h20
  3. [MFC] Message réagissant à un glissé (drag)
    Par karl3i dans le forum MFC
    Réponses: 2
    Dernier message: 27/11/2003, 13h32
  4. Réponses: 3
    Dernier message: 12/05/2003, 12h11

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