Bonjour à tous
je vous expose mon problème (je suis sur Flex/AIR):
à partir d'un composant (Flex) assez complexe, plusieurs Canvas, photos, etc, je genère un fichier .jpg sur le poste local de l'utilisateur.
Jusque là pas de souci.
Voici un exemple simpifié de ce que je fais:
Mon problème c'est qu'un autre moment de l'appli je souhaite générer la même photo à partir du même composant MAIS PAS AFFICHE, PAS VISIBLE A L'UTILISATEUR
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 var obj:DisplayObject = conteneur as DisplayObject; var je:JPEGEncoder = new JPEGEncoder(60); var ba:ByteArray; var fileStream:FileStream; var bitmapData:BitmapData = new BitmapData(300,300); var matrix:Matrix = new Matrix(); bitmapData.draw(obj.parent, matrix); ba = je.encode(bitmapData); fileStream = new FileStream(); fileStream.addEventListener(Event.COMPLETE, fileComplete); fileStream.addEventListener(IOErrorEvent.IO_ERROR, fileError); fileStream.addEventListener(Event.CLOSE, fileClosed); fileStream.open( pageDir, FileMode.WRITE ); fileStream.writeBytes( ba ); fileStream.close(); bitmapData.dispose();
Donc je regenère mon composant mais il n'y a pas de addChild.
La question qui me tracace et ne comprends pas est:
est-ce nécessaire que l'objet, composant, displayObject, UIComponent, Canvas, ou autre, soit ou existe dans la displayList de l'appli pour que le draw fonctionne???:calim2:
Je suis un peu perdue car ne comprends pas bien
Un fait je fais une appli assez complexe de composition de pages pour un album photo et lors que l'utilisateur compose une page de l'album et la modifie derrière je genère une petite photo de visu (ça ca marche)
Par contre lorsque l'utilisateur décide de commander l'album je dois générer un fichier .jpg par page de l'album (à envoyer à l'imprimeur). Donc le but c'est de recréer le gros Canvas qui porte toute la composition de la page et générer le ByteArray à envoyer au serveur.
Donc SANS QUE LA PAGE SOIT VISIBLE A L'UTILISATEUR
je vous demande pardon de ce post un peu long mais je suis vraiment perdue
merci à tous en espérant que ceci soit clair et puisse aider aussi à d'autres
Partager