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 :

[as 2]Accés aux clip en dehors du constructeur


Sujet :

ActionScript 1 & ActionScript 2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Par défaut [as 2]Accés aux clip en dehors du constructeur
    Bonjour.

    J'ai un clip qui est en liaison avec une classe.
    Dans ce clip j'ai 4 button.
    Je voudrais que lorsque je clique sur l'un d'eux je puisse modifier la valeur alpha(ou autre mais là en l'occurrence c'est alpha).

    Lorsque je fais..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    _cmd1._alpha=100;_cmd2._alpha=50;_cmd3._alpha=50;_cmd4._alpha=50;
    ..dans le constructeur ça marche nikel, mais dés que c'est placé dans une fonction ça ne marche plus.

    J'abonne une de mes commandes à un événement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this._cmd1.onRelease = this._changeFor1;
    Mais lorsque je place la ligne qui modifie la transparence rien ne se passe.
    Je précise que j'ai vérifié et le traitement passe bien dans la fonction.

    Si quelqu'un a une piste Merci.
    Quelqu'un que si ça continu avec as2 il va jeter le pc par la fenêtre.

  2. #2
    Membre très actif
    Profil pro
    retraité
    Inscrit en
    Mars 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 127
    Par défaut
    tu dois monter ou déclarer ta variable au dessus des fonctions
    pourqu elle soit connue dans toute la classe

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Par défaut
    Merci pour la réponse^^

    C'est ce que je fais il me semble :
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    import lib.*;
    import UI.*;
     
     
    class UI.ConfigAffiche.MenuType extends MovieClip
    {
            //declarations
            private var _leType:String;
     
            private var _cmd1:Button;
            private var _cmd2:Button;
            private var _cmd3:Button;
            private var _cmd4:Button;
     
            //constructeur
            public function MenuType() 
            {
                    this._cmd1.onRelease = this._changeFor1;
                    this._cmd2.onRelease = this._changeFor2;
                    this._cmd3.onRelease = this._changeFor3;
                    this._cmd4.onRelease = this._changeFor4;
                    _cmd1._alpha=100;_cmd2._alpha=50;_cmd3._alpha=50;_cmd4._alpha=50;
            }
     
            //accesseurs
            public function GetType():String
            {return _leType;}
            public function SetType(theType:String):Void
            {_leType=theType;}
     
     
            //on change le style
            private function _changeFor1():Void
            {_leType ="1";_cmd1._alpha=100;_cmd2._alpha=50;_cmd3._alpha=50;_cmd4._alpha=50;}
            private function _changeFor2():Void
            {_leType ="2";_cmd1._alpha=50;_cmd2._alpha=100;_cmd3._alpha=50;_cmd4._alpha=50;}
            private function _changeFor3():Void
            {_leType ="3";_cmd1._alpha=50;_cmd2._alpha=50;_cmd3._alpha=100;_cmd4._alpha=50;}
            private function _changeFor4():Void
            {_leType ="4";_cmd1._alpha=50;_cmd2._alpha=50;_cmd3._alpha=50;_cmd4._alpha=100;}
     
    }
    Donc dans le constructeur aucun problème les valeur alpha sont modifiées mais pas dans les fonctions _changeFor.
    J'ai essayé de récupérer la valeur alpha de _cmd2 dans un champs texte, dans le constructeur ça m'affiche '50' et dans les méthodes 'undefinded'.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Par défaut
    Ok donc dans les fonctions changeFor visiblement this représente le bouton il faut donc faire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _parent._cmd1._alpha=50;

  5. #5
    Membre très actif
    Profil pro
    retraité
    Inscrit en
    Mars 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 127
    Par défaut
    essaye de chager private par public

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Par défaut
    En faite c'était une erreur de ciblage.
    Quand j'abonne un élément à l'événement onRelease à ma fonction, la fonction prend pour this l'élément qui a été abonné.

    Du coup il fallait remonter à parent.

    Mais au final j'ai opté pour un delegate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mx.utils.Delegate.create(this, _changeFor1);
    Du coup la fonction prend pour this l'objet de la classe même et donc :
    fonctionne parfaitement.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/01/2006, 12h30
  2. [TGroupBox] Accès aux objets
    Par JediKerian dans le forum Composants VCL
    Réponses: 3
    Dernier message: 04/04/2003, 14h34
  3. Chemin d'accès au clip et scenario en flash
    Par Gential dans le forum Flash
    Réponses: 4
    Dernier message: 28/02/2003, 10h10
  4. [Kylix] Kylix: acces aux portx séries
    Par ghost942 dans le forum EDI
    Réponses: 4
    Dernier message: 03/02/2003, 21h10
  5. [VB6] [BDD] Optimisation de l'accès aux données
    Par LadyArwen dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 30/01/2003, 13h27

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