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 :

problème de "_root" et "_parent"


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 problème de "_root" et "_parent"
    Bonsoir,

    Voici mon problème. J'ai dévelloppé différents jeux en flash. J'ai créé un menu permettant de les charger dans un loader après clic sur des boutons. Un bouton par jeu.
    Les .swf se chargent bien mais ça déconne completement lorsqu'on y joue... J'ai comme l'impression que ça doit être un pb de ciblage... J'ai largement utilisé "_root" dans mon code au sein de chaque jeux et je crois bien que cela pose probleme car ils ne sont plus autonomes mais apartiennent maintenant à un .swf "parent"... Je crois que le fonctionnement des jeux est perturbé car "_root" fait référence à quelque chose de différent...
    J'ai testé les jeux un par un ils marchent. Mais pour les lancer à partir de mon menu...ça déconne.
    J'ai essayé de remplacer "_root" par "_parent" dans le code d'un des jeux et malheureusement il ne fonctionne plus... même de façon autonome.

    Auriez-vous une solution?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Je crois que ton problème est que tu utilises des loadMovie avec des _root.
    Le fait d'utiliser _root dans un swf loadé par un loadMovie est que _root ne représentera plus la racine de ce même swf mais la racine du swf qui l'a loadé!

    C'est pourquoi il est préférable d'utiliser _parent.

    Par exemple, pour un movie clip se trouvant sur la racine, au lieu d'utiliser _root, il est préférable d'utiliser this._parent. Pour un movie clip b dans un movie clip a, dans le movie clip b, la racine sera this._parent._parent. Chaque _parent fait reculer d'un étage.

    Petit truc, si tu te perds dans les étages, fait un trace de la position actuel "trace( this );"!

  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
    merci pour ta réponse mais j'ai essayé de remplacer "root" par "this._parent" dans mes swf chargé et ça ne marche pas... Je vais tester lockroot=true...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    _root et _parent ne sont pas deux objet qui font la même chose!

    Tu ne peux pas remplacer les _root par des _parent en espérant que ça marche tout seul!
    _root = racine du document Flash.
    _parent sert a reculer d'un étape (d'un level).

    Si tu as le movie clip rouge qui contient le movie clip bleu.

    Dans le movie clip bleu, si tu met this._parent, ça va aller dans le movie clip précédent, rouge et non sur la racine. Il faut utiliser this._parent._parent, puisqu'il faut reculer de 2 levels pour atteindre la racine!.

  5. #5
    Membre habitué Avatar de solarishp
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 123
    Points : 140
    Points
    140
    Par défaut
    Citation Envoyé par purple21
    Bonsoir,

    Voici mon problème. J'ai dévelloppé différents jeux en flash. J'ai créé un menu permettant de les charger dans un loader après clic sur des boutons. Un bouton par jeu.
    Les .swf se chargent bien mais ça déconne completement lorsqu'on y joue... J'ai comme l'impression que ça doit être un pb de ciblage... J'ai largement utilisé "_root" dans mon code au sein de chaque jeux et je crois bien que cela pose probleme car ils ne sont plus autonomes mais apartiennent maintenant à un .swf "parent"... Je crois que le fonctionnement des jeux est perturbé car "_root" fait référence à quelque chose de différent...
    J'ai testé les jeux un par un ils marchent. Mais pour les lancer à partir de mon menu...ça déconne.
    J'ai essayé de remplacer "_root" par "_parent" dans le code d'un des jeux et malheureusement il ne fonctionne plus... même de façon autonome.

    Auriez-vous une solution?
    Bonjour,

    je te conseil peut-être d'utiliser _lockroot




    Pour obliger _root à évaluer systématiquement le scénario du fichier SWF chargé, et non le
    scénario racine réel, utilise la propriété _lockroot. Cette propriété peut être définie par le fichier
    SWF en cours de chargement ou par le fichier SWF chargé. Lorsque _lockroot est défini sur
    true sur une occurrence de clip, le clip agira comme _root pour tout fichier SWF qui y sera
    chargé. Lorsque _lockroot est défini sur true au sein d’un fichier SWF, le fichier SWF en
    question agira comme sa propre racine, quel que soit l’autre fichier SWF effectuant le
    chargement.

    N’importe quel clip, et n’importe quel nombre de clips, peut définir _lockroot sur
    true. Cette propriété est false par défaut.
    L’auteur de conteneur.swf peut par exemple associer le code suivant au clip cible_mc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Associé au clip cible_mc :
    onClipEvent(load) {
    this._lockroot = true;
    }
    Ceci garantit que les références à _root dans contenu.swf (ou dans n’importe quel fichier SWF
    chargé dans cible_mc) feront référence à leur propre scénario, non au scénario racine réel de
    conteneur.swf.
    De la même façon, l’auteur de contenu.swf peut ajouter le code suivant à son scénario principal.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Dans contenu.swf :
    this._lockroot = true;
    Ceci garantit que, quel que soit l’endroit où contenu.swf est chargé, toute référence à _root fera
    référence à son propre scénario principal et non à celui du fichier SWF hôte.


    bonne continuation
    Respecter la charte du forum pour rappel ! Ici
    Vérifier l’orthographe de vos messages
    Il ne faut pas penser à l'objectif à atteindre, il faut seulement penser à avancer. C'est ainsi, à force d'avancer, qu'on atteint ou qu'on double ses objectifs sans même sans apercevoir.

  6. #6
    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
    Salut salut !
    Merci bien !
    J'ai utilisé lockroot qui a effectivement pallié la majorité des pb... Cependant, j'ai 3swf qui ne fonctionnent pas correctement. J'ai bien ciblé le pb et ça vient à chaque fois que j'utilise "eval". Je vais créé un autre post car je seche depuis ce matin ! merci pour ta réponse !

Discussions similaires

  1. problème d'insertion s'il y a des quotes!
    Par mawkli dans le forum Langage
    Réponses: 12
    Dernier message: 13/07/2012, 15h23
  2. Réponses: 2
    Dernier message: 06/07/2009, 14h46
  3. [MySQL] Problème insertion lors de la présence de double quote
    Par wormseric dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/01/2007, 18h23

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