“朝聞道夕死可矣”,最近越來越深的體會了這句話。人就是為了追求真理而活,一旦悟透了真理,人生也就沒有任何遺憾了。這樣的心情很符合解決技術問題后的那種滿足感。
最近遇到了一個不大不小的問題,發現手動拖到時間軸上的 mc 不能在腳本中刪除,一時搞不懂是為什么。后來了解到 mc 的深度是有學問的,一共可分為 3 個大塊,分別是:
1、時間軸區(深度范圍 -16 384 ~ -1)
這個區域是用來放置在設計器中生成的那些元素,這個區域里的 mc 是不能用腳本刪除的。但是腳本創建的 mc 可以制定到這個深度范圍中,這樣也就不能刪除了。
這就可以解答好多現象,比如腳本創建的 mc 一般總會在設計器創建的之上,因為你死也不會想到深度制定在小于 -16 384? 并且大于???? -16 390(低于 -16 38x ?的深度不存在,不會被創建)的范圍內才可以放到設計器創建的 mc 下面。并且我前面的問題也就不難解釋了。
解決刪除問題也不難,只要把那個深陷泥沼的 mc 換出來,再殺掉就 ok 了。具體點就是先是用 swapDepths() 方法來個乾坤大挪移,再用 removeMovieClip() 接上一際獨孤九劍,于是世界清靜了。
(注:在用戶卡片的制作中我用到了 swapDepths(),用來解決單擊后的卡片會放置在最上層。)
現在想想,以前做的那些 Banner 甚至沒有 0 的突破,所有 mc 的 Depth 都是負數,呵呵。
2、動態區(深度范圍 0 ~ 1 048 575)
這是個腳本可以肆意妄為的世界,可以直接使用獨孤九劍決定任何 mc 的生死,不用費時費力的乾坤大挪移了。
3、保留區(深度范圍 1 048 576 ~ 2 130 690 045)
我想這個區域的存在目的就是為了確保深度超過 1 048 575 后,創建的 mc 仍然有地方儲存。要想刪除這區域里的 mc 的話,還是要先拖到動態區去,然后是砍頭還是腰斬隨便你。(把動態區形容的有點像刑場,呵呵)
這就是 Flash 深度框架的所以然,總體上感覺還是挺牛的,用好了就可以呼風喚雨,用不好就只能到處受氣。
總之就是這么點事,把以后會忘,所以記在這里。忘了解決的方法是小,忘了聞道時的喜悅就遺憾至極了。