Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    dispatchEvent da classe statica

    ho una classe MyClass con metodo statico myMeth.

    importo MyClass.

    Chiamo il metodo statico MyClass.myMeth.
    al termine del metodo myMeth vorrei poter dispacciare un evento nella classe in cui ho importato MyClass.
    Non funziona perchè MyClass non è istanziata, quindi non saprei neanche dove mettere un listener, ne per che cosa.

    Si può risolvere questa situazione?

    grazie!
    There is nothing conceptually better than Rock 'n' Roll.

    poker is very much like sex. most people think they're the best but don't know what they're doing.

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Solitamente per questi casi si cerca di utilizzare classi singleton che prevedono una singola istanziazione della classe dando la possibilità a chi usa la classe di usare un metodo che solitamente viene chiamato getInstance() anche per assegnare eventi dispatchati all'interno della classe.

    Codice PHP:
    package {
        
    import flash.events.Event;
        
    import flash.events.EventDispatcher;
        
    import flash.utils.setTimeout;
        public class 
    Singleton extends EventDispatcher {
            private static var 
    _instance:Singleton;
            private static var 
    _allowInstantiation:Boolean;
            public function 
    Singleton ():void {
                if (!
    _allowInstantiation) throw (new Error("Error: Instantiation failed: Use Singleton.getInstance() instead of new."));
            }
            public static function 
    getInstance ():Singleton {
                if (
    _instance == null) {
                    
    _allowInstantiation true;
                    
    _instance = new Singleton();
                    
    _allowInstantiation false;
                }
                return 
    _instance;
            }
            public static function 
    testMethod (s:String=""):void {
                
    trace(s);
                
    setTimeout(Singleton.privateTestMethod1000);
            }
            private static function 
    privateTestMethod ():void {
                
    getInstance().dispatchEvent(new Event("test"));
            }
        }

    Una classe del genere potrà essere usata così dentro ad un filmato flash:
    Codice PHP:
    Singleton.getInstance().addEventListener("test"testDrive);
    Singleton.testMethod("prova");

    function 
    testDrive (evt:Event):void {
        
    trace(evt);


  3. #3
    ottimo, funziona tutto a dovere, grazie.

    There is nothing conceptually better than Rock 'n' Roll.

    poker is very much like sex. most people think they're the best but don't know what they're doing.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.