IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[FLASH MX2004] Retarder le lancement d'impression


Sujet :

Flash

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Points : 11
    Points
    11
    Par défaut [FLASH MX2004] Retarder le lancement d'impression
    Bonjour,

    j'ai un flash dédié à l'impression.
    Celui-ci charge un fichier XML pour modifier des informations et des textes dans l'animation.
    Je lance ensuite automatiquement une impression.

    Mon problème est que l'impression se lance avant le raffraichissement des textes dynamiques, et ma feuille s'imprime avec des champs vides.

    J'ai essayé sans succès de faire une tempo avec setInterval, mais sans succès (l'impression se lance tout de suite).

    quelqu'un aurait-il une idée ?

  2. #2
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    Hello

    Utilise un setInterval ou sur flash 8 un setTimeout Cela te permettra de laisser le temps à tes champs de se remplir

    EKA+

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2003
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 224
    Points : 185
    Points
    185
    Par défaut
    sinon tu tests en boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    tant que tous mes champs pas remplis
       attendre
    fin tant que
    imprimer

  4. #4
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    cela revient au même Mais faut pas utiliser de boucle for on while dans flash pour tester un truc dans le temps !! c'est important car les boucles for, while etc.. sont limités à 256 récursions et 12 à 16 secondes d'éxécutions
    EKA+

  5. #5
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Salut,

    Citation Envoyé par JavaSearch
    J'ai essayé sans succès de faire une tempo avec setInterval, mais sans succès (l'impression se lance tout de suite).
    tu dis que tu as essayé sans succès le setInterval. Peux-tu nous faire voir le code que tu as mis ?


    Citation Envoyé par ekameleon
    cela revient au même Mais faut pas utiliser de boucle for on while dans flash pour tester un truc dans le temps !! c'est important car les boucles for, while etc.. sont limités à 256 récursions et 12 à 16 secondes d'éxécutions
    EKA+
    Tiens c'est interressant ça.
    Mais j'ai mal compris les "256 récursions". Qu'est que tu entends pas là ?
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  6. #6
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    hello

    une récursion c'est quand une fonction s'appelle elle même... pour pas avoir une boucle infinie (si on se trompe dans son code...) et donc figer tout l'ordinateur, macromedia a limité les boucles de flash (for, while etc..) à 256 récursions ou quelques secondes... (on peut traffiquer ce délais avec une application swf scriptlimits Injector de burak : http://www.buraks.com/swfsli/)

    si on lance une boucle trop longtemps... l'ordi et l'anim se fige et on a au bout d'un moment un message qui apparait avec "voulez vous continuer...."

    Du coup .. pour faire une boucle infinie... le seul moyen c'est d'utiliser un setInterval ou un onEnterFrame ... ainsi la boucle va être callée par rapport à la fréquence de l'animation au minimum et il n'y aura pas de problème... (si le setInterval a un interval <150ms .. on est en gros dans du onEnterFrame en vitesse...)

    EKA+

  7. #7
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Merci pour cette précision.
    En fin de compte , c'est juste la récursion sur n'importe quelle fonction qui est limitée à 256 niveaux.
    Moi j'essayais d'imaginer des while "récursifs" bref des trucs comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    while (x) {
      while(x) {
      }
      while(x) {
      }
      while(x) {
      }
      ...
      while(x) {
      }
    }
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while(x) {
     while(x) {
      while(x) {
       ...
      }
     }
    }
    Mais ca n'a rien à voir. J'ai besoin de vacances
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    C'est résolu...
    Je ne sais pas trop ce qui marchait pas lorsque j'ai essayé d'utilisé le setInterval...

    Bref, maintenant ça marche.

    Pour info, voici une partie de mon code :
    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
    if (_root.opt == "show" && _root.preset_id > 0){
    	load_preset(_root.preset_id);
    	preset.rotate="false";
    	var it=setInterval(appel_print,1000);
    	}
     
     
     
     
     
    function appel_print() {
    	clearInterval(it);
    	myColor = new Color(_root.typo);
    	myColor.setRGB(0x000000);
    	my_pj=new PrintJob();
    	my_pj.start();
    	my_pj.addPage(_root);
    	delete my_pj;
    }
    Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/06/2006, 15h21
  2. [FLASH MX2004] Impression couleur ?
    Par JavaSearch dans le forum Flash
    Réponses: 1
    Dernier message: 12/11/2005, 00h04
  3. [FLASH MX2004] Bloquer l'impression d'unswf
    Par ange3 dans le forum Flash
    Réponses: 2
    Dernier message: 19/10/2005, 13h40
  4. Réponses: 2
    Dernier message: 30/11/2004, 11h48
  5. Réponses: 6
    Dernier message: 19/11/2004, 20h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo