Flash 命令列表和机器人腿

Flash 命令列表和机器人腿,flash,apache-flex,command,robotlegs,Flash,Apache Flex,Command,Robotlegs,你好 我想将commandlist合并到robotlegs中,我现在的做法是让commandlist参与者在不忙的时候,但在执行命令时,robotlegs会丢失对“contextView”的引用。意思是我做错了什么 有人对命令列表和机器人腿有什么有用的提示吗?因为我假设之前已经做过无数次了。这听起来像是为了响应单个事件而一个接一个地运行一组命令。我的理解是,您应该让每个命令生成一个触发下一个命令的事件,或者简单地将所有命令注册到同一个事件 你永远不应该触及contextView的值(写),所以听

你好 我想将commandlist合并到robotlegs中,我现在的做法是让commandlist参与者在不忙的时候,但在执行命令时,robotlegs会丢失对“contextView”的引用。意思是我做错了什么


有人对命令列表和机器人腿有什么有用的提示吗?因为我假设之前已经做过无数次了。

这听起来像是为了响应单个事件而一个接一个地运行一组命令。我的理解是,您应该让每个命令生成一个触发下一个命令的事件,或者简单地将所有命令注册到同一个事件


你永远不应该触及contextView的值(写),所以听起来你在做一些不应该做的事情。

你应该对机器人腿的实用程序感兴趣

CommandLib(SequenceCommand)

  • 资料来源:
  • 演示:

您是如何执行这些命令的

也许您是在手动实例化和执行它们

您应该使用commandMap来实例化和执行它们-这将确保提供它们的依赖项(如contextView等)。例如:

commandMap.execute(SomeCommandClass);
或者(如果命令依赖于事件):

如果需要访问实用程序中的commandMap,则可能需要插入它:

[Inject] public var commandMap:ICommandMap;

希望这能有所帮助。

我没有对contextview做任何事情,只是意识到我丢失了对它的引用。我想要的是不要压制一堆与另一个相关的命令,在这种情况下,将这些命令绑定到一个事件将是一个很好的解决方案。但我想要的是能够将任何命令塞进一个队列中,然后一个接一个地保留和执行。我为撤销和重做功能做了类似的工作,我所做的是使用双链接列表。执行命令时,我将事件存储在链接的属性中。如果操作被撤消,那么重做就是稍后再次分派事件。在您的情况下,您可以存储创建事件所需的信息,然后让每个命令将光标移动到列表中的下一个链接,并创建和分派下一个事件(从链中分离上一个操作,除非您需要撤消)。您可以下载示例实现(为您定义了所有接口)这里有一个动态链接库。它不能完全满足你的需求,但它应该能给你一些想法。有关如何执行此操作的其他一些想法(以及指向不同DLL实现的链接),请查看异步顺序命令的@alecmce命令流解决方案。--你能进一步解释一下你想要实现什么吗
[Inject] public var commandMap:ICommandMap;