Я создаю визуальный редактор на flex и должен позволить пользователям экспортировать свои проекты в формат изображений. Но у меня есть одна проблема: размер холста фиксирован, и когда пользователь добавляет элемент, который выходит за эти размеры, добавляются полосы прокрутки. И пользователь продолжает работать над проектом. но когда он хочет сделать снимок холста, он просто получает видимую часть холста с полосами прокрутки. как получить изображение полноразмерного холста?
Единственное решение, которое я нашел, - это проверить положение и размеры дочерних объектов canvas и изменить их размер. затем сделайте снимок и измените размер. Но это ммм ... слишком сложно, я думаю. Есть ли "легкие методы"?
<?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>