我在flex中創建一個可視化編輯器,並且需要讓用戶將他們的項目導出爲圖像格式。但我有一個問題:畫布的大小是固定的,當用戶添加超出這些尺寸的元素時,會添加一些滾動條。用戶繼續在該項目上工作。但是當他想抓取畫布的快照時,他只能看到帶滾動條的畫布上的可見部分。如何獲得全尺寸畫布的圖像?flex 3中的DisplayObject快照
我發現的唯一解決方案是檢查畫布子對象的位置和大小,並將其重新合併以適合它們。然後拍攝並調整大小。但它嗯...我覺得太複雜了。有一些「簡單的方法」嗎?
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Script>
<![CDATA[
import mx.graphics.ImageSnapshot;
private function SnapshotButtonHandler():void
{
var snapshot:ImageSnapshot = ImageSnapshot.captureImage(AppCanvas);
var file:FileReference = new FileReference();
file.save(snapshot.data, "canvas.png");
}
]]>
</mx:Script>
<mx:Canvas id="AppCanvas" width="800" height="300" backgroundColor="0xFFFFFF">
<mx:Box x="750" y="100" width="100" height="100" backgroundColor="0xCCCCCC" />
</mx:Canvas>
<mx:Button id="SnapshotButton" label="take snapshot" click="SnapshotButtonHandler()" />
</mx:Application>