variable = 0;
function change() {
variable = 1;
}
go = newVars();
go.onLoad = function(success) {
trace("#First");
change();
}
go.load('http://www.stackoverflow.com/variables');
trace("#Second");
trace(variable); // output = 0;
Le problème est qu'il exécute #Second
avant #First
, ce qui signifie que l'objet ne soit pas chargé fullly mais le code continue néanmoins. Y at-il un moyen de gérer cela? J'ai essayé d'utiliser une boucle while, mais c'est moche et ça bloque le flash. Y a-t-il un moyen décent de gérer cela, est-ce dû à une meilleure structure de code/flux de programme ou existe-t-il un moyen technique de le faire attendre? Notez également: Ce code est exécuté côté serveur, ce qui signifie qu'il n'y a pas d'image impliquée. Lorsque les projets deviennent plus gros, cela devient très moche, en particulier lorsque vous récupérez des choses multiples à partir d'un serveur, vous devez utiliser une imbrication très profonde, vous devez continuer à répéter le même code, par exemple pour l'achat d'un numéro de série :LoadVars ne pas attendre jusqu'à ce que les données sont chargées
a.onload() {
if(moneyAmount > 10){
b.onload(pay) {
sendProduct();
d.onload(serial) {
print(serial);
}
d.load('www.so.com/getSerial');
}
b.load('www.so.com/pay?amount=5');
}else{
c.onload(wallet) {
displayWallet(wallet)
}
c.load('www.so.com/getWallet);
}
}
a.load('www.so.com/checkMoneyAmount');
J'ai ajouté un exemple dans ma question, quel genre de solution proposeriez-vous pour cela? –
De cette façon, il vous suffit de configurer les gestionnaires onLoad une fois, et vous pouvez vous concentrer un peu plus sur la logique – AgileJon