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 :

Supprimer une image insérer grâce à un ProLoader


Sujet :

ActionScript 3

  1. #1
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 168
    Points : 123
    Points
    123
    Par défaut Supprimer une image insérer grâce à un ProLoader
    Bonjour,

    Je code actuellement une petite application en ActionScript 3. Pour les besoins de cette application je dois charger des images contenues dans mon dossier courant, au passage de la souris sur un Clip. Le chargement de l'image, son redimensionage et son insertion dans ma scène ne pose pas de problème. Par contre, les choses se corsent lorsqu'il s'agit de supprimer l'image une fois que ma souris est sortie de la zone du Clip.

    Voici le code que j'ai actuellement:

    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
     
    store4.addEventListener(MouseEvent.MOUSE_OVER, fl_ClickToLoadUnloadSWF);
    store4.addEventListener(MouseEvent.MOUSE_OUT, fl_ClickToLoadUnloadSWF);
    import fl.display.ProLoader;
    import flash.display.Bitmap;
     
    var fl_ProLoader:ProLoader;
    var fl_ToLoad:Boolean = true;
    function fl_ClickToLoadUnloadSWF(event:MouseEvent):void
    {
    	var i:int = event.target.name.charAt(event.target.name.length-1);
    	if(event['type']=="mouseOver")
    	{
    		var pict2:Bitmap = new Bitmap();
    		fl_ProLoader = new ProLoader();
    		fl_ProLoader.load(new URLRequest("store"+i+".jpg"));
    		fl_ProLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, pict_is_loaded)
     		function pict_is_loaded (e:Event) {
    			var pict = fl_ProLoader.content;
    			pict.x = 780;
    			pict.y = 150;
    			pict.width = 224;
    			pict.height = 168;
     			addChild(pict);
    			pict2=pict;
    		}
    	}
    	else
    	{
    		fl_ProLoader.unload();
    		removeChild(fl_ProLoader);
    		fl_ProLoader = null;
     
    	}
    }
    Je crée donc un nouveaux ProLoader, grâce à une requête URL je charge mon image. Une fois celle-ci chargée, j'applique 2 3 modification de ces propriétés et enfin je l'ajoute à la scène grâce à la méthode 'addChild'.

    Pour la supprimer j'ai donc naturellement pensé à la méthode removeChild ainsi qu'au déchargement du ProLoader mais sans succès l'image reste scotchée à ma scène :/

    PS: J'ai également testé removeChild(pict) ou essayé d'utiliser un tampon du type Bitmap pour sauvegardé la variable pict dans une variable globale, sans plus de succès.

    Voila en espérant une idée quelconque pour résoudre mon problème ou éventuellement une autre méthode permettant de faire la même chose

    Si vous avez la moindre question concernant le code dans son intégralité ou l'application en elle-même n'hésitez pas

    Chipss,

  2. #2
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 168
    Points : 123
    Points
    123
    Par défaut
    J'ai trouvé moi-même la réponse. A vrai dire je ne sait vraiment pas ce qui m'est passé par la tête pour faire ce que j'avais fait

    En gros pour ceux que ça pourrait intéresser l'Event.MOUSE_OUT doit être inclus dans la fonction elle même et donc je n'avais pas besoin de ce système de if.

    Je conçois que mes explications sont loin d'être claires donc voici mon code final qui marche:

    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
     
    store4.addEventListener(MouseEvent.MOUSE_OVER, fl_ClickToLoadUnloadSWF);
    import fl.display.ProLoader;
    import flash.display.Bitmap;
    import flash.events.Event;
     
    var fl_ProLoader:ProLoader;
    var fl_ToLoad:Boolean = true;
    function fl_ClickToLoadUnloadSWF(event:MouseEvent):void
    {
    	var i:int = event.target.name.charAt(event.target.name.length-1);
    	if(event['type']=="mouseOver")
    	{
    		var pict2:Bitmap = new Bitmap();
    		fl_ProLoader = new ProLoader();
    		fl_ProLoader.load(new URLRequest("store"+i+".jpg"));
    		fl_ProLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, pict_is_loaded)
     		function pict_is_loaded (e:Event) {
    			var pict = fl_ProLoader.content;
    			pict.x = 780;
    			pict.y = 150;
    			pict.width = 224;
    			pict.height = 168;
     			addChild(pict);
    			addEventListener(MouseEvent.MOUSE_OUT, fl_ClickToUnloadSWF);
    			function fl_ClickToUnloadSWF(evt:Event){
    				fl_ProLoader.unload();
    				removeChild(pict);
    				fl_ProLoader = null;
    			}
    		}
     
    	}
    }

Discussions similaires

  1. [PPT-2003] Insérer et supprimer une image au clic de la souris
    Par Guigui_ dans le forum VBA PowerPoint
    Réponses: 1
    Dernier message: 18/11/2009, 17h25
  2. Supprimer une image dans une table SQL Serveur 2000
    Par Soobook dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/09/2006, 17h00
  3. impossible de supprimer une image!
    Par pierrot67 dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/09/2006, 15h03
  4. Réponses: 2
    Dernier message: 26/06/2006, 15h34
  5. comment supprimer une image ?
    Par Death83 dans le forum Langage
    Réponses: 4
    Dernier message: 30/01/2006, 11h49

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