私はflexでビジュアルエディタを作成しており、ユーザーが自分のプロジェクトをイメージ形式にエクスポートできるようにする必要があります。しかし、私は1つの問題があります。キャンバスのサイズは固定されています。ユーザーがこれらのサイズの外にある要素を追加すると、いくつかのスクロールバーが追加されました。ユーザーはプロジェクトを継続します。キャンバスのスナップショットを撮りたいときは、キャンバスの目に見える部分をスクロールバーで表示するだけです。フルサイズキャンバスのイメージを取得する方法は?Flexでの表示オブジェクトのスナップショット3
私が見つけた唯一の解決策は、キャンバスの子オブジェクトの位置とサイズを確認し、それに合わせて再調整することでした。スナップして元のサイズに戻します。しかし、それはうーん...あまりにも複雑だと思います。いくつかの「簡単な方法」がありますか?
<?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>