如何正確理解

來源:互聯網
上載者:User
  _root/_level/depth在AS中是基礎,正確理解三者的作用和關係,對AS初級學習者有很大的協助……

  最近看到很多朋友發貼說不清楚_root和_level是幹什麼的,還有一個depth(深度)。經常把人搞得暈乎。xx( 所以痛下決心一定要讓各位深入瞭解。如果認為說的對的給點掌聲,認為說的錯的扔點磚頭順帶一起研究。

  _level與路徑

  在開始教程之前先說一下檔案的目錄結構,因為這種結構與swf中的路徑結構十分相似

  在我的電腦裡有一個mypath.swf的檔案,它存放在我的電腦的C盤的downloads目錄的 A star演算法執行個體目錄中。我們訪問的時候可以這麼訪問c:\downloads\A star演算法執行個體\mypath.swf。這一長串路徑說明了mypath.swf在我的電腦裡的儲存位置。Flash中MC或者其他對象在swf中的儲存也遵循著同樣的規則。

  還是以上面為例,如果我們把我的電腦看成一個Flash檔案,那麼下面的C D E盤就相當於flash中的_level0 _level1 _level2,downloads和A star演算法執行個體這兩個目錄就相當於兩個MC,而mypath.swf就是最終的mc。和檔案的訪問方式相同在這裡訪問mypath.swf你可以用_level.downloads.A star演算法執行個體.(mypath.swf)來訪問他了。是不是有點明白了?不過注意上面的_level.downloads.A star演算法執行個體.(mypath.swf)只是說明一下原理真正使用時你不能用mypath.swf這種名字給MC命名的。

  關於_root

  _root相當於根,還是先用上面第一張圖的檔案結構來說明:對於c:\downloads\A star演算法執行個體\mypath.swf這個檔案,它的根就是C盤。針對c盤的任何一個檔案她的根就是C盤,針對於任何一個D盤的檔案她的根就是D盤以此類推。同樣在flash裡面也是如此。針對任何一個_leve0的Mc,它的_root就是_level0.依此類推。

  什麼是depth

  Depth表示的是深度,這與_level和_root是兩碼事。因為depth至於顯示有關,Depth越大,就顯示在上面。而_level和_root的最重要的作用是用來識別MC在flash 中的路徑。

  要注意的是_level是有各自預設的Depth,並且每個mc中都有自己的Depth可以分配。

  為什麼說_level有各自預設的Depth。因為所有的_level(包括_level0、_level1、_level2......)他們實際上都從屬於一個更上一級的MC,大概就是SWF本身了。_level0位於SWF的-16384這個位置_level1位於SWF的-16383這個位置依此類推,Flash大概支援955599999999個_level(具體的沒有冊出來),如果還是用檔案的方式來理解,那麼就是說可以有955599999999左右的盤符。

  如果你不想用系統對_level的預設深度你甚至可以交換_level0和level1的深度,別不信。試試知道了

  下面我們做一個例子說明一下

  在flash中新開一個檔案, 第一楨寫入loadMovie("logo.jpg",1); //這裡的logo.jpg當然是填入你本地的任何一個jpg檔案然後建立一個層隨便畫點什麼東西在,保證這個層一直存在到30楨,一定要保證新載入的圖片和這個層上面的東西重疊,否則無法看到效果的。

  第15幀寫入

trace("_level0 depth="+this.getDepth()); trace("_level1 depth="+_level1.getDepth()); this.swapDepths(1);

  第30幀寫入

trace("_level0 depth="+this.getDepth()); trace("_level1 depth="+_level1.getDepth()); stop();   好了運行以下,你可以看到當_level0與depth 1 交換時,_level0上的東西移到了_level1的上面結果是

  _level0 depth=-16384
  _level1 depth=-16383
  _level0 depth=1
  _level1 depth=-16383

  是不是很有意思 ?

  提示:各個level中必須有東西才可以trace,如果你沒有使用loadMovie到_level1,那麼trace(_level1.getDepth())是無效的。

  前面說到的每個MC擁有自己可以分配的depth,這也好理解。就是說假如_level1中可以有自己的depth 1位置的MC,_level2中可以有自己的depth 1位置的MC。兩個不會衝突,誰顯示在最前面取決於_level2和_level1誰的depth 大depth(深度)。

  補充:所謂depth(深度),也就是幾個mc的疊加位置。depth(深度)越大,位置越上。如果你有過aw的製作經驗,那麼這也就類似於它的層,上面的可以遮住下面的。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。