积极答复者
如何使用递归函数调用Animation,而Animation可以依次执行?

问题
答案
-
虽然还是没看太明白,不过大概意思理解了。
我觉得可以换一种思路解决你的问题,先递归生成所有节点,然后再动态生成一个StoryBoard,
这个StoryBoard的功能就是就是你要展示的所有动画的过程,这样不涉及程序执行的时间问题,也不涉及一个StoryBoard结束另一个开始的问题了。
动态生成StoryBoard可以看下面这个帖子
http://social.microsoft.com/Forums/zh-CN/silverlightzhchs/thread/8f08bf13-fd87-4613-8ad4-6cb2f0135b03
里面有相关StoryBoard的时间相关,动态生成等方法- 已标记为答案 十字伤·忆 2009年5月22日 6:39
全部回复
-
比如说哈,我现在要插入一个结点,动画效果是结点从左上角开始,先移动到根结点旁边,然后一步步地downwards移动到叶子结点,每次移动都是一个动画。我首先确定了要插入结点的最终位置,然后用一个递归的函数做移动,比如:private void tracedownwards(Node n,Node n。parent){p=n.parent;if n.parent还有parent
then tracedownwards(n,p.parent)otherwisen 朝 p 移动的动画}但是因为动画需要2秒钟,代码执行只需要几毫秒,所以,递归的前面几个动画的效果会被覆盖,造成的结果是,待插入结点,直接从左上角移动到它应该去的地方了,没有一步步地效果。怎么才能让动画依次执行,或者说,让代码等待动画执行完继续执行呢?不知道理解问题了没有,有什么不清楚了继续问……守贴 -
虽然还是没看太明白,不过大概意思理解了。
我觉得可以换一种思路解决你的问题,先递归生成所有节点,然后再动态生成一个StoryBoard,
这个StoryBoard的功能就是就是你要展示的所有动画的过程,这样不涉及程序执行的时间问题,也不涉及一个StoryBoard结束另一个开始的问题了。
动态生成StoryBoard可以看下面这个帖子
http://social.microsoft.com/Forums/zh-CN/silverlightzhchs/thread/8f08bf13-fd87-4613-8ad4-6cb2f0135b03
里面有相关StoryBoard的时间相关,动态生成等方法- 已标记为答案 十字伤·忆 2009年5月22日 6:39