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

Flex Discussion :

Timer : Accès à la propriété non défini


Sujet :

Flex

Vue hybride

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 34
    Par défaut Timer : Accès à la propriété non défini
    Bonjour,

    Je souhaite créer un Label qui contiendra donc du texte et qui changera de texte automatiquement toutes les 5 secondes.

    Voici mon code

    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="1130" height="732">
    <mx:Script>
    	<![CDATA[
     
    	import flash.utils.Timer;
    	import mx.controls.Alert;
     
        var mTimer:Timer=new Timer(1000,5);//ticks for 5 sec’s
     
     
    	mTimer.addEventListener(TimerEvent.TIMER,Countsec);
    	mTimer.addEventListener(TimerEvent.TIMER_COMPLETE,Comple);
     
    	mTimer.start();
     
     
    	private function Countsec(e:TimerEvent):void
    	{
    	lbltime.text=e.target.currentCount;
    	}
    	private function Comple(e:TimerEvent):void
    	{
    	lbltime.text="Time Complete";
    	}
     
    	]]>
    </mx:Script>
     
    <mx:Label id="lbltime" x="374" y="167" width="369" height="61" fontWeight="bold" fontSize="30"/>
    </mx:Canvas>
    Le problème est qu'il me dit que mTimer Comple et Countsec ne sont pas défini. Erreur exacte : Accès à la propriété non définie ...

    Je suis un peu paumé là ... Merci beaucoup

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 319
    Par défaut
    Tu as "oublié" de mettre ton code dans une méthode... c'est pas terrible

    Essaie déjà avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="1130" height="732" creationComplete="init()">
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public function init():void{
        var mTimer:Timer=new Timer(1000,5);//ticks for 5 sec’s
     
     
    	mTimer.addEventListener(TimerEvent.TIMER,Countsec);
    	mTimer.addEventListener(TimerEvent.TIMER_COMPLETE,Comple);
     
    	mTimer.start();
    }

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 165
    Par défaut timer erreur flex
    slt
    c'est normal car jamais ton timer n'est instancié car tu ne crée pas de fonction init , le simple fait d'etre entre les balise data ne s'ignifie pas que ton code est executé..... il ne l'est pas ;-)

    crée une fontion init et met ton code dedans , cette fonction tu peus la créer sur le creationComplete de ton canvas :

    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="1130" height="732" creationComplete="onInit()">
    <mx:Script>
    	<![CDATA[
     
    	import flash.utils.Timer;
    	import mx.controls.Alert;
     
                 var mTimer:Timer
     
    	private function onInit():void
    {	
    	mTimer = new Timer(1000,5);//ticks for 5 sec’s
                 mTimer.addEventListener(TimerEvent.TIMER,Countsec);
    	mTimer.addEventListener(TimerEvent.TIMER_COMPLETE,Comple);
     
    	mTimer.start();
    }	
     
    	private function Countsec(e:TimerEvent):void
    	{
    	lbltime.text=e.target.currentCount;
    	}
    	private function Comple(e:TimerEvent):void
    	{
    	lbltime.text="Time Complete";
    	}
     
    	]]>
    </mx:Script>
     
    <mx:Label id="lbltime" x="374" y="167" width="369" height="61" fontWeight="bold" fontSize="30"/>
    </mx:Canvas>
    si t'es ecouteurs ne fonctionne pas ajoute true :


    mTimer.addEventListener(TimerEvent.TIMER_COMPLETE,Comple,true);
    aux deux ecouteurs

    attention j'ai ecrit ca de tete il peut y avoir des fautes d'orthographe donc pas de copier coller (a proscrir en general)
    A+

  4. #4
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    Salut,

    Place ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	mTimer.addEventListener(TimerEvent.TIMER,Countsec);
    	mTimer.addEventListener(TimerEvent.TIMER_COMPLETE,Comple);
     
    	mTimer.start();
    dans une fonction plutôt (init() par exemple))


    [EDIT] : Désolé le message a été posté en même temps que les autres ...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 34
    Par défaut
    Merci à tous Comme je débute en AS je n'avais pas compris l'intérêt de creationComplete qui est le squelette u script as THX

  6. #6
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    Etant donné que le mxml est "traduit" en actionscript à la compilation, ton composant mxml est en fait l'instanciation d'une classe actionscript (portant le nom de ton composant). C'est pour cette raison que tu peux écrire du code actionscript à l'interieur, mais que tu ne peux pas balancer le code sans fonction ni rien : de la même manière que dans une classe, tout le code présent dans ta classe est inclu dans une ou plusieurs fonction(s) (méthodes)

    Le création complete sert à appeler la fonction init() une fois que ton composant a terminé sa création. Autrement dit, par rapport à du code actionscript, c'est comme si tu faisais un appel à ta fonction init() à partir du constructeur de la classe.

    Je ne sais pas si je suis bien compréhensible mais grossièrement c'est ça

  7. #7
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Si le problème est résolu, N'oubliez pas de le marquer.
    Merci pour votre compréhension

Discussions similaires

  1. Problème d'accès à la propriété non définie.
    Par ALeX850 dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 22/07/2011, 15h12
  2. Propriété non définie composant mxml
    Par psgman113 dans le forum Flex
    Réponses: 2
    Dernier message: 06/01/2010, 16h10
  3. propriété fl non définie [CS4][AS3]
    Par paragoge dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 23/09/2009, 14h00
  4. Propriété Key non définie
    Par Eliark dans le forum Flash/Flex
    Réponses: 0
    Dernier message: 03/08/2009, 18h43
  5. accès à la méthode non définie add item
    Par john123 dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 26/03/2009, 14h09

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