2011-02-03 24 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

相關問題