我有一個包含圖像的MovieClip。 圖像可以在MC內部拖動。 MC有一個蒙版,讓我們說一個圓形,所以並非所有的圖像始終可見,取決於您拖動圖像的位置。實時複製MovieClip
我需要的是這個MC的實時副本作爲一個更小的縮略圖。當我在MC中拖動圖像時,應該實時更新重複縮略圖MC。
任何人都知道如何做到這一點?
我有一個包含圖像的MovieClip。 圖像可以在MC內部拖動。 MC有一個蒙版,讓我們說一個圓形,所以並非所有的圖像始終可見,取決於您拖動圖像的位置。實時複製MovieClip
我需要的是這個MC的實時副本作爲一個更小的縮略圖。當我在MC中拖動圖像時,應該實時更新重複縮略圖MC。
任何人都知道如何做到這一點?
+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;
}
}
一個簡單的方法是首先設置一個偵聽器,以便每當圖像被移動時它都會觸發縮略圖版本更新。
爲此,我會在開始拖動圖像時使用MouseEvent.MOUSE_MOVE事件(因此您的MouseEvent.MOUSE_DOWN的偵聽器將爲MOUSE_MOVE添加一個新的偵聽器)。然後,您可以在用戶停止拖動圖像時移除MOUSE_MOVE偵聽器。
至於縮略圖本身,您可以使用BitmapData對象提供的Bitmap對象,該對象本身通過它的繪製方法(它也可以根據需要調整它的大小)捕獲蒙版圖像。
我會盡力爲之後的一些代碼挖掘一些代碼,但這應該足以讓你開始。
另一種方法是創建蒙版圖像的整個副本,縮小它,並使其在大版本的MOUSE_MOVE事件上更新縮略圖的位置。