Flash MX 2004的 UI2组件带来一个bug 就是:舞台上或者库里存在UI2组件,使用_root.getNextHighestDepth();得出来的值就是大于或者等于1048576了,换句话说getNextHighestDepth()这个命令在这里就是失效了.此时所获得的层的深度就已经超出了Flash层的动态区(0~1048575)。所有存放在超出动态区的MC都是无法用removeMovieClip()删除的. 原因就是因为插入UI2组件或者在库中存放有UI2组件的时候,flash会自动在_root里的层动态区里的最高两个层里添加两个看不见的mc:_level0.reserved和_level0.focusManager 用 trace(_root.getInstanceAtDepth(1048575)); 和 trace(_root.getInstanceAtDepth(1048574)); 就可以看到. 解决方法就是在_root第一帧动作的最前面增加 _root.reserved.swapDepths(0);和 _root.focusManager.swapDepths(1)这两个语句,然后 trace(_root.getNextHighestDepth()); 就可以得到是3而不是1048576了.
|
|
|
|
posted on 2006-05-23 20:08
blog搬家了--[www.ialway.com/blog] 阅读(400)
评论(0) 编辑 收藏 所属分类:
AS2.0