Faire capture d'écran vers JPEG

arnaud_verlaine Messages postés 21 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 20 septembre 2006 - 8 sept. 2006 à 17:32
arnaud_verlaine Messages postés 21 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 20 septembre 2006 - 12 sept. 2006 à 11:05
Bonjour.
J'ai enfin réussi avec ma capture d'écran !!
L'exemple se trouve ici : www.infotek.be/flash/example1.swf
le problème est que si je mets un texte ou une image sur la capture ça fonctionne parfaitement (exemple http://users.skynet.be/fa395022/example1.zip) mais si je crée un clip de manière dynamique, ca ne fonctionne pas, il se mets au dessus de tout et ne fait pas partie de la capture.
 (exemple http://users.skynet.be/fa395022/example2.zip)
Pourriez-vous m'aider?
D'avance, Merci

15 réponses

shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
11 sept. 2006 à 09:59
0
arnaud_verlaine Messages postés 21 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 20 septembre 2006
11 sept. 2006 à 10:03
Bonjour à toi et merci de ta réponse.
Je ne veux pas une autre source, mais seulement comprendre comment faire pour que la capture soit effective sur tous les clipset pas justes les clips fixes.
Les clips créés dynamiquement ne sont pas dans la capture.
C'est certainement une bétise mais étant newbie en flash, ce n'est pas évident.
Peux-tu y jeter un oeil?
D'avance, Merci à toi
0
shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
11 sept. 2006 à 10:14
Essaye de le faire sur le _root ca doit marcher

<hr />http://www.carton.c.la
0
arnaud_verlaine Messages postés 21 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 20 septembre 2006
11 sept. 2006 à 10:16
_root à quel niveau?
Peux-tu me dire sur quelle ligne/fonction dois-je mettre cela?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
11 sept. 2006 à 11:30
je pense que _root est considérer comme un clip donc tu peux peut étre l'utiliser dans la fonction.
sinon tu fait un clip container qui contient tout tes autres clip et tu fait l'impr de celui-ci

<hr />http://www.carton.c.la
0
arnaud_verlaine Messages postés 21 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 20 septembre 2006
11 sept. 2006 à 13:03
"je pense que _root est considérer comme un clip donc tu peux peut étre l'utiliser dans la fonction."

Oui je veux bien mais dans quelle fonction et comment faire?
Peux-tu me montrer où dans le code?
Merci d'avance,
0
shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
11 sept. 2006 à 14:01
euhh le truc bleu qui fait office de lien ct pas histoire de faire joli.

<hr />http://www.carton.c.la
0
arnaud_verlaine Messages postés 21 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 20 septembre 2006
11 sept. 2006 à 14:03
tu me donnes une autre source...
C'est bien gentil, mais je veux y arriver avec ma source. Tout fonctionne sauf le fait que les clips dynamiques se mettent au dessus du système de capture ( cfr mon fichier FLA)
Et c'est là que je veux comprendre et modifier  ce code
0
shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
11 sept. 2006 à 15:31
Oula oui excuse moi j'avais même pas lu ce que tu avais écrit j'ai repondu directement selon le titre Mille excuse. Mais je t'avais quand méme donnée un elément de reponse "sinon tu fait un clip container qui contient tout tes autres clip et tu fait l'impr de celui-ci"

<hr />http://www.carton.c.la
0
arnaud_verlaine Messages postés 21 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 20 septembre 2006
11 sept. 2006 à 15:36
Je pense justement que c'est ce que je fait !!

Si tu regarde l'exemple 1, j'ai un clip statique avec par exemple un texte dessus (ou une image ou autre chose), là ca fonctionne impecc.
Si tu regardes, l'exemple 2, je crée dynamiquement un clip avec une image, le problème est que ce clip se mets au dessus de tout et bien entendu ne fait pas partie de la capture.
Etant newbie en flash, je vois ce qu'est un container mais pour le faire...
Peux-tu regarder ma source et me donner un petit coup de pouce?
D'avance, je te remercie.
0
shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
11 sept. 2006 à 15:50
c'est pas bien compliquer quand même tu créer un clip de base et tu y met tout dedans.
comment tu fait pour faire ta capture aprés ? pasque je pense qu'avec _root ca passe

<hr />http://www.carton.c.la
0
arnaud_verlaine Messages postés 21 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 20 septembre 2006
11 sept. 2006 à 16:10
la capture se fait de la manière suivante :

import it.sephiroth.mloaderWindow
import it.sephiroth.PrintScreen




var loader:mloaderWindow = this.createClassObject(mloaderWindow, "loader", 10, {_x:-1000, _y:-1000})
loader.setStyle("borderColor", 0x006699)


// listener which receives the broadcast message
// from the PrintScreen class
var listener:Object = new Object();


// copy in progress...
listener.onProgress = function(target:MovieClip, loaded:Number, total:Number){
 var perc = Math.round((loaded/total)*100)
 loader.label = "computing... " + perc + "%"
 loader.value = perc
}
// copy is complete, send the result LoadVars to PHP
listener.onComplete = function(target:MovieClip, load_var:LoadVars){
 loader.label = "sending to php..."
 load_var.send("pixels.php", "_blank", "POST")
 loader.close()
}


/**
 * Print Button has been clicked
 */
//function print_me(){
 //video_mc.pause() // first pause the playing video
 pn = new PrintScreen(); // initialize the PrintScreen class
 pn.addListener( listener ); // assign a listener
 pn.print(this,0,0,550,500) // copy the _root
 loader.label = "computing... 0%"
 loader.open(true, true, true); // open a loader
//}

et mon clip dynamique est créé comme ceci :

/*********************/
/*     Fond ecran 1  */
/*********************/


//On crée notre Fond1
var FondEcran1:MovieClip = this.createEmptyMovieClip("FondEcran1", this.getNextHighestDepth());
//on définit un écouteur pour écouter ce que le movieClipLoader dira (notamment, l'avancement du chargement)
var ListenerFondEcran1:Object = new Object();
//quand le chargement est fini, le movieClipLoader déclenche un événement loadInit qu'on va écouter et quand il surviendra, le code entre { } sera exécuté.
//le movieClipLoader renvoie aussi le clip dans lequel il fait le chargement (et on le récupère dans target_mc)
ListenerFondEcran1.onLoadInit = function(target_mc:MovieClip):Void
{
    //ici on est sûr que notre image est bien chargée, on peut la redimensionner
    FondEcran1._x=0;
 FondEcran1._y=0;
 FondEcran1._width=500;
 FondEcran1._height=500;
}
//on définit notre movieClipLoader
var mcl1:MovieClipLoader = new MovieClipLoader();
 
//on lui attache notre écouteur pour qu'il puisse entendre ce que le mcl1 émét
mcl1.addListener(ListenerFondEcran1);
 
//on lance le chargement de notre image
mcl1.loadClip(MotifArrierePlan, FondEcran1);

Mais je ne sais pas comment intégrer mon FondEcran1 dans l'autre quoi
0
shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
11 sept. 2006 à 17:02
... ca fait plaisir tu a l'air de rien comprendre a ce que tu code ...
tu fait l'imprim ecran avant de faire tes clip dynamique ca risque pas de marcher.
Et puis ca a pas l'air de toi vu que je voit
 pn.print(this,0,0,550,500) // copy the _root
ca copy donc bien le root donc si tu réfléchit un peu tu devrais y arrivé

<hr />http://www.carton.c.la
0
arnaud_verlaine Messages postés 21 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 20 septembre 2006
11 sept. 2006 à 17:18
Comme je le dit, je suis nouveau en flash et j'essaie juste d'apprendre un peu par moi même pour faire une capture de l'écran.
Ce code ne vient pas de moi (enfin celui de la capture) celui du clip dynamique est bien de moi.
J'ai essayé de créer d'abord le clip dynamique et ensuite une fois qu'il est bien chargé (voir FondEcran1), de lancer la capture de l'écran. Mais ça ne change rien, il n'en veut pas.


Si ca copie bien le _root, il me suffit juste alors de créer un clip dynamique dans le root...


Mais c'est là que je bloque justement !

je viens d'essayer ceci par exemple :

var FondEcran1:MovieClip = _root.createEmptyMovieClip("FondEcran1", this.getNextHighestDepth());

au lieu de

var FondEcran1:MovieClip = this.createEmptyMovieClip("FondEcran1", this.getNextHighestDepth());

Mais ça ne change rien...

Pourtant je suis bien dans _root non?
0
arnaud_verlaine Messages postés 21 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 20 septembre 2006
12 sept. 2006 à 11:05
Voici ce que j'ai essayé de mettre concernant le _root, mais rien à fair il ne se mets pas dans le clip _root.

/*********************/
/*     Fond ecran 1  */
/*********************/


//On crée notre Fond1
var FondEcran1:MovieClip = createEmptyMovieClip("FondEcran1", this.getNextHighestDepth());
//on définit un écouteur pour écouter ce que le movieClipLoader dira (notamment, l'avancement du chargement)
var ListenerFondEcran1:Object = new Object();
//quand le chargement est fini, le movieClipLoader déclenche un événement loadInit qu'on va écouter et quand il surviendra, le code entre { } sera exécuté.
//le movieClipLoader renvoie aussi le clip dans lequel il fait le chargement (et on le récupère dans target_mc)
ListenerFondEcran1.onLoadInit = function(target_mc:MovieClip):Void
{
    //ici on est sûr que notre image est bien chargée, on peut la redimensionner
    _root.FondEcran1._x=0;
 _root.FondEcran1._y=0;
 _root.FondEcran1._width=500;
 _root.FondEcran1._height=500;
}
//on définit notre movieClipLoader
var mcl1:MovieClipLoader = new MovieClipLoader();
 
//on lui attache notre écouteur pour qu'il puisse entendre ce que le mcl1 émét
mcl1.addListener(ListenerFondEcran1);
 
//on lance le chargement de notre image
mcl1.loadClip("images/ArrierePlan/PlaqueGranit206A.gif", _root.FondEcran1 );

Une idée?
Merci
0
Rejoignez-nous