我想在actionscript中使用协程来实现状态机。
我希望能够做如下的事情
function stateMachine():void
{
sendBytes(0xFFFF);
var receiveBytes:ByteArray = yield()
sendBytes(receiveBytes);
}
stateMachine.send( Socket.read() )
就像这样blog entry
最佳答案
据我所知,Actionscript 没有协程、延续或任何可以为您提供相关行为的东西(调用函数而不推送堆栈帧)。您可以使用静态变量和开关来伪造它,但这违背了使用协程作为状态机的目的。另外,如果没有尾部调用(据我所知,仍然只有 proposal for ECMASCRIPT ),伪造的协程不会像真正的协程那样使用恒定的堆栈空间。
关于您的示例代码,协程通常需要循环才能发挥作用。
关于python - 如何在 ActionScript 中生成 python/ruby/javascript 样式生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1918817/