我有一个包含图片的MovieClip。 图像可以在MC内部拖动。 MC有一个面具,比如圆形,所以并非所有图像都是可见的,取决于你拖动图像的位置。
我需要的是将此MC的实时副本作为较小的缩略图。当我在MC中拖动图像时,应该实时更新重复的缩略图MC。
任何人都知道怎么做?
答案 0 :(得分:1)
一个简单的方法是首先设置一个监听器,这样每当移动图像时,它都会触发缩略图版本更新。
为此,当您开始拖动图像时,我只会点击MouseEvent.MOUSE_MOVE事件(因此,MouseEvent.MOUSE_DOWN的监听器将为MOUSE_MOVE添加新的监听器)。然后,当用户停止拖动图像时,您可以删除MOUSE_MOVE侦听器。
对于缩略图本身,您可以使用从BitmapData对象提供的Bitmap对象,该对象本身通过它的draw方法捕获蒙版图像(它也可以根据需要调整大小)。
我稍后会尝试为此挖掘一些代码,但这应该足以让你开始。
另一种方法是创建蒙版图像的整个副本,缩小它,并使其更新大版本的MOUSE_MOVE事件上缩略图的位置。
答案 1 :(得分: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;
}
}