我有一个图库movieclip:Cards。在牌上,每一帧都是牌(矢量)(例如第1帧:俱乐部王牌,第2帧:俱乐部2等)。 我创建了一个新的卡片实例并将每个帧转换为位图(所以现在第1帧的俱乐部Ace是位图),现在我希望舞台上的每张卡片(我将添加)都是转换对象的副本。 / p>
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);
但是它会创建一个新的原始卡片实例,而不是带有位图的卡片。
如何使用已修改的卡片动画片段(带有位图的卡片)将其分配给我添加到舞台的每张新卡?
任何帮助将不胜感激。感谢
答案 0 :(得分:0)
如何使用已修改的卡片动画片段(带有位图的卡片)将其分配给我添加到舞台的每张新卡?
看起来你有一个名为" Cards"的链接类。您只需实例化该类即可再次生成movieclip。即
var newCard:Card = new Card();
之前您在此处设置了一个新的MovieClip到已经实例化的卡类:
newCard = cachedCard;
但是,如果您的Card movieclip在显示卡信息的每个帧上都有位图,您还可以创建每张卡的位图,如下所示:
public function createCard( frame:int ):Bitmap
{
cachedCard.gotoAndStop( frame );
var cardBitmapData:BitmapData = new BitmapData( cachedCard.width, cachedCard.height, true, 0 );
cardBitmapData.draw( cachedCard );
return new Bitmap( cardBitmapData );
}