2012-05-01 49 views
0

我試圖將掩碼應用於舞臺上的所有對象,除了一對夫婦。有很多不同的對象,並且它們的數量將在未來發生變化,所以我希望動態地完成遮罩。使用`getChildAt(i).mask`屏蔽多個對象使用`掩碼不工作

我寫了這個代碼:

var i; 

for (i = 0; i < this.numChildren; i++) { 
    if (this.getChildAt(i).name!="stage_kelp_bg" && this.getChildAt(i).name!="magnifier_mask") { 
     this.getChildAt(i).mask = this.magnifier_mask; 
    } 
} 

上面的代碼是文檔類的構造方法中。簡單地說明如下:

this.stage_kelp.mask = this.magnifier_mask; 

完美地工作,但只適用於那一個對象。任何想法有什麼不對?

沒有錯誤拋出,對象只是不被蒙上。

回答

1

進一步研究如何讓我發現,我不能1個面膜適用於多個對象。我必須爲每個對象設置一個遮罩,或者將所有對象放入一個容器中並遮罩該容器。

顯然,您可以使用圖層來遮蓋時間軸上的多個對象,但無法以編程方式執行此操作,而無需將所有對象添加到一個容器。不幸的是,如果不對整個應用程序進行重新編碼,我無法做到這一點,所以我將使用時間線來掩蓋事情。

0

for each

for (var mc:movieClicp in this){ 
        mc.mask=mask_} 
+0

我得到'C:\ [path] \ classes \ ivk_kfz.as,第36行\t 1067:將類型爲String的值隱式強制爲不相關的類型flash.display:MovieClip。 '----第36行是'for(var mc:MovieClip in this){' – BumbleShrimp

+1

進一步的研究表明我不能將1個蒙版應用於多個對象。我必須爲每個對象設置一個遮罩,或者將所有對象放入一個容器中並遮罩該容器。 – BumbleShrimp

+0

import flash.display。* – al03

1

我建議你最好將所有的動畫片段移動到一個單獨的動畫片段中。如果在你的情況下可行,這將更容易。