2

我有一个movieClip,我想附加到这个movieClip 位图。我想将每个位图附加到不同的电影剪辑帧。我已经尝试过这样的事情,但它不起作用。这是我正在创建的记忆游戏。

for(var i : int = 0; i < cardList.length; i++){
    var helpVar : int = cardList[i].pictureOfCard;
    cardList[i].gotoAndStop(cardList[i].pictureOfCard+2);
    var bitmap : Bitmap = new Bitmap(bitMapArray[helpVar].bitmapData.clone());
    cardList[i].addChild(bitmap);
    cardList[i].gotoAndStop(1);
}
4

3 回答 3

1
var i :int = 0;
processNext();

function processNext():void
{
   cardList[i].addEventListener(Event.FRAME_CONSTRUCTED, onFrameConstructed );
   cardList[i].gotoAndStop(cardList[i].pictureOfCard+2);
}


function onFrameConstructed( e:Event ):void
{
    cardList[i].removeEventListener(Event.FRAME_CONSTRUCTED, onFrameConstructed );
    var helpVar : int = cardList[i].pictureOfCard;        
    var bitmap : Bitmap = new Bitmap(bitMapArray[helpVar].bitmapData.clone());
    cardList[i].addChild(bitmap); 

    if( i < cardList.length - 1 )
    {
       i++;
       processNext();
    {
    else
       trace("All done");

}
于 2012-08-27T16:42:20.483 回答
1

一段时间后,我发现我试图实现的目标在 as3 中可能是不可能的。我解决问题的方法是,每次我 gotoAndStop 到帧时,我都需要有位图,我 addChild(bitmap) 并且每次我 gotoAndStop 其他不应该有位图的帧时,我从movieClip 中删除Child(bitmap)。(因此使位图可见和不可见的方法非常相似)

于 2012-09-04T12:45:26.470 回答
1

您可以简单地加载所有位图并只显示一个,它现在应该是可见的。例如

function ShowFrame(nr:int):void{
   for(i:int = 0; i<bitMapArray.length; i++){
      bitMapArray[i].visible = false;
   }
   bitMapArray[nr].visible = true
}

我的 AS3 技能生疏了,所以这可能需要一些语法修正,但理论上可行。

于 2012-08-27T16:44:30.400 回答