2010-02-16 2 views
0

그래서 추천 SWFLoaders이 : 나는 크기의 이미지를로드플렉스 : 다른에 SWFLoader로로드 된 이미지의 bitmapData를 복사

: 여기

<mx:SWFLoader width="10" height="10" complete="imageLoaded()" id="ldr_src" source="img.jpg" scaleContent="true"/> 
<mx:SWFLoader id="ldr_target" scaleContent="true"/> 

private function imageLoaded():void{ 
    var bm:Bitmap = new Bitmap(ImageSnapshot.captureBitmapData(ldr_src); 
    ldr_target.source = bm; 
} 

모든 것은 하나의 작은 작은 일을 제외하고, 예상 작품으로 ldr_src에서 100x100 (10x10)입니다. 비트 맵은 ldr_target에 복사되지만 예기치 않은 결과가 발생합니다. 나는로드 된 이미지의 10x10 크기가 복사 될 것이라고 생각했을 것입니다. 대신로드 된 이미지의 (0,0)에서 (10,10)까지의 비트 맵이 대상에 복사됩니다.

이미지의 실제 크기와 상관없이 swfLoader에 의해 축소 된 크기의 bitmapData를 복사하려면 어떻게해야합니까?

답변

2

통과 image.contentImageSnapshot.captureBitmapData로, 다음 ldr_target의 폭/높이가 SRC와 동일하게 설정되어 있는지 확인 :

<mx:SWFLoader width="10" height="10" complete="imageLoaded()" id="ldr_src" source="img.jpg" scaleContent="true"/> 
<mx:SWFLoader width="10" height="10" id="ldr_target" scaleContent="true"/> 

private function imageLoaded():void 
{ 
    var bm:Bitmap = new Bitmap(ImageSnapshot.captureBitmapData(ldr_src.content)); 
    ldr_target.source = bm; 
}   

랜스

+0

감사에서 IBitmapDrawable를 구현하는 DisplayObject입니다의 스냅 샷을 얻을하여 BitmapData.draw 방법을 사용할 수 있습니다 대답, 당신은 내 하루를 구했습니다 !! :) – Yeti

+0

좋은, 듣기 좋은! –

0

내가 아니라 비디오와 비슷한 일을하려고했다 이미지가 아닌 소스. 매력처럼 일했습니다, 고마워요. (어떤 이유로 "ImageSnapshot"클래스는 어도비에서 정말 잘 보관 비밀입니다.)