2009-12-17 30 views

Répondre

2

Pour autant que je sache, Actionscript n'a pas coroutines, continuations ou tout ce qui vous donnera le comportement pertinent (appeler une fonction sans pousser un cadre de pile). Vous pouvez truquer à l'aide de variables statiques et un switch, mais cela va à l'encontre de l'objectif d'utiliser des coroutines pour les machines d'état. En outre, sans appels de queue (encore seulement un proposal for ECMASCRIPT, pour autant que je sache), les coroutines truquées n'utiliseront pas l'espace de pile constant comme le font les corotines réelles.

En ce qui concerne votre code d'exemple, les coroutines doivent généralement être en boucle pour être utiles.

1

Eh bien, que diriez-vous?

function stateMachine(socket:Socket, target:YourReceiverClass):void 
{ 
    target.sendBytes(0xFFFF); 
    var receiveByte:int = socket.readByte(); 
    target.sendBytes(receiveByte); 
} 

stateMachine(mySocket)