Je crée un éditeur visuel en flex et je dois permettre aux utilisateurs d'exporter leurs projets au format Image. Mais j'ai un problème: la taille de la toile est fixe et lorsque l'utilisateur ajoute un élément qui est hors de ces tailles, certaines barres de défilement sont ajoutées. Et l'utilisateur continue à travailler sur le projet. mais quand il veut prendre un instantané de la toile, il obtient juste la partie visible de la toile avec des barres de défilement. comment obtenir l'image de la toile pleine grandeur?Snapshot de DisplayObject dans flex 3
La seule solution que j'ai trouvée est de vérifier les positions et les tailles des objets enfants en toile et de les réajuster pour les adapter. Ensuite, prenez un instantané et redimensionnez. Mais c'est hmmmm ... trop compliqué je pense. Y a-t-il des "méthodes faciles"?
<?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>