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 1 & ActionScript 2 Discussion :

enabled= false sur un clip attaché


Sujet :

ActionScript 1 & ActionScript 2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 16
    Par défaut enabled= false sur un clip attaché
    Bonjour,

    j'ai une animation ou j'attache des clips dans une boucle for.
    lorsqu'on clique sur l'un des clip, ça attache un clip par dessus tout les clips.

    je souhaiterais rendre non cliquable les clips qui sont alors en dessous...

    le code ressemble a ceci :

    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
    //(dans la boucle for >>> )
    attachMovie("instance", "instance_"+i, i );
     
    //(toujours dans la boucle for >>> )
    _root["instance_"+i].onRelease = function() {
     
    //ici jattache une autre instance, qui passe par dessus tout les clip donc, çà c'est ok    
    et si je rajoute : _root["instance_"+i].enabled=false; dans cette fonction onRelease les clips ne sont pas descativés...
    si je fais this.enabled=false je désactive le clip sur lequel on clique mais pas les autres évidement.
     
    pour vérifier j'ai mi un : trace ( _root["instance_"+i]) ici. et j'obtiens "undefined".
    je suis pourtant toujours dans la boucle for alors je comprend pas pourquoi j'ai pas le nom des clips.
     
    j'ai essayé de créer une fonction avant la fonction onRelease mais toujours dans la boucle for, puis de l'appeler dans la fonction onRelease.
    du genre off= function () { _root["instance_"+i].enabled=false }
     
    mais je n'ai aucun résultat et idem quand je met un trace dans la fonction off(), en sortie j'ai undefined.
    }
    quelqu'un pourrait il m'éclairer ?

    merci.

  2. #2
    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
    Bonjour,

    pour supprimer l'écoute de l'évenement il faut faire comme ça :
    ensuite si _root["instance_"+i]) renvoi "undefined" c'est peut-être que le clip nommé "instance"+i n'est pas dans le _root.

    d'ailleurs il vaut mieux ne pas utiliser _root mais utiliser un ciblage relatif en utilisant _parent.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 16
    Par défaut
    merci de prendre le temps de me répondre.

    delete la fonction j'avais essayé également et ça ne fonctionnait pas.

    (je le mettais dans la fonction onRelease après les autres actions de la fonction.. ainsi : delete this.onRelease...et au pire ça aurait désactivé uniquement le clip cliqué )

    j' ai finalement trouvé une autre solution en rangeant le nouveaux noms des clip attachés, dans un tableau puis en faisant une fonction off() qui récupère les index du tableau, pour ajouter enabled=false... et une fonction on() pour remettre en true. j'appelle la fonction off() dans le clip qui est attaché par dessus les autres lorsque l'utilisateur clique sur un clip

    _root["instance"+i] c'est écrit dans l'unique frame de l'animation. _parent ça pointerait pas comme il faut l'instance si je ne m'abuse, du coup?...
    et sans _root écrit ainsi ["instance"+i] c'était pas possible non plus
    _level0 c'est kif kif que _root...en tout cas dans mon tableau c'est enregistré de cette façon.

    merci encore.

  4. #4
    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 jackvabre Voir le message
    j' ai finalement trouvé une autre solution en rangeant le nouveaux noms des clip attachés, dans un tableau puis en faisant une fonction off() qui récupère les index du tableau, pour ajouter enabled=false... et une fonction on() pour remettre en true. j'appelle la fonction off() dans le clip qui est attaché par dessus les autres lorsque l'utilisateur clique sur un clip
    c'est une bonne solution.

    dans le premier code, il n'y a pas forcément besoin d'utiliser ["instance_"+i] et si les clips sont attachés dans un même conteneur tu peux directement écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // attache le clip dans le conteneur
    var clip:MovieClip = clipConteneur.attachMovie("instance", "instance_"+i, i );
     
    clip.onRelease = function()
    {
        // désactive tous les clips contenus dans le clip parent
        for (id in this._parent)
        {
            if (this._parent[id] instanceof MovieClip) {
                this._parent[id].enabled=false;
            }
        }
    };
    désolé pour la réponse tardive ..

Discussions similaires

  1. [AC-2010] Enable = False sur un record et pas toute une table
    Par lefabe dans le forum VBA Access
    Réponses: 0
    Dernier message: 10/04/2014, 12h05
  2. Focus sur un datagrid enable = false
    Par hotsizzle dans le forum Windows Forms
    Réponses: 1
    Dernier message: 07/11/2008, 15h02
  3. [VB.NET] ForeColor d'un control avec Enabled=False
    Par jennings dans le forum Windows Forms
    Réponses: 2
    Dernier message: 06/12/2004, 14h41
  4. [FLASH MX 2004] [ecouteur] evenements sur un clip
    Par marco_ dans le forum Flash
    Réponses: 2
    Dernier message: 30/04/2004, 13h28
  5. Pb d'action sur un clip
    Par bencasp dans le forum Flash
    Réponses: 4
    Dernier message: 22/10/2003, 17h11

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