Flash MX 2004的 UI2組件帶來一個(gè)bug 就是:舞臺(tái)上或者庫(kù)里存在UI2組件,使用_root.getNextHighestDepth();得出來的值就是大于或者等于1048576了,換句話說getNextHighestDepth()這個(gè)命令在這里就是失效了.此時(shí)所獲得的層的深度就已經(jīng)超出了Flash層的動(dòng)態(tài)區(qū)(0~1048575)。所有存放在超出動(dòng)態(tài)區(qū)的MC都是無法用removeMovieClip()刪除的. 原因就是因?yàn)椴迦險(xiǎn)I2組件或者在庫(kù)中存放有UI2組件的時(shí)候,flash會(huì)自動(dòng)在_root里的層動(dòng)態(tài)區(qū)里的最高兩個(gè)層里添加兩個(gè)看不見的mc:_level0.reserved和_level0.focusManager 用 trace(_root.getInstanceAtDepth(1048575)); 和 trace(_root.getInstanceAtDepth(1048574)); 就可以看到. 解決方法就是在_root第一幀動(dòng)作的最前面增加 _root.reserved.swapDepths(0);和 _root.focusManager.swapDepths(1)這兩個(gè)語句,然后 trace(_root.getNextHighestDepth()); 就可以得到是3而不是1048576了.
|
|
|
|