2

movieClipがあり、この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

すべてのビットマップをロードして、現在表示されているはずの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 に答える
1

しばらくして、私が達成しようとしていたことは、as3ではおそらく不可能であることに気付きました。私が問題を解決した方法は、フレームに移動するたびにビットマップaddChild(bitmap)が必要であり、ビットマップが存在しないはずのフレームにgotoAndStopするたびにmovieClipからremoveChild(bitmap)が必要になることです。(したがって、ビットマップを表示および非表示にするのと非常によく似たアプローチです)

于 2012-09-04T12:45:26.470 に答える