2009-12-07 4 views
1

Salut à tous, j'ai un fichier de classe nommé Main.as et autre icon.as classe calledrflash AS3 méthodes d'appel de classe d'objets

package { 

    import icon; 
    public class main { 
     public var _time:String; 
     function main() { 

      _time="01:10"; 
      iconObj=new icon(this); 

     } 
     function timerFunction() { 
      _time=newTime; 
     } 
    } 
} 

package { 

    public class icon { 
     public var mytime:NUmber; 
     function icon(mainObj:*) { 

      trace("My time "+mainObj._time) 

     } 

    } 
} 

// échantillon outout

// Mon temps 01: 10

Comment obtenir la mise à jour actuelle de la classe principale sans appeler le MainObj à plusieurs reprises. Est-ce possible dans Flash AS3, ou toute autre méthode alternative pour cette idée.

Répondre

1

Consultez le Observer Pattern. Vous pouvez avoir une horloge qui notifie ses observateurs une fois que le temps change.

Il existe déjà des bibliothèques simplifiant ce travail pour vous comme as3-signals. Vous pouvez également utiliser flash.events.EventDispatcher pour la même tâche.

+0

en fait, je ne veux pas déclencher la minuterie des clas principaux. J'ai besoin de vérifier cela à partir du fichier icon.as. à un moment précis, je dois obtenir le temps de la classe principale .. je pense que maintenant vous avez compris ce que je veux :) – coderex

+0

Si vous "besoin de prendre le temps de la classe principale", vous devrez demander, comme "mainObj. temps". –

0

magasin une référence à l'objet de classe Main localement dans Icon

package 
{ 
    public class Icon 
    { 
     public var mytime:NUmber; 
     //store an instance of Main obj here. 
     public var mainObj:Main; 
     public function Icon(mainObj:Main) 
     { 
      this.mainObj = mainObj; 
     } 
     //call this method whenever you want time 
     public function readTime():void 
     { 
      trace("My time " + mainObj._time); 
     } 
    } 
}