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 :

[AS2] Ecouteur d'evenements


Sujet :

ActionScript 1 & ActionScript 2

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 110
    Points : 51
    Points
    51
    Par défaut [AS2] Ecouteur d'evenements
    Est-il possible de créer un ecouteur d'evenements pour nimporte quoi en AS2, parce que j'ai vu que l'on peut en créer un pour un evenement du type clavier ou souris mais moi je voudrais qu'une fonction s'execute si lorsqu'une variable passe à un certains niveau. Est-ce possible?

  2. #2
    Membre régulier
    Homme Profil pro
    Directeur technique
    Inscrit en
    Novembre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 56
    Points : 105
    Points
    105
    Par défaut
    Non ca ce n'est pas possible avec la technique des écouteurs. Pour néanmoins avoir ce genre de fonctionnalité, il ne faut pas utiliser des champs mais des propritétés avec get et set.

    Exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    class A
    {
    	var b : Number = 0;
    }
    Tu aimerais que si la valeur de b dépasse 20 alors il se passe quelque chose. Prenons
    par exemple qu'il doit avoir un trace.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    trace("Ca c'est trop");
    Si ta classe est ecrite comme ca alors a part tester la variable après chaque affectation
    dans ton code, tu auras de la peine.

    Mauvais exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function setB(val:Number):A
    {
    	var a1 : A = new A();
    	a1.b = val;
    	if(a1.b > 20)
    		trace("Ca c'est trop");
     
    	return A;
    }
    Ecrivons plutot la classe comme suit

    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
     
     
    class A
    {
    	private hb :Number = 0;  // Le champ qui contiendra la valeur
     
    	//La propritété b
    	public function set b(value:Number):Void 
    	{
    		hb = value;
    		if(val>20)
    			trace("Ca c'est trop");
    	}
     
    	public function get b():Number
    	{
    		return hb;
    	}
    }
    L'exemple devient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function setB(val:Number):A
    {
    	var a1 : A = new A();
    	a1.b = val;   <----------- Appel implicitement function set b(val)... => affichage du trace si b > 20
    	return A;
    }

    Avec cette methode tu centralises tout le mécanisme de modification d'un champ à un endroit.

  3. #3
    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
    Bien sur que c'est possible...

    Mais pour celà, ta classe devra initialiser le EventDispatcher et utiliser ce dernier pour broadcaster des évenements en direction des écouteurs...

    Fais quelques recherches sur EventDispatcher et ASBroadcaster, tu trouveras surement ton bonheur


    a++

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 110
    Points : 51
    Points
    51
    Par défaut
    J'ai trouver la solution avec la fonction watch , apparemment le ASBroadcaster n'a pas l'air d'etre actif ou du moins visisble en AS2

  5. #5
    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
    ça marche pas comme ça en 2 secondes...

    tu dois importer la classe : import mx.events.EventDispatcher;

    puis l'initialiser : EventDispatcher.initialize( this );

    puit l'utiliser pour générer tes évenements :

    EventDispatcher.broadcastEvent( { type:"click", target:this } );


    puis tu peux faire des abonnements avec des objets ou autre...

    M'enfin, y faut te documenter 1 peu, car EventDispatcher est assez subtil à utiliser. Mais d'une fois que tu as commençé, tu n'arrêteras plus, tellement c'est utile et pratique

    a++

Discussions similaires

  1. Ecouteur dans composant AS2
    Par Martial83 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 3
    Dernier message: 16/09/2010, 08h25
  2. [FLASH MX2004] [AS2] Valeur d'indice de boucle dans evenement
    Par Demco dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 02/05/2006, 10h43
  3. [Conception] MVC - Déclarer l'écouteur d'evenement dans la vue.
    Par etiennegaloup dans le forum Général Java
    Réponses: 9
    Dernier message: 04/01/2006, 18h50
  4. [AS2] Ecouteur de souris
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 27/07/2005, 13h25
  5. [FLASH MX 2004] [ecouteur] evenements sur un clip
    Par marco_ dans le forum Flash
    Réponses: 2
    Dernier message: 30/04/2004, 13h28

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