Ok, I have a controller class that has an onInit function that is  
fired form a class constructor. For some reason when I call a function  
from there, it never fires.....

This is a partial code snippet.

// Constructor
public function dirTestController()
{
        //turn the key, start it up....
        addEventListener( FlexEvent.CREATION_COMPLETE, onInit );
}

private function onInit( event:Event ):void
{
        //setup event listeners
        systemManager.addEventListener( getDirEvent.GET_DIRECTORY_EVENT,  
handler_GetDirectoryEvent );
                        
        // get the initial data

        // ----> THIS NEVER FIRES
        getDirectoryData();
}
                
public function getDirectoryData(evt:Event):void
{
        // fire an event(s) to get the initial data
        dispatchEvent (new getDirEvent(getDirEvent.GET_DIRECTORY_EVENT));
}

To work around it, I used this (and it works):

private function onInit( event:Event ):void
{
        //setup event listeners                 
        systemManager.addEventListener( getDirEvent.GET_DIRECTORY_EVENT,  
handler_GetDirectoryEvent );
                        
        // Set a timer since the below function does not seem to get fired.
        var myTimer:Timer = new Timer(1, 1);
        myTimer.addEventListener("timer", getDirectoryData);
        myTimer.start();
}

Now I have found a way around it by using a timer class, but I am  
wondering why the original would not work? When i call the  
getDirectoryData function from a button click or so on, the data comes  
in without issue. And obviously it works when dispatched by a timer,  
etc.

dnk




Reply via email to