Faire capture d'écran vers JPEG

Messages postés
21
Date d'inscription
jeudi 2 septembre 2004
Statut
Membre
Dernière intervention
20 septembre 2006
-
Messages postés
21
Date d'inscription
jeudi 2 septembre 2004
Statut
Membre
Dernière intervention
20 septembre 2006
-
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

Messages postés
759
Date d'inscription
mercredi 11 décembre 2002
Statut
Membre
Dernière intervention
12 novembre 2008

Messages postés
21
Date d'inscription
jeudi 2 septembre 2004
Statut
Membre
Dernière intervention
20 septembre 2006

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
Messages postés
759
Date d'inscription
mercredi 11 décembre 2002
Statut
Membre
Dernière intervention
12 novembre 2008

Essaye de le faire sur le _root ca doit marcher

<hr />http://www.carton.c.la
Messages postés
21
Date d'inscription
jeudi 2 septembre 2004
Statut
Membre
Dernière intervention
20 septembre 2006

_root à quel niveau?
Peux-tu me dire sur quelle ligne/fonction dois-je mettre cela?
Messages postés
759
Date d'inscription
mercredi 11 décembre 2002
Statut
Membre
Dernière intervention
12 novembre 2008

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
Messages postés
21
Date d'inscription
jeudi 2 septembre 2004
Statut
Membre
Dernière intervention
20 septembre 2006

"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,
Messages postés
759
Date d'inscription
mercredi 11 décembre 2002
Statut
Membre
Dernière intervention
12 novembre 2008

euhh le truc bleu qui fait office de lien ct pas histoire de faire joli.

<hr />http://www.carton.c.la
Messages postés
21
Date d'inscription
jeudi 2 septembre 2004
Statut
Membre
Dernière intervention
20 septembre 2006

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
Messages postés
759
Date d'inscription
mercredi 11 décembre 2002
Statut
Membre
Dernière intervention
12 novembre 2008

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
Messages postés
21
Date d'inscription
jeudi 2 septembre 2004
Statut
Membre
Dernière intervention
20 septembre 2006

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.
Messages postés
759
Date d'inscription
mercredi 11 décembre 2002
Statut
Membre
Dernière intervention
12 novembre 2008

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
Messages postés
21
Date d'inscription
jeudi 2 septembre 2004
Statut
Membre
Dernière intervention
20 septembre 2006

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
Messages postés
759
Date d'inscription
mercredi 11 décembre 2002
Statut
Membre
Dernière intervention
12 novembre 2008

... 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
Messages postés
21
Date d'inscription
jeudi 2 septembre 2004
Statut
Membre
Dernière intervention
20 septembre 2006

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?
Messages postés
21
Date d'inscription
jeudi 2 septembre 2004
Statut
Membre
Dernière intervention
20 septembre 2006

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