2011-02-03 67 views
0

我有一个 dsgnArea ---->的movieclip转换掩蔽的movieclip成位图,并将其保存在服务器上

dsgnArea由dsgnAreaMask,这inturn是一个movieclip掩蔽

dsgnArea.mask = dsgnAreaMask;

dsgnAreaMask和dsgnArea的宽度,高度和位置相同。

我动态地添加了多个影片剪辑和标签到dsgnArea; like .. dsgnArea.addChild(movieClip1); dsgnArea.addChild(movieClip2); dsgnArea.addChild(label1); dsgnArea.addChild(label2);等等...

 these movieclips (movieClip1,movieClip2,......) and labels(label1,label2,....) positions can be altered in runtime.. 

但我掩盖与dsgnAreaMask的dsgnArea,只有加入影片剪辑和标签的一部分是可见的...

所以,我的问题是要抢可见部分在dsgnArea中放入一个位图,如特定dsgnArea的截图,并将其保存在我的服务器中。

请帮我解决这个问题。

回答

1

s是您要捕获的DisplayObject对象,而m是应用于其上的掩码。

var maskRect:Rectangle = m.getRect(s); 
var matrix:Matrix = new Matrix(1, 0, 0, 1, -maskRect.x, -maskRect.y); 

var w:Number = Math.min(s.width, maskRect.right) - maskRect.x; 
var h:Number = Math.min(s.height, maskRect.bottom) - maskRect.y; 

var bd:BitmapData = new BitmapData(w, h); 
bd.draw(s, matrix); 

这是否行得通?

+0

嘿mj。这不适用于蒙面电影剪辑,但它与未掩盖的movieclip很好。 – svKris 2011-02-09 05:48:10

0

BitmapData draw方法就是你要找的。您可以使用它的clipRect参数来定义您想要绘制的内容(蒙版部分)。

0

Quasimondo没有一个方便的小方法来做到这一点(把整个displayObject的快照),它可以在这里找到:http://www.quasimondo.com/archives/000670.php

我不知道这是否与蒙版的内容的作品虽然。 如果没有,关键是将全部内容通过掩码的大小

var bounds:Rectangle = clip.getBounds(clip); 

尽量使用剪辑的内容,保存文件翻译

var bounds:Rectangle = dsgnAreaMask.getBounds(dsgnAreaMask); 

代替服务器而言,问题被问到(回答?)AS3 Save Media File to server

相关问题