2010-04-13 6 views
0

J'ai un tableau qui renvoie des données multidimensionnelles à partir d'une base de données mysql, lorsque cela est collecté, la fonction createNews crée l'interface utilisateur. Le problème que je rencontre est que la boucle est itérative plus rapidement que l'interface utilisateur est en cours de création, est-il possible d'utiliser des écouteurs d'événements avec des boucles afin qu'il continue après que ma fonction a terminé son travail?as3 boucles et écouteurs d'événements

var t:Array = responds.serverInfo.initialData; 
for (var i:uint = 0; i < t.length; i++) { 
    var date = t[i][1]; 
    var newstitle = t[i][2]; 
    var story= t[i][3]; 
    var image = t[i][4]; 

    createNews(date, newstitle, story, image);  
} 

Répondre

0

vous pouvez avoir un rappel personnalisé à partir lorsque vous avez terminé la création de l'élément ui, qui traitera alors l'élément suivant dans le tableau.

 
var t:Array = responds.serverInfo.initialData; 
var numProcessed:int = 0; 

private function processNext() : void { 
    if (numProcessed == t.length) return; 
    var date = t[numProcessed][1]; 
    var newstitle = t[numProcessed][2]; 
    var story= t[numProcessed][3]; 
    var image = t[numProcessed][4]; 

    numProcessed++; 

    createNews(date, newstitle, story, image); 
} 

selon la façon dont fonctionnent createNews fonctionne et comment tout est structuré, votre processus d'appel processNext lorsque l'interface se fait diffèrent. Je suppose que createNews créerait une nouvelle classe ou quelque chose, dans ce cas, vous attacheriez un écouteur d'événement à cette nouvelle classe, en écoutant un événement COMPLETE qui sera distribué lorsque la création est terminée et en définissant processNext en tant que gestionnaire d'événement.

+0

à la fois semblent fonctionner, je ne savais pas flash était seul thread. Bien que createnews() appelle environ 3 autres fonctions alors peut-être que c'est ça? – Ross

0

Votre fonction createNews ne bloque-t-elle pas la boucle jusqu'à son retour? Actionscript est mono-thread, donc je ne suis pas sûr de savoir comment la boucle pourrait continuer lorsque la fonction createNews n'est pas encore terminée.

+0

indique les transitions de composants chargées (interpolations) dans, ou charge quelque chose à l'aide du chargeur ou de l'urloader, ou à l'aide d'un timerEvent ou d'un setTimeout. Ceux-ci seraient tous async – jonathanasdf

Questions connexes