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 :

[FLASH MX2004] bouton dragable et input textbox


Sujet :

Flash

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 32
    Points : 15
    Points
    15
    Par défaut [FLASH MX2004] bouton dragable et input textbox
    Bonjour, je n'arrive pas à récupérer la valeur d'un input textbox contenu dans un bouton :

    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
    _root.attachMovie("button", "button5", 5);
     
    _root["button5"]._x = 300 ;
    _root["button5"]._y = 300 ;
     
    // donner la valeur par defaut de l'input text
    _root["button5"].nom.text = "instancie";
    trace("testBouton : " + _root["button5"].nom.text);
     
     
    // rendre draggable
    _root["button5"].onPress = function() {
    	startDrag(this);
    }
    _root["button5"].onRelease = function() {
    	stopDrag();
    };
    _root["button5"].onReleaseOutside = function() {
    	stopDrag();
    };
    bouton est un bouton contenant un input textbox s'appelant nom.
    Le code ci-dessus fonctionne (on peut drager le bouton et rentrer un texte dans son champs) mais sa trace est :

    "testBouton : undefined"

    comment accéder à l'intérieur du bouton?

  2. #2
    Membre averti Avatar de titouille
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 353
    Points : 356
    Points
    356
    Par défaut
    Hellop !!

    Si c'est un symbole de type "button", je te conseille de le transformer en symbole de type "clip", c'est beaucoup plus maniable.

    Pour lui donner un comportement de bouton, tu crée 3 images clé, comme pour un bouton, tu met ce que tu veux dessus, puis tu crée un calque qui s'étend sur les 3 images et dans la seule image-clé de ce calque, tu mets le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    this.onRollOver = function() { this.gotoAndStop(2); rollOver(); }
    this.onRollOut = function() { this.gotoAndStop(1); rollOut(); }
    this.onPress = function() { this.gotoAndStop(3); press(); }
    this.onRelease = function() { this.gotoAndStop(2); release(); }
    this.onReleaseOutside = function() { this.gotoAndStop(1); releaseOutside(); }
    dans chaque gestionnaire, la première action est de se placer sur la bonne image clé.
    La seconde action permet de déclencher une méthode qu'on va associer au gestionnaire, et qu'on va pouvoir affecter à notre bouton. par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    var myBtn:MovieClip = attachMovie( 'myBtn', 'myBtn', 10 );
    myBtn.rollOver = function()
    {
    trace ( 'call (on)rollOver method' );
    }
     
    myBtn.rollOut = function()
    {
    trace ( 'call (on)rollOut method' );
    }
    Et normalement, tu devrai réussir à atteindre sans problème une instance de textInput au sein de ce bouton transformé en clip

    Bon courage, a++

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    bonjour, alors j'avance un peu, merci de me donner des idées, j'ai changé mon bouton en un clip alors j'arrive a entrer un texte dans le champs input (nom), mais pas le modifier, voici mon code actuel :

    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
     
     
    	attachMovie( "button", "button5", 5 ); 
     
    	_root["button5"].nom.text = "instancie";
    	_root["button5"].onPress = function() {
    	startDrag(this);
    	//ajouter le doubleclick au pion
    	//if this is the first click
    	if (!click) {
    		timer = getTimer()/1000;
    		_root.click = true;
    	}else {
    		timer2 = getTimer()/1000;
    	}
     
    	//if it is a double click
    	if ((timer2-timer)<.25) {
    		trace("dblclick");
    	} else {
    		timer = getTimer()/1000;
    		_root.click = true;
    	}
    	};
    	_root["button5"].onRelease = function() {
    		stopDrag();
    	};
    	_root["button5"].onReleaseOutside = function() {
    		stopDrag();
    	};
    je n'ai pas acces au champs input, la souris devient une main et non un curseur, quand je commente les onPress, onRelease... alors j'obtient le curseur.

    En fait je n'ai aps besoin du comportement bouton, je voudrais pouvoir editer le champs en faisant double click

    je en sais pas trop comment faire pour récupérer mon curseur quand je double click...

  4. #4
    Membre averti Avatar de titouille
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 353
    Points : 356
    Points
    356
    Par défaut
    si le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    trace( 'double-click' )
    se déclenche, ça veut bien dire que ton code fonctionne au double-click.

    A la place de mettre un trace, tu met un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.nom.text = "mon texte";
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.nom.setFocus();
    pour mettre le curseur dans le textInput.

    Bon courage, a++

Discussions similaires

  1. [FLASH MX2004] Bouton constament survolé
    Par Isses dans le forum Flash
    Réponses: 2
    Dernier message: 27/03/2006, 18h28
  2. [FLASH MX2004] Boutons
    Par Flory dans le forum Flash
    Réponses: 3
    Dernier message: 08/09/2005, 10h21
  3. [FLASH MX2004] Bouton atteindre un clip
    Par Destiny dans le forum Flash
    Réponses: 1
    Dernier message: 25/08/2005, 13h46
  4. [FLASH MX2004] .. bouton animation ? a l'aide
    Par Hktetraede dans le forum Flash
    Réponses: 1
    Dernier message: 17/08/2005, 19h00
  5. [FLASH MX2004] Bouton pour lire vidéo
    Par kiki93 dans le forum Flash
    Réponses: 10
    Dernier message: 23/11/2004, 11h50

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