Creative Wrong Answer

  private function mcToBitmap(mc:MovieClip):Array
  {
   var bitmapData:BitmapData = new BitmapData(mc.width, mc.height,true);
   var bitmapArray:Array = [];
   var totalFrame:int = mc.scenes[0].numFrames;
   trace(totalFrame);
   
   for(var i:int=0; i<totalFrame; i++)
   {
    mc.gotoAndStop(i+1);
    bitmapData.draw(mc);
    bitmapArray.push(bitmapData.clone());
    bitmapData.dispose();
   }
   
   return bitmapArray;
  }

 

무비클립을 인수로 받고 각 프레임의 bitmapData를 추출해서 Array로 넘겨준다.

반사이미지 만들어주는 오픈소스를 가져다 썼는데 이놈이 인수를 무비클립만 받는다.. 거기서 반사 이미지까지 만들어진 무비클립을 내쪽에서 처리하려면 다시 비트맵 데이터로 넘겨 받아야 하는경우가 있어서 만들게 됐다.

 

무비클립은 Scene이 한개인놈만 되고.. 안에서 scenes.length로 for문을 한번더 돌리면 모든 씬의 모든 프레임에 있는 데이터를 bitmapData로 가져올수도 있다.

 

뭐 필요한 경우가 있겠지 -ㅅ-;;;;

신고

Comment +2

  • kisspa 2009.08.10 14:05 신고

    totalFrame이 1보다 크면 위의 소스는 에러가 납니다.

    bitmapData.dispose();
    는 객체를 반환하는것으므로...for문 밖에 넣어주던가 해야 겠네요

    • 감사합니다~

      이게 쓸려고 했다가 상황이 바껴서 다르게 처리하게 되서 안쓰게 되버려서 여러가지 경우에 대한 테스트를 하지 못했군요.

      시간이 되면 테스트 해보고 수정하도록 하겠습니다~