好啦!回主題,層級不是圖層(Layer),這句話真的是我撞破螢幕想出來的,我來解釋一下圖層和層級的關係(如下圖)
我在R1.swf下了
loadMovieNum("L1.swf", 1);
loadMovieNum("L2.swf", 2);
這2行ActionScript
L1.swf會被擺(播放)在R1.swf的上面,而L2.swf會被擺(播放)在L1.swf的上面
若我在R1.swf下
loadMovieNum("L1.swf", 1);
loadMovieNum("L2.swf",
1);
則L1.swf會被L2.swf取代掉
結論1:一個層級(level)只能放一支影片
結論2:層級(level)越高影片擺越上面
到現在為止我們可以知道層級是用來控制影片的上下層,那圖層呢?
(過了1個月後...)
一個月前我們聊到圖層
下列我做了一個範例,我新增了2個圖層分別取名為"方"和"圓",方的圖層中我放了一個方形圖案的MC,圓的圖層中我放了一個圓型圖案的MC,當方的圖層擺在圓的圖層上方時舞臺上的畫面會呈現如圖所示
反之
看出來了嗎?圖層就是這麼單純的東西。
那深度(Depth)呢?
深度,可以說是當FLASH使用者,用actionScript載入圖片,或是畫圖控制顯示順序的屬性,那和level有什麼不同呢?
Depth:是以MovieClip為出發點的圖片顯示順序屬性,這裡講到的MovieClip當然也包括最開始的_root
level:是以FlashPlayer為出發點的影片顯示順序屬性
所以啦~一個SWF檔裡面可以有很多MC每個MC有自己的Depth
這樣看完有變的比較理解 深度(Depth)、層級(level)、圖層(Layer),她們的關係了嗎?
下面是我做的範例程式碼,看著註解實做可以作一些測試,幫助觀念釐清
loadMovieNum("L1.swf", 1);//將L1.swf載入LEVEL1
loadMovieNum("L2.swf", 2);//將L2.swf載入LEVEL2
this.createEmptyMovieClip("mc", 1);//在_root中製造一個MC且擺在_root的深度1
mc.attachMovie("mc","Cmc",1)//在剛剛製造出來的mc中加入元件庫裡一個連結名稱為Cmc的MC且擺在_root.mc的深度1
onEnterFrame = function () {//傾聽L2.swf被載入了沒(這就是我在MMUG問的問題)還沒被載入的東西是不能被改屬性的...下一篇我再來講
if (_level2 != undefined) {//等到L2.swf被載入後我們把它的位置移開一些,方便看到效果
_level2._x=15
_level2._y=15
delete onEnterFrame
}
};
希望這篇文章對你有幫助