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 :

chargement de swf >"eval" ne fonctionne plus


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 chargement de swf >"eval" ne fonctionne plus
    Re bonsoir,
    Je rencontre un problème lors du chargement de swf dans un swf principal... Tout marche bien (quoique j'ai utilisé lockroot=true au niveau du clip qui accueille les swf chargés pour résoudre mes pb de ciblage "_root")

    Donc, dans les 3 swf chargés qui plantent, j'utilise la fonction "eval" pour identifier la position d'un clip et faire une action lorsque l'utilisateur va déposer un autre clip dessus.
    ex : un des swf qui plante est un puzzle. J'utilise eval pour vérifier si la pièce posée est au bon endroit auquel cas je la fixe.
    le code est du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    on (release){
        if(eval(this._droptarget)==eval(this._parent.P1)){
    		this._x=this._parent.P1._x;
    		this._y=this._parent.P1._y;
       }
    }
    Dans ce cas, lorsque ce swf est chargé dans mon clip principal, la fonction eval ne fonctionne plus, la pièce, meme au bon endroit, ne se fixe plus...

    Un seconde exemple et j'arrèterais là :

    Pour terminer un autre jeu, l'utilisateur doit déposer un clip sur une zone.(startdrag et stopdrag). Tout marche bien lorsque le swf est lancé tout seul, or ça déconne lorsqu'il est chargé.
    Le pb est que ma fonction "eval" n'est plus prise en compte... L'utilisateur à juste à cliquer sur le clip pour sortir(pas besoin de le déposer à l'endroit pour accomplir l'action)
    Le code est du style :
    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
     
    quitter.onPress = function() {
       this.startDrag();
       this.swapDepths(0);
    };
     
    quitter.onRelease = function() {
       this.stopDrag();
       //Si la position de mon clip est la meme que la position de la zone de dépot
       if (eval(this._droptarget) == zone_de_depot) {
          //Le clip est rendu invisible
          this._visible=false;
          //on va à l'image1
          gotoAndPlay(1);
       }
    };
    Donc voilà, je ne sais pas si j'ai été clair ?! j'espère que oui... Dans le cas contraire je peux vous donner plus d'explication (je crois que mon post est déjà presque trop long mais bon...)

    Je précise que j'ai effectué des "trace" à tout va pour récupérer la position exacte de mes clip au sein du swf chargé. Le clip qui accueille les swf s'appelle "image_mc". Pour l'exemple 2 j'ai par exemple mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (eval(this._droptarget) == image_mc.zone_de_depot)
    mais rien n'y a fait...

    Une idée?

  2. #2
    Membre émérite
    Avatar de jean philippe
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 062
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 062
    Points : 2 313
    Points
    2 313
    Par défaut
    salut
    eval en début de ligne est déprécié depuis Flash 5

  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
    ah... mirde....
    T'as une idée d'une fonction qui pourrait me permettre de la remplacer pour faire ce que je voudrais?

  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
    j'ai résolu mon pb (merci les forums).
    Je vous mets la solution au cas où ça vous interresse... C'est pas tip top comme solution mais ça marche donc bon...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    quitter.onRelease = function() {
        this.stopDrag();
        mdropstr1=this._droptarget;
        if (eval(mdropstr1.substr(mdropstr1.indexOf(_root._name)+_root._name.length))== zone_de_depot) {		
            gotoAndStop(3);
        }
    };

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

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