我有两个动画片段,一个在顶部,一个在底部。顶部设置为第二帧。我将它移动到下一帧的z轴底部,对于剩余的帧,它播放所有帧,就像它已经重置而没有任何代码(就像我没有告诉它gotoAndStop(2))。
图片示例:http://i.imgur.com/mQ8f5uT.gif(很难通过帧速率判断,但是当我将其移动到下方时,暗绿框开始播放,好像我没有设置它的帧一样)
我知道当我用setChildIndex编码深度交换时没有那个问题,但是动画丢失了。
如果您想知道,这是一个更大的移动角色精灵动画的简化问题,我想在动画中交换影片剪辑的深度而不重置深度变化下的影片剪辑。所以我并不是真的在寻找一个解决方案本身,除非有一个很好的设计解决方案,而不是乐队援助“hack。”
答案 0 :(得分:1)
我想我完全不明白你的问题。无论你用它做什么,MovieClip都会继续播放或继续停止,即使它已从场景中移除。我做了一个简单的例子,表明MovieClip状态不受深度变化的影响。
工作的SWF在这里测试:http://zdg.ru/tmp/updown.swf
代码是:
import flash.events.MouseEvent;
var is_playing:Boolean = true;
btn_toggle.addEventListener(MouseEvent.CLICK, doToggle);
btn_updown.addEventListener(MouseEvent.CLICK, doUpdown);
function doToggle(evt:MouseEvent) {
if (is_playing) mv_test.stop(); else mv_test.play();
is_playing = !is_playing;
}
function doUpdown(evt:MouseEvent) {
var tmp:int = getChildIndex(mv_block);
setChildIndex(mv_block, getChildIndex(mv_test));
setChildIndex(mv_test, tmp);
}