Как я могу сделать генераторы стилей python / ruby ​​/ javascript в ActionScript? - PullRequest
2 голосов
/ 17 декабря 2009

Я хочу использовать сопрограммы в ActionScript для реализации конечного автомата.

Я бы хотел сделать что-то вроде следующего

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

stateMachine.send( Socket.read() ) 

как в этой записи в блоге

Ответы [ 2 ]

2 голосов
/ 18 декабря 2009

Насколько я знаю, Actionscript не имеет сопрограмм, продолжений или чего-либо, что даст вам соответствующее поведение (вызовите функцию, не выдвигая кадр стека). Вы можете подделать его, используя статические переменные и switch, но это отрицает цель использования сопрограмм для конечных автоматов. Кроме того, без оконечных вызовов (все еще только предложение для ECMASCRIPT , насколько я знаю), поддельные сопрограммы не будут использовать постоянное пространство стека, как настоящие сопрограммы.

Что касается вашего примера кода, сопрограммы обычно должны быть зациклены, чтобы быть полезными.

1 голос
/ 17 декабря 2009

Ну как на счет этого?

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

stateMachine( mySocket )
...