2011-08-06 66 views
1

我在屏幕上有兩個影片剪輯,並且我想將兩個遮罩應用於兩者。我設置了使用的掩模AS3:將遮罩應用於多個影片剪輯

mc1.mask = mymask; 
mc2.mask = mymask; 

只有mc2接收到掩碼。如何爲兩個不同的動畫片段設置相同的蒙版,而無需將它們都放在單個動畫片段中?

+0

我的問題的理想解決方案將涉及克隆面具。但是,在AS3中沒有duplicateMovieClip函數,我很難找到替代方案。 – Abdulla

回答

4

使掩碼成爲類並使用此類的實例來掩蓋每個影片剪輯。

你的類也可以設置屬性或者如果需要的話,你可以在構造函數中有更多的靈活性傳遞參數...

 
var mask1:MyMask = new MyMask(); 
var mask2:MyMask = new MyMask(); 

mc1.mask = mask1; 
mc2.mask = mask2; 
+0

我的面具駐留在沒有類定義的舞臺上。我可以使用的只是一個實例名稱。我希望找到一個解決方案,而不必進行太多更改,因爲我的Flash文件中有很多掩碼。 – Abdulla

+0

按照您的其他評論,應該可以製作一個面具的副本。 BitmapData類有一個[克隆方法](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#clone()),雖然我懷疑這會減少工作比讓面具變成一個班級! – PatrickS

+0

現在我想起來了,你是對的。我應該可以使用Object(mask1).constructor來獲取面具的類並從那裏開始工作。 – Abdulla

5

,如果你正試圖運用上都你的兩個精靈相同的掩模你可以將2個精靈對象設置爲顯示對象容器的子對象,並將掩碼指定給容器。

+0

這兩個精靈已經在舞臺上。我嘗試使用addChild將它們添加到MovieClip容器中,然後對其進行遮罩,但似乎無法正常工作。我需要一個解決方案,不涉及從舞臺上刪除精靈(並將它們添加到另一個容器中)。 – Abdulla

+0

+1爲我的最佳解決方案 – ericosg