Domanda

Voglio usare coroutine in ActionScript per implementare una macchina a stati.

Mi piacerebbe essere in grado di fare qualcosa di simile al seguente

function stateMachine():void
{
   sendBytes(0xFFFF);
   var receiveBytes:ByteArray = yield()
   sendBytes(receiveBytes);
}

stateMachine.send( Socket.read() ) 

come in questo blog

È stato utile?

Soluzione

Per quanto ne so, non ha Actionscript coroutine, continuazioni o qualsiasi cosa che vi darà il comportamento rilevante (chiamare una funzione senza spingere uno stack frame). Si può fingere utilizzando le variabili statiche e un switch, ma che contrasta con l'obiettivo di utilizzare coroutine per macchine a stati. Inoltre, senza chiamate di coda (ancora solo una per ECMAScript , come coroutine quanto ne so), falsi non utilizzare lo spazio di stack costante coroutine reali fanno.

Per quanto riguarda il codice di esempio, coroutine in genere bisogno di ciclo per essere utile.

Altri suggerimenti

Bene, come su questo?

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

stateMachine( mySocket )
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top