0
我有一個圖書館動畫片段:卡片。在牌上,每一幀都是一張牌(矢量)(例如,第1幀:俱樂部Ace,第2幀:俱樂部2等)。 我創建了卡片的一個新實例並將每個幀轉換爲位圖(所以現在第1幀上的俱樂部Ace是位圖),現在我希望舞臺上的每張卡片(我將添加)作爲轉換對象的副本。在AS3中創建現有動畫片段的副本
var cachedCard:Cards = new Cards();
// [...] for every frame convert that frame to bitmap, remove original children and add bitmap instead
var newCard:MovieClip = new MovieClip();
newCard = cachedCard;
// I understand that this is not working,
// a similar example would be with arrays, array1 = array2,
// array1 is just another name for array2,
// but you can use array1.concat(array2) and now array1 is separated from array2
// Can I do something similar with movieclips ?!
我已經嘗試過這樣的解決方案: AS3 clone MovieClip
我嘗試這樣做:
function copyClip(clip:MovieClip)
{
var sourceClass:Class = Object(clip).constructor;
var duplicate:MovieClip = new sourceClass();
return duplicate;
}
var card:MovieClip = new MovieClip();
card = copyClip(cachedCard);
,但它創造原卡,而不是一個與它的位圖的新實例。
如何使用修改後的卡片動畫片段(帶有位圖的卡片)將其分配給每個添加到舞臺的新卡片?
任何幫助將不勝感激。謝謝
是的,似乎是正確的,謝謝,但問題是我需要創建一個新的位圖每次卡翻轉。我想要做的是爲卡片創建一次位圖(52張卡片+背面),然後重新使用這個位圖,我不想一次又一次地爲每張卡片進行繪製。 – Stefan
然後你會想創建一個位圖數據實例的數組。然後,您可以交換每個位圖的位圖數據。例如,使用上面的實現和一個BitmapData數組,'someCardBitmap.bitmapData = arrayOfBitmapData [index]' –