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 :

Uploader une image et la remplacer dans un movieclip


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Par défaut Uploader une image et la remplacer dans un movieclip
    bonjour a vous tous, vaudou de la programation AS3

    Voila ce que je voudrais faire : J‘ai un movieclip nommé block, dans lequel il y a une image. Le movieclip block est dragable.
    Lorsque je clique sur un bouton nommé btnbrowse, on choisit une image sur le disque local, on l‘upload, et on l‘affiche dans le movieclip block. J‘aimerai que la nouvelle image remplace l‘ancienne. On doit pouvoir répéter cette opération ( choisir, loader, remplacer et afficher ) autant de fois que l‘on veut.

    Mon problème : l‘upload fonctionne parfaitement, mais l‘image vient par dessus l‘ancienne ( et pas vraiment aux meme coordonnees )

    Par avance merci a tous ceux qui voudront bien se pencher sur mon probleme.

    Je vous donne le code source :

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    stop();
     
    // Cette fonction permet de drag le block
    function dragblock(event:MouseEvent):void
    {
    block.startDrag();//le block suit le pointeur de souris
    }
    block.addEventListener(MouseEvent.MOUSE_DOWN, dragblock);//Quand j'appuie sur le bouton de la souris
     
    // Cette fonction permet de drop le block
    function dropblock(event:MouseEvent):void
    {
    block.stopDrag();//le block s'arrête là ou il est
    }
    block.addEventListener(MouseEvent.MOUSE_UP, dropblock);//Quand je relache le bouton de la souris
     
     
     
    // // Cette fonction permet de charger une image
    import flash.events.MouseEvent;
    import flash.events.Event;
    import flash.net.FileReference;
    import flash.display.Loader;
    import flash.display.Sprite;
     
    var fileRef:FileReference;
     
    function DirectUpload(event:MouseEvent):void
      {
       fileRef = new FileReference();
       fileRef.addEventListener(Event.SELECT, selectFile);
       fileRef.addEventListener(Event.OPEN, openFile);
       fileRef.addEventListener(Event.COMPLETE, complete);
    fileRef.browse([new FileFilter("All Formats (*.jpg,*.gif,*.png,*.swf)", "*.jpg;*.gif;*.png;*.swf", "JPEG;jp2_;GIFF;SWFL")]);
     
      }
     
    function selectFile(e:Event):void {
       fileRef.load();
      }
     
    function openFile(e:Event):void {
     
      }
     
    function complete(e:Event):void
      {
    var data:ByteArray = fileRef.data;
     
    // on crée un contenant pour le fichier chargé
       var loader:Loader = new Loader();
       loader.loadBytes(data);
     
    // On ajoute le contenant au movieclip  Block
       block.addChild(loader);
      }
     
     
    btnbrowse.addEventListener(MouseEvent.CLICK,DirectUpload);
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 147
    Par défaut
    avant de faire un addchild de ton loader, tu fais un removechild, ainsi l'ancienne image sera supprimée...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Par défaut marche pas le removechild
    merci pour ta réponse

    je pense avoir déjà essayé le removechild meme avec un systeme.gc (ramasse miettes ) mais je vais le refaire des fois que... je vous tiens au courant

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Par défaut fonctionne pas avec removechild
    rebonjour,

    j'ai fait 3 tests avec removechild avec les codes ci dessous et ca ne fonctionne toujours pas :

    Dans le premier test on supprime le block, l'ancienne image disparait mais, la nouvelle n'apparait pas

    Dans le seconde test, on supprime le block, on le remet sur la scène, mais évidemment l'ancienne et la nouvelle image s'affichent.

    Dans le 3eme test, on supprime le block, on l'efface définitevement, puis on le remet : l'ancienne image disparait et on a le message d'erreur suivant :

    TypeError: Error #2007: Le paramètre child ne doit pas être nul.
    at flash.display:isplayObjectContainer/addChild()
    at test_fla::MainTimeline/complete()
    J'ai juste repris ici la partie de code qui nous interesse :


    1ER test
    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
    function complete(e:Event):void
      {
    var data:ByteArray = fileRef.data;
     
    // on crée un contenant pour le fichier chargé
       var loader:Loader = new Loader();
     
       removeChild(block);
     
       loader.loadBytes(data);
     
    // On ajoute le contenant au movieclip  Block
       block.addChild(loader);
      }
    btnbrowse.addEventListener(MouseEvent.CLICK,DirectUpload);
    2EME TEST
    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
    function complete(e:Event):void
      {
    var data:ByteArray = fileRef.data;
     
    // on crée un contenant pour le fichier chargé
       var loader:Loader = new Loader();
       removeChild(block);
       addChild(block);
       loader.loadBytes(data);
     
    // On ajoute le contenant au movieclip  Block
       block.addChild(loader);
      }
     
     
    btnbrowse.addEventListener(MouseEvent.CLICK,DirectUpload);
    3 EME TEST
    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
    function complete(e:Event):void
      {
    var data:ByteArray = fileRef.data;
     
    // on crée un contenant pour le fichier chargé
       var loader:Loader = new Loader();
       removeChild(block);
       block = null;
       addChild(block);
       loader.loadBytes(data);
     
    // On ajoute le contenant au movieclip  Block
       block.addChild(loader);
      }
     
     
    btnbrowse.addEventListener(MouseEvent.CLICK,DirectUpload);

Discussions similaires

  1. Uploader une image dans deux dossiers
    Par skywhi dans le forum Langage
    Réponses: 3
    Dernier message: 23/12/2013, 11h43
  2. Réponses: 0
    Dernier message: 27/07/2012, 14h25
  3. Réponses: 2
    Dernier message: 18/03/2007, 19h02
  4. uploader une image dans un autre formulaire
    Par jonathan.ohayon dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 03/05/2006, 23h04
  5. Uploader une image à partir d'un formulaire ?
    Par netwebzone dans le forum Langage
    Réponses: 2
    Dernier message: 28/11/2005, 09h27

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