Home Imprimer (Occur./Scène)
Imprimer une occurrence ou la scène PDF Imprimer Envoyer

Il est arrive rarement d'avoir besoin d'imprimer une animation Flash ou une partie de la scène, mais cela reste possible car l'ActionScript prévoit cette fonctionnalité.


Avant de commencer à vous expliquer le principe d'impression de la scène d'une animation, vous devez comprendre que nous allons chercher à imprimer des occurrences de type Sprite. De ce fait, si certaines parties de votre animation ne sont pas des occurrences de ce type, vous devrez les déplacer dans une instance de type Sprite que vous devez créer à cette occasion. Consultez la ressource dédiée à la gestion des Sprites afin de mieux comprendre la deuxième partie de ces explications relatives à l'impression d'une occurrence.

Voyons à présent les étapes à suivre pour aboutir à l'impression d'une occurrence. 

  1. Créez une instance de la classe PrintJob().
  2. Définissez éventuellement l'orientation de la page.
  3. Exécutez l'impression.
  4. "Ajoutez" des "éléments" à imprimer à la liste d'impression.
  5. Envoyez la liste d'impression à l'imprimante.


Vous devriez obtenir le script ci-dessous :

   var tacheImpression:PrintJob = new PrintJob();

   tacheImpression.orientation == PrintJobOrientation.PORTRAIT;

   tacheImpression.start()

   tacheImpression.addPage(visuel);tacheImpression.send();


Comme nous l'évoquions au début de cette ressource dédiée à l'impression, vous devez spécifier en paramètre de la méthode addPage(), le nom d'une occurrence de type Sprite. Lorsqu'au point numéro 4 de la procédure ci-dessus nous faisons référence au terme "éléments", nous faisons donc référence au nom d'une occurrence de type Sprite. Mais tout ce qui se trouve sur la scène n'est pas obligatoirement de ce type. Dans l'exemple qui suit, l'exécution du script renvoie une erreur car le type de l'élément à imprimer est Shape.

 

   var forme:Shape = new Shape()

   forme.graphics.lineStyle(1,0,1)

   forme.graphics.drawRect(30,30,50,50)

   addChild(forme)

   var tacheImpression:PrintJob = new PrintJob();

   tacheImpression.start()

   tacheImpression.addPage(forme);

   tacheImpression.send();

 

De même, si nous cherchions à imprimer un texte dynamique ou de saisie, cela s'avèrerait impossible si vous n'affectez pas préalablement l'enfant de type TextField à une instance de type Sprite que vous aurez créé pour cette occasion (l'impression). Consultez d'ailleurs l'exemple du dernier script pour découvrir la procédure qui permet d'imprimer un texte.

Dans la théorie et dans la pratique, cette méthodologie est applicable, mais il est tout de même préférable de vérifier que le processus d'impression se fait correctement, utilisez donc le script ci-dessous :

   var tacheImpression:PrintJob = new PrintJob();

   tacheImpression.orientation == PrintJobOrientation.PORTRAIT;

   function imprimerVisuel(evt:MouseEvent) {

       if (tacheImpression.start()) {

           tacheImpression.addPage(visuel);

           tacheImpression.send();

       }

   }

 

Pour finir nos explications sur l'impression, voici un dernier exemple qui vous propose d'imprimer une occurrence de type Sprite, un texte dynamique et la scène dans sa globalité.

   btImpressionTexte.addEventListener(MouseEvent.MOUSE_DOWN,imprimerTexte);

   btImpressionVisuel.addEventListener(MouseEvent.MOUSE_DOWN,imprimerVisuel);

   btImpressionScene.addEventListener(MouseEvent.MOUSE_DOWN,imprimerScene);

   var tacheImpression:PrintJob;


   function imprimerVisuel(evt:MouseEvent) {

       tacheImpression = new PrintJob();

       tacheImpression.orientation == PrintJobOrientation.PORTRAIT;

       if (tacheImpression.start()) {

           tacheImpression.addPage(visuel);

           tacheImpression.send();

       }

   }

   function imprimerTexte(evt:MouseEvent) {

       tacheImpression = new PrintJob();

       tacheImpression.orientation == PrintJobOrientation.LANDSCAPE;

       var zoneImpression:Sprite = new Sprite();

       addChild(zoneImpression);

      zoneImpression.addChild(zoneCommentaires);

      if (tacheImpression.start()) {

           tacheImpression.addPage(zoneImpression);

           tacheImpression.send();

      }

      addChild(zoneCommentaires);

      removeChild(zoneImpression);

   }

   function imprimerScene(evt:MouseEvent) {

       tacheImpression = new PrintJob();

       if (tacheImpression.start()) {

           tacheImpression.addPage(this);

           tacheImpression.send();

       }

   }

 

 

 

 

[Télécharger le .fla] 

 


 

 
Yazo.net, Powered by Joomla!; Joomla templates by SG web hosting