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 :

:: Portée de variables dans une boucle ::


Sujet :

Flash

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 64
    Points : 36
    Points
    36
    Par défaut :: Portée de variables dans une boucle ::
    Bonjour,

    Je suis décidément une buse en actionscript...

    Je cherche à importer dans un flash deux images aléatoires, dont les chemins sont fournis par un script PHP. Aucun problème pour récupérer les chemins à l'intérieur d'une boucle placée sur le onLoad. Mais c'est là que ça se corse: ces chemins sont des variables stockées dans la boucle, et impossible de les en faire sortir. Et je n'arrive pas à charger mes images depuis la fonction, je n'y arrive que si je les charge après. En bref, je patauge.

    J'ai essayé de rendre les variables globales avec _global., mais ça marche pô. J'ai essayé de déplacer mon LoadMovie dans la fonction, ça ne marche pas non plus. Je pense que tout ça est du à une lacune fondamentale de ma part... Bref, voici le code:

    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
    _quality = "BEST";
     
    //function random
    lv=new LoadVars();
    lv.onLoad = function() {
    	_global.img1 = "../img_ref/"+lv.id1+".jpg";
    	_global.img2 = "../img_ref/"+lv.id2+".jpg";
    };
     
     
    lv.load("http://www.asdepique.com/img_rand.php");
     
    _root.ref1.loadMovie(_global.img1);
    _root.ref2.loadMovie(_global.img2);
     
     
    _root.onEnterFrame = function() {
    var total = this.getBytesTotal() ; // taille de l'animation en byte
    var lu = this.getBytesLoaded() ; // l'état courant de chargement d'animation en byte
    var rapport = (lu)/(total);
    if (rapport >= 1) {
    	_root.ref1._x = 450;
    	_root.ref2._x = 630;
    	_root.ref1._y = 360;
    	_root.ref2._y = 360;
    	_root.ref1._width = 150;
    	_root.ref2._width = 150;
    	_root.ref1._height = 106;
    	_root.ref2._height = 106;
     
    }
    }
    Au secours quelqu'un?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    Utilises tu des classes AS2 ?

    Goofyt,

  3. #3
    Membre du Club Avatar de Tigrounette
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 132
    Points : 69
    Points
    69
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    _quality = "BEST";
     
    //function random
    lv=new LoadVars();
    lv.onLoad = function() {
    	var img1 = "../img_ref/"+lv.id1+".jpg";
    	var img2 = "../img_ref/"+lv.id2+".jpg";
            _root.ref1.loadMovie(img1);
            _root.ref2.loadMovie(img2);
    };
    lv.load("http://www.asdepique.com/img_rand.php");

    Et comme ça, tu as essayé ?

    En tout cas, dans ton code ça ne vas pas car tu tente d'afficher tes images alors qu'elle ne sont pas encore chargées.

    Si ca marche pas regarde bien si lv.id1 et lv.id2 renvoient de bonnes valeurs avec un trace() à la fin de ton onLoad()

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 64
    Points : 36
    Points
    36
    Par défaut
    Supêr, ça marche cette fois!!!! je ne comprends pas vraiment ce qui n'allait pas, j'étais persuadé d'avoir essayé exactement ça mais bon...

    Celà dit, du coup, j'ai un nouveau problème pour définir la taille de mes images. Les dimensions, c'est n'importe-quoi... Rien à voir, même,; avec la taille originale des visuels. Et quand j'essaye de redéfinir _width ou __height, plus rien ne s'affiche... Alors que ça marchait très bien tout à l'heure dans la fonction on EnterFrame!!! Késako?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 64
    Points : 36
    Points
    36
    Par défaut
    Et pour répondre à la question précédente, c'est à peine si je sais de quoi tu parles,avec des "classes AS2". Tout ce que je sais c'est que je tape des bouts de trucs dans la fenêtre d'éditeur de flash prévue à cet effet. Ce qu'on appelle apprendre sur le tas, donc.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 64
    Points : 36
    Points
    36
    Par défaut
    OK maintenant c'est encore mieux: mes images s'affichent, mais pas avec la bonne orientation!!! Elles subissent une rotation de 90°... Et pour avoir la taille voulue, je dois donner à _width la valeur prévue pour _height, sinon c'est plus grand que prévu... Je ne comprends pas tout, là. Bref, revoil à le code:

    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
    _quality = "BEST";
     
    //function random
    lv=new LoadVars();
    lv.onLoad = function() {
    	var img1 = "../img_ref/"+lv.id1+".jpg";
    	trace(img1);
    	var img2 = "../img_ref/"+lv.id2+".jpg";
    	trace(img2);
        _root.ref1.loadMovie(img1);
    	_root.ref2.loadMovie(img2);
    };
     
    _root.onEnterFrame = function() {
    	_root.ref1._width = 106;//Normalement 150 mais bon...
    	_root.ref2._width = 106;//Normalement 150 mais bon...
    }
     
    lv.load("http://www.asdepique.com/img_rand.php");

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Portée d'une variable dans une boucle FOR ?
    Par Neo41 dans le forum C++
    Réponses: 20
    Dernier message: 17/11/2006, 11h14
  2. [VB.net] Declaration variable dans une boucle for
    Par nico10gbb dans le forum Windows Forms
    Réponses: 4
    Dernier message: 10/05/2006, 11h45
  3. Réponses: 6
    Dernier message: 17/03/2006, 12h23
  4. Réponses: 3
    Dernier message: 01/09/2005, 11h56
  5. [langage] incrementation de variable dans une boucle
    Par mimilou dans le forum Langage
    Réponses: 15
    Dernier message: 16/04/2004, 13h23

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