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 :

Modifier une variable de la scène depuis un clip


Sujet :

ActionScript 3

  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 31
    Par défaut Modifier une variable de la scène depuis un clip
    Problème à la noix (je n'ai pas trouvé de réponse dans ma recherche sur le forum) :
    J'ai un clipB dans un clipA. Le clipA étant sur la scène.
    J'ai une variable déclarée sur la scène :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var maVar:String='texte1';
    ==> Je voudrais modifier cette variable depuis le clipB. Donc je met :

    qui me donne ==> "1119: Accès à la propriété maVar peut-être non définie, via la référence de type static flash.display:DisplayObject. "

    Si vous avez la réponse...merci !

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

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut
    c'est en as3 donc evite le root
    Essaie parent.maVar ou maVar.parent je ne m'en souviens plus de l'ordre

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 31
    Par défaut marche pas
    Merci pour ta réponse rapide. Ni l'un ni l'autre ne fonctionne. J'avais déja essayé mais je retrouve exactement la même erreur...
    Que j'utilise root, stage, Stage ou parent.parent j'ai le même résultat. Je crois que le problème c'est au niveau de l'appel de la variable elle même plutôt que de l'adresse.

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

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut
    Essaie comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var clip2:clipb = new clipb();
    clip1.addChild(clip2);
    var maVar:String = "texte1";
    trace (maVar);
    clip2.addEventListener(MouseEvent.CLICK, test);
     
    function test(evt:MouseEvent):void {
    	maVar = "texte2";
    	trace(maVar);
    }
    J'ai deux clip dans ma bibliotheque "clipa" et "clipb"
    J'ai gliser clipa sur ma scene.
    clipb est inserer en tant qu'enfant de clipa depuis le code.
    Ne pas oublier de faire une liaison du clipb : exporter pour AS
    C'est ce qu'il te fallait?

  5. #5
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 31
    Par défaut
    J'ai compris ton code mais y a un truc qui me semble étrange ==> Pour moi un clip enfant, c'est un clip contenu dans un autre. Donc logiquement quand tu veux appeler l'enfant t'es obligé d'adresser : clip1.clip2. Or là tu fait clip2 tout cours et ça marche. Comme si il était sur la scène, et non dans le clip1...

    Décidement y'aura eu de la révolution dans AS3 ^^mais bon c'est pour la bonne cause.

    Je vais essayer de l'incorporer dans mon jeu, mais le contexte est très différent. Merci pour ta recherche, hop au boulo

  6. #6
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Citation Envoyé par NoArgl Voir le message
    J'ai compris ton code mais y a un truc qui me semble étrange ==> Pour moi un clip enfant, c'est un clip contenu dans un autre. Donc logiquement quand tu veux appeler l'enfant t'es obligé d'adresser : clip1.clip2. Or là tu fait clip2 tout cours et ça marche. Comme si il était sur la scène, et non dans le clip1...

    Décidement y'aura eu de la révolution dans AS3 ^^mais bon c'est pour la bonne cause.
    dans le code un objet de type clipb est créé, il peut être utilisé directement tout comme en AS2 ou n'importe quel langage de programmation.

  7. #7
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 31
    Par défaut
    Ce que je voulais dire ==> dans AS2 quand tu mettais clip2 dans clip1, il était impossible d'appeler clip2 directement quand tu était sur la scène... Il te fallait faire clip1.clip2.

    Mais bon, j'ai toujours mon problème de syntaxe ==> depuis mon fameux clip2 je n'arrive pas à modifier une variable qui est sur ma scène, c'est sacrément facheux quand même

  8. #8
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Citation Envoyé par NoArgl Voir le message
    Ce que je voulais dire ==> dans AS2 quand tu mettais clip2 dans clip1, il était impossible d'appeler clip2 directement quand tu était sur la scène... Il te fallait faire clip1.clip2.
    non, il faut juste une variable qui est une référence vers ton clip. par exemple en AS2 tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var monClip2:MovieClip = monClip1.attachMovie("test", "testmc", monClip1.getNextHighestDepth());
    monClip2. ...
    monClip2 est dans monClip1 mais tu peux y accéder directement.

    Citation Envoyé par NoArgl Voir le message
    Mais bon, j'ai toujours mon problème de syntaxe ==> depuis mon fameux clip2 je n'arrive pas à modifier une variable qui est sur ma scène, c'est sacrément facheux quand même
    peut-être avec this.parent.parent, utilise la fonction trace pour vérifier les valeurs.

  9. #9
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 31
    Par défaut
    Merci pour ton aide beekeep, mais ça ne fonctionne pas quand je code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.parent.parent.actionPerso
    le compilateur me retourne =>
    1119: Accès à la propriété actionPerso peut-être non définie, via la référence de type static flash.display:DisplayObjectContainer.

    Je pense qu'il faudrait préciser le type de ma variable mais je ne sais pas comment l'écrire.

  10. #10
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (this.parent.parent as MovieClip).actionPerso
    ?

  11. #11
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 31
    Par défaut
    Ca fonctionne ! J'arrive a catcher la valeur... Merci beaucoup.
    En fait quand tu donne une adresse il faut préciser ce qu'est l'objet ? > <

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

Discussions similaires

  1. Modifier une variable Intouch depuis Windows
    Par Brebiou dans le forum Automation
    Réponses: 6
    Dernier message: 27/02/2015, 14h00
  2. Modifier une variable depuis un child
    Par Gnougnou2 dans le forum ActionScript 3
    Réponses: 5
    Dernier message: 18/09/2012, 18h17
  3. [Débutant] Modifier une variable workspace depuis un GUI
    Par Dardie dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 04/04/2012, 17h20
  4. Modifier une variable d'une classe depuis une autre classe
    Par Kezado dans le forum Général Java
    Réponses: 8
    Dernier message: 23/09/2010, 14h52
  5. modifier une variable dans un fichier
    Par Guismay dans le forum Langage
    Réponses: 7
    Dernier message: 11/09/2005, 19h46

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