将屏蔽的movieclip转换为位图并将其保存在服务器上

时间:2011-02-03 07:35:08

标签: actionscript-3 flash-cs5

我有一个 dsgnArea ---->一个movieclip

dsgnArea被dsgnAreaMask屏蔽,其中inturn是一个movieclip

dsgnArea.mask = dsgnAreaMask;

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

我动态地为dsgnArea添加了多个动画片段和标签; 喜欢..        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时,只有部分添加的movieClip和标签可见...

所以,我的问题是将dsgnArea中的可见部分抓取到位图中,就像特定的dsgnArea的屏幕截图一样,并将其保存在我的服务器中。

请帮我解决这个问题。

3 个答案:

答案 0 :(得分:1)

Say 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);

这有用吗?

答案 1 :(得分:0)

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

答案 2 :(得分:0)

Quasimondo做了一个方便的小方法(拍摄整个displayObject的快照),可以在这里找到:http://www.quasimondo.com/archives/000670.php

我不知道它是否适用于蒙面内容。 如果没有,诀窍就是将整个内容按掩码大小翻译

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

而不是使用剪辑的内容

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

就保存文件到服务器而言,问题(已回答?)AS3 Save Media File to server