2009-06-22 66 views
0

我有一個包含圖像的MovieClip。 圖像可以在MC內部拖動。 MC有一個蒙版,讓我們說一個圓形,所以並非所有的圖像始終可見,取決於您拖動圖像的位置。實時複製MovieClip

我需要的是這個MC的實時副本作爲一個更小的縮略圖。當我在MC中拖動圖像時,應該實時更新重複縮略圖MC。

任何人都知道如何做到這一點?

回答

1

+1給Branden的回答。例如:

public static const SCALE : Number = 0.5; // thumbnail scale 

private var thumb : Bitmap; 
private var maskedClip : MovieClip = ...; 

//... 

maskedClip.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); 

//... 

private function mouseMoveHandler(event:MouseEvent):void { 
    var snapshot:BitmapData - new BitmapData(maskedClip.width * SCALE, maskedClip.height * SCALE, true, 0x00000000); 
    var scaleMatrix:Matrix = new Matrix(); 
    scaleMatrix.scale(SCALE, SCALE); 
    snapshot.draw(maskedClip, scaleMatrix); 

    if (!thumb) { 
     thumb = new Bitmap(snapshot); 
     addChild(thumb); 
    } else { 
     thumb.bitmapData = snapshot; 
    } 
} 
1

一個簡單的方法是首先設置一個偵聽器,以便每當圖像被移動時它都會觸發縮略圖版本更新。

爲此,我會在開始拖動圖像時使用MouseEvent.MOUSE_MOVE事件(因此您的MouseEvent.MOUSE_DOWN的偵聽器將爲MOUSE_MOVE添加一個新的偵聽器)。然後,您可以在用戶停止拖動圖像時移除MOUSE_MOVE偵聽器。

至於縮略圖本身,您可以使用BitmapData對象提供的Bitmap對象,該對象本身通過它的繪製方法(它也可以根據需要調整它的大小)捕獲蒙版圖像。

我會盡力爲之後的一些代碼挖掘一些代碼,但這應該足以讓你開始。

另一種方法是創建蒙版圖像的整個副本,縮小它,並使其在大版本的MOUSE_MOVE事件上更新縮略圖的位置。