2008-09-16 19 views
3

Je me demandais s'il existait des bibliothèques de code ou de classe sur la façon d'implémenter le multithreading ou le "thread vert" dans ActionScript. Comme vous l'avez peut-être vu, Scott Peterson est en train de développer une sorte d'ensemble d'outils, mais je n'ai pas trouvé plus d'informations à ce sujet que sa performance sur l'événement Adobe MAX Chicago.Multithreading ou thread vert dans actionscript?

Cordialement Niclas

Répondre

1

Il n'y a aucun moyen intégré pour faire le filetage vert dans ActionScript. Vous devez écrire du code pour le gérer.

Créez une fonction qui effectue une itération de l'opération que vous voulez effectuer. Il devrait retourner vrai ou faux selon que son travail est fait ou non. Vous devez maintenant calculer l'intervalle de temps restant avant la prochaine mise à jour de l'écran sur l'événement ENTER_FRAME. Cela peut être fait en utilisant flash.utils.getTimer.

start = getTimer(); 
//thread is a ui component added to system manager that is redrawn each frame 
var fr:Number = Math.floor(1000/thread.systemManager.stage.frameRate); 
due = start + fr; 

Conserver sur l'exécution de votre fonction tout en vérifiant la valeur de retour de la fonction à chaque fois et vérifier si les délais a été franchi en comparant getTimer() avec raison.

Cela a été mis en œuvre dans une classe utilisable par Alex Harui dans l'entrée de blog - Threads in ActionScript

-3

Je suis un gars graphique, pas un programmeur, donc je ne suis pas sûr que cela vous aidera. MAIS!

Je fais toutes mes "images" multi-images et j'écris chaque thread graphique sur une image différente. Assurez-vous que vous avez seulement 1-3 threads, et réglez votre FPS à 30 ou 60.

Ceci est utile pour les petits projets car sa résistance aux bogues et sa mise en œuvre est faite pour vous.

1

It's an old article, mais la méthode de quasimondo de lancer plusieurs fichiers SWF et partager les données sur un LocalConnection peut également être intéressant. Ils disaient que le va-et-vient de l'utilisation de LocalConnection peut prendre quelques cycles, mais si les itérations en cours de traitement sont suffisamment complexes, cela ne devrait pas poser trop de problèmes.