這一陣子有遇到一個關於使用組件的問題
Flash常見問題&教材 2007/03/30 08:41 這一陣子有遇到一個關於組件的問題,而在Cloudward 的BLOG找到解決方案,所以貼在這裡跟大家分享。
轉貼內容:
一旦插入了UI2组件或者库里存在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(-2)和
_root.focusManager.swapDepths(-1)这两个语句,然后
trace(_root.getNextHighestDepth())
就可以得到是0而不是1048576了.
轉貼來源:http://www.cloudward.net/techLife/article.asp?id=1281
20080729補充:
我在B.SWF放了一個ComboBox, A.SWF載入B.SWF,B.SWF就不動了...
於是在A.SWF加了
target_mc._lockroot = true;
就可以動了...我不想再講髒話了...
參考:http://www.webjx.com/htmldata/2007-10-10/1192016073.html
20080731補充:
關於20080729補充:有更正統的做法
那就是在A.SWF也拉一個ComboBox在Library裡面問題就解決了!(lockroot 你的頭啦!)
轉貼內容:
一旦插入了UI2组件或者库里存在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(-2)和
_root.focusManager.swapDepths(-1)这两个语句,然后
trace(_root.getNextHighestDepth())
就可以得到是0而不是1048576了.
轉貼來源:http://www.cloudward.net/techLife/article.asp?id=1281
20080729補充:
我在B.SWF放了一個ComboBox, A.SWF載入B.SWF,B.SWF就不動了...
於是在A.SWF加了
target_mc._lockroot = true;
就可以動了...我不想再講髒話了...
參考:http://www.webjx.com/htmldata/2007-10-10/1192016073.html
20080731補充:
關於20080729補充:有更正統的做法
那就是在A.SWF也拉一個ComboBox在Library裡面問題就解決了!(lockroot 你的頭啦!)
TAG V2組件
Trackback Address :: http://diary.tw/allenliao/trackback/131

