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

Flash Discussion :

Récupération d'images sur BDD, duplication, redimensionnement


Sujet :

Flash

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 65
    Points : 46
    Points
    46
    Par défaut Récupération d'images sur BDD, duplication, redimensionnement
    Bonjour,

    Dans le cadre d'un projet d'étude je dois réaliser une petite application FLASH. Je me suis lancé dans un truc qui me semblait au départ pas trop compliqué mais je me rends compte que ça dépasse un peu (voir beaucoup) mes capacités en Action Script (je suis étudiant). Ainsi, après des dizaines d'heures passées à chercher sur le net, dans divers forums et autres tutoriels, je fais appel à vous.
    Voici l'idée : Réaliser une fonction de zoom sur une image présente sur une base de données (pour le moment en local sur mon poste via Easy-php). Pour ce faire, voici comment j'ai opéré :
    Je charge l'image dans un clip en faisant appel à ma feuille php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    mysql_connect("localhost","root","");
    mysql_select_db("granville");
    $req="SELECT adresse_mail FROM Administrateur where login ='admin'";
    $rep=mysql_query($req);
    $res=mysql_fetch_array($rep);
    $adresse_mail=$res['adresse_mail'];
    echo utf8_encode("&image=$adresse_mail");
    ?>
    Bon, là c'était pour des tests... j'ai rentré le chemin de mon image dans le champ "adresse mail" de la table "administrateur" de la base qui a comme nom "Granville".

    Pour faire la fonction de zoom, je voudrais donc dupliquer le premier clip qui accueil cette image, charger la meme image dans ce second clip mais lui donner une échelle 2 fois plus grande.
    Le second clip sera décallé en x pour pouvoir voir la grande image et la petite image.
    Déjà, à ce niveau ça me pose un problème car la première image s'affiche, mais pas la seconde. Je me suis dit que ça devait être un problème d'écouteur de chargement? Alors j'ai essayé de mettre deux champs supllémentaire dans mon flash : un premier qui affiche le poids de la première image en ko et un second qui affiche le pourcentage qui est chargé. J'ai essayé de dire au second clip de charger l'image une fois seulement que l'image du premier clip a été bien chargé (donc pourcentage chargé = 100%) mais ça ne marche pas...
    Déjà, si j'arrive à afficher ces 2 images dans mes 2 clips, ce serait plutot bien !
    Après, on arrive à la fonction de loupe à proprement parlé.
    Donc, là, j'ai importé un symbole clip appellé "loupe" sur ma scène, et j'ai mis comme code dessus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    on (press) {startDrag (this,true, 100, 120, 224, 224 ):}
    on (release) {stopDrag () }
    Donc, lorsque l'utilisateur clic sur cette loupe, elle peut se déplacer sur la première image (la petite, dans le clip1).

    Pour que la grande image se déplace en fonction du déplacement de la loupe, j'ai mis comme code sur mon clip2 (qui accueil la grande image) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    onClipEvent (enterFrame) {
    clip2._x=(root.loupe._x)*-1;
    clip2._y=(root.loupe._y)*-1;
    }
    Donc, on a alors un déplacement de la grande image proportionnelement à la première. Et puisque cette image est deux fois plus grande que la première, l'utilisateur aura donc l'impression de déplacer une loupe sur la première image...

    Bon, j'sais pas si je me suis bien fais comprendre...

    Je vous mets mon code FLASH ici :

    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
    //Creation d'une variable de chargement
    var chargement = new LoadVars();
     
    //On place les clip1 et 2 en fonction de leur coordonnées x et y :
    clip1._x = 100;
    clip1._y = 120;
    clip1._width=250;
    clip1._height=250;
     
    clip2._x = 450;
    clip2._y = 120;
    clip2._width=500;
    clip2._height=500;
     
    //pour le chargement : se reporter au fichier info.php
    chargement.load("info.php");
     
    //on charge la valeur de "image"
    chargement.onLoad = function(pSuc) {
    if (pSuc) {
    //Chargement de l'image dans le clip1 :
    clip1.loadMovie(this.image);
     
    //on affiche dans les champs de texte dynamique : le nb de bit total et le pourcentage de bit chargé :
    _root.onEnterFrame = function(){
    total.text = clip1.getBytesTotal()+" ko";
    charge.text = clip1.getBytesLoaded()+" ko";
    pourcent.text = Math.floor((clip1.getBytesLoaded()/clip1.getBytesTotal())*100) + " %";
     
    //Si le pourcentage chargé à la première image est égal à 100%: 
    if (pourcent.text == "100 %"){
    this.onEnterFrame = null;
    //Alors on peut commencer le chargement de la même image dans le clip2 :
    chargement.onLoad = function(pSuc2) {
    if (pSuc2) {
    clip2.loadMovie(this.image);}
    }
    }
    } 
    }
    }
    Donc voilà... Au final j'arrive à quoi moi dans tout ça? Eh bien j'arrive à afficher dans mon navigateur (je passe par localhost et j'appelle ma feuille html qui contient l'objet flash) : le premier clip contenant l'image, sa taille, et 100% chargé. dessus j'ai bien mon objet loupe, que je peux déplacer sur l'image. Or, seul les contour de mon clip 2 s'affiche, l'image ne se charge pas dedans...
    C'est peut être un problème de syntaxe? de listener obligatoire dans ce cas?(si oui pouvez vous me dire où le mettre je n'y arrive vraiment pas car l'image est chargée via la base ...)

    l'imprim écran de mon résultat est en pièce jointe:


    J'ai joins également une autre pièce jointe qui s'appelle "résultat_loupe" et qui vous donne un aperçu de ce que je voudrais obtenir :
    (désolé ça pixelise pas mal)

    Vous avez également en pièces jointes : mon FLA. et le SWF (info2) et un fichier qui s'appelle "loupe.SWF" qui est ce que je voudrais obtenir...

    Merci pour votre aide je desespère grave et j'ai le cerveau en ébulition depuis deux semaines...

    pps : voici au cas où le contenu de mafeuille html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <HTML>
    <head>
    </head>
    <body>
    <object type="application/x-shockwave-flash" data="info2.swf" width="800px" height="425px">
    <param name="movie" value="info2.swf" />
    </object>
    </body>
    </html>
    Merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 65
    Points : 46
    Points
    46
    Par défaut
    Grâce à une personne d'un autre forum j'ai résolu un des problème.
    Maintenant, l'image s'affiche dans mon clip2.
    Il fallait supprimer les lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    chargement.onLoad = function(pSuc2) {
    if (pSuc2) {
    clip2.loadMovie(this.image);}
    et remplacer par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clip2.loadMovie(chargement.image);
    A présent, je voudrais faire ma loupe.... Lorsque je drag la loupe (ici c'est un rectangle gris) sur le clip1, j'aimerai que le clip2 se déplace... Comment faire pour lier le déplacement de la loupe avec le déplacement de mon clip2?

    Voici le code que j'ai mis sur ma loupe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    on (press) {startDrag (this,true, 100, 120, 224, 224 ):}
    on (release) {stopDrag () }
    et voici le code que j'ai mis sur mon clip2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    onClipEvent (enterFrame) {
    clip2._x=(root.loupe._x)*-1;
    clip2._y=(root.loupe._y)*-1;
    }
    ça ne marche pas.. Je peux déplacer ma loupe sur mon clip1 mais le clip2 ne suit pas...

    A votre avis, que dois-je faire?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 65
    Points : 46
    Points
    46
    Par défaut
    Re bonsoir,

    Bon, je vois que mon sujet ne passionne pas les foules....
    Ben après quelques heures supplémentaires le résultat est toujours le même de mon côté...
    J'ai essayé plusieurs chose pour avoir un déplacement de mon clip2 en fonction de ma loupe...

    j'ai mis ce bout de code sur la loupe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    onClipEvent (enterFrame) 
    {
    	if(_root.flag==true)
    	{
    		_root.clip2.setScrollPosition((_root.clip2.getScrollPosition().x+(_root._xmouse+450)),(_root.clip2.getScrollPosition().y+(_root._ymouse-240)));
     
    	}
    }
    J'ai essayé également de modifier mon code dans tous les sens en fonction de sujets vu par ci par là sur le net... Bref, Rien n'y fait... Je n'y arrive vraiment pas...

    Personne n'est motivé pour aider un looser?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 65
    Points : 46
    Points
    46
    Par défaut
    Personne pour m'aider?

Discussions similaires

  1. [MySQL] Insérer un texte et une image sur BDD
    Par Vinuto dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/05/2008, 15h33
  2. Problème d'upload image sur bdd
    Par Freedolphin dans le forum Administration
    Réponses: 0
    Dernier message: 07/11/2007, 17h50
  3. [Tableaux] Redimensionner des images sur un site
    Par Ubum dans le forum Langage
    Réponses: 9
    Dernier message: 24/08/2007, 17h21
  4. [BufferedImage] Redimensionner / Sauvegarder image sur disque
    Par nicolas.pied dans le forum Multimédia
    Réponses: 1
    Dernier message: 17/04/2007, 02h54
  5. Réponses: 5
    Dernier message: 03/02/2006, 13h47

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