1. 程式人生 > >影片剪輯例項名的幾點注意

影片剪輯例項名的幾點注意

 如果一個影片剪輯例項,在開始的時候沒有命名例項名稱,而以後的某一幀命名了例項名稱。那麼影片剪輯將會從第一幀到影片結束一直使用系統預設的例項名稱,形如:instanceXX,XX是不重複的。

如果一個影片剪輯從它出現的那一幀就被命名了例項名稱,那麼以後將一直使用這個例項名稱,直到給他賦予了新的例項名稱。

如果一個影片剪輯(例項名稱是MY_MC)的例項出現在第N幀,而在第N+1幀這個影片剪輯被複制了,或者又從庫中拖出了相同的影片剪輯。而且這兩個影片剪輯的例項名稱都被命名為MY_MC,那麼在設計時最先被拖進場景的,或者“被”複製的影片剪輯將成為真正的MY_MC例項。

另外一個影片剪輯雖然_name也是MY_MC,但是對這條語句並不會有反映

MY_MC._alpha = 50;

因為它只對設計中首先出現的真正的MY_MC有效果。

如果將“剛才變透明”的“真正的”MY_MC例項的例項名稱刪除。效果還是一樣的因為,剛才說過“如果一個影片剪輯從它出現的那一幀就被命名了例項名稱,那麼以後將一直使用這個例項名稱,直到給他賦予了新的例項名稱”因為沒有新名字替代,他將一直使用MY_MC這個例項名。而“複製出來的”,或者“後來從庫中拖進場景”的例項名也是MY_MC的影片剪輯,他總比不上“剛才變透明”的MY_MC“正宗”。

下面看這條語句:

for (i in _root) {
 if (_root[i]._name == "MY_MC") {
  trace(_root[i]._alpha);
  }
}

輸出是 :

100

100

這很容易理解,以為他們的_name都為MY_MC。我門利用這個性質可以把場景中幾個需要輸出屬性的MC 標記他們的例項名,然後使用for (i in _root) {},來選擇性的輸出。

再看下面的程式碼:

for (i in _root) {
    
if (_root[i]._name =="MY_MC") {
        _root[i]._alpha 
=0;
    }
}

你一定以為所有例項名為MY_MC的影片剪輯都會變成透明,可是結果只有原始的MY_MC變成透明的了。可見無論使不使用迴圈,都無法把多個相同例項名的影片剪輯同時更改屬性。

如果再在場景上拖進幾個例項名為“A”的影片剪輯,和幾個例項名不設定的影片剪輯(他們在執行時將使用系統預設不重複的例項名)

使用如下程式碼:

for (i in _root) {
    
if (_root[i]._name !="MY_MC") {
        _root[i]._alpha 
=0;
    }
}

你將發現:

例項名為A的“沒有透明”,

例項名為MY_MC“沒有透明”,

使用不重複例項名或者沒有設定例項名的“變成透明瞭”。

總結一下,一般情況下不建議使用相同例項名稱的影片剪輯。因為只能獲得他們的屬性,不能更改他們的屬性。FLASH之所以沒有限制你使用相同的例項名,應該是 使你在使用for (i in _root) 的時候,可以方便你將某些例項名相同的例項“排除在外”。而不是設定、更改 所有例項名相同的例項。

裡面的性質還要自己親自試試,體會體會的。

以上內容版權歸wizim所有,因本人水平有限,難免有錯誤的地方,歡迎討論。

轉載請著名出處: