2010-09-12 87 views
2

所以我有這個精靈是說任意100 x 100這是添加到舞臺上。現在當內容被添加到這個精靈時,精靈會自動擴展。我不希望這種情況發生,我想要的是設置一個定義的邊界,即100 x 100,如果添加的內容太多,我可以滾動它。我的問題是我不能像傳統的方式添加面具到舞臺上,因爲我有許多其他的盒子,這些盒子在尺寸和數量上各不相同。我發現了一種方法,我可以做到這一點,但效率非常低,我做的是我創建了一個動畫片段,用100x100填充一些顏色,然後實例化它。接下來我添加了精靈,如果內容重疊,它不會被看到,只有100x100。我有點絆倒在這個,不知道爲什麼這個工程。任何幫助非常感謝,謝謝。精靈的設置掩碼

這是代碼。

//a movieclip with its linkage called containerMasker has a blue square that serves as the mask 

var myMasker = new containerMasker(); //the mask 
var myContainer = new Sprite(); //the content being masked 
//x and y coordinates fixed for both items, width also but no height 

myMasker.addChild(myContainer); 
addChild(myMasker); 
+0

我很難理解你是什麼試圖實現。如果您嘗試將內容限制爲設定大小,則可以將其屏蔽,或使用位圖API繪圖函數繪製矩形。我沒有看到掩蓋它有什麼問題... – Daniel 2010-09-12 04:40:09

回答

7

這裏的標準方式

 
myContainer.mask = myMasker; 
addChild(myContainer); 
addChild(myMasker); 

現在,如果你需要多少盒要做到這一點,你可以創建一個類來處理它

 
public class MaskedItem extends MovieClip 
{ 
    public function MaskedItem(params:Object) 
    { 
     var masker:Sprite = new Sprite(); 
     masker.graphics.beginFill(0); 
     masker.graphics.drawRect(0 , 0 , params.maskWidth , params.maskHeight); 
     masker.graphics.endFill(); 

     var mc:MovieClip = params.displayObject as MovieClip; 
     mc.mask = masker; 

     addChild(masker); 
     addChild(mc); 
    } 
} 

那麼你可以做

 
var mc1:MovieClip = new MaskedItem({maskWidth:100, maskHeight:100 , displayObject:mc1}); 

+0

這是真棒,工作就像一個魅力!真的很感激它。 – 1337holiday 2010-09-13 00:44:00