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

Multimédia Java Discussion :

[ JFlashPanel ] Impossible de visualiser plus de 3 FlashPanel


Sujet :

Multimédia Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    2
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 2
    Par défaut [ JFlashPanel ] Impossible de visualiser plus de 3 FlashPanel
    Bonjour,

    Ceci étant mon premier post sur ce forum, je vais en profiter pour faire une rapide présentation. C'est vraiment pas mon fort, alors je vais faire court
    Je suis étudiant en informatique, actuellement en stage afin de valider mon DUT, et pense continuer mes études dans une école d'ingénieur.

    Dans le cadre de mon stage, je dois développer une application qui gère l'affichage de fichier swf sur plusieurs écrans. En principe, l'application va chercher un XML contenu dans une base de donnée, et récupère les <pile> à l'intérieur de celui ci.

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <Pile>
            <ScreenG>03</ScreenG>
            <ScreenD>00</ScreenD>
            <Time>00:00:02</Time>
            <Sound></Sound>
            <Border>00</Border>
            <Link>00</Link>
            <MosNb>01</MosNb>
            <PileCartelAuto>1</PileCartelAuto>
            <PileCartelLine1></PileCartelLine1>
            <PileCartelLine2></PileCartelLine2>
            <PileCartelLine3></PileCartelLine3>
            <PileCartelLine4></PileCartelLine4>
            <PileCartelLine5></PileCartelLine5>
            <PileDescr></PileDescr>
            <Subtitle></Subtitle>
            <TransType>-1</TransType>
            <TransTime>0</TransTime>
            <KnowMore>
            </KnowMore>
            <ImgElement>
                <FakirID></FakirID>
                <Type>if</Type>
                <Img>_44020497_sat_flood416x260.jpg</Img>
                <ThumbImg></ThumbImg>
                <Txt></Txt>
                <Cropped>00</Cropped>
                <CropX>00</CropX>
                <CropY>00</CropY>
                <X>-1</X>
                <Y>-1</Y>
                <TCin></TCin>
                <TCout></TCout>
            </ImgElement>
        </Pile>
    Toutes les <pile> contenues dans le xml sont affichable grâce à un swf, à qui il suffit de passer en paramètre le numéro de la pile. ( ici [...]/le_fichier_swf.swf?[...]&pileParam=0 affichera donc _44020497_sat_flood416x260.jpg )

    J'utilise actuellement la version trial de JFlashPanel afin d'afficher ces swf. J'me suis rapidement penché sur JSwiff, mais ai rapidement abandonné, trouvant les FlashPanel plus intuitifs.

    Voici l'objet qui représente un de mes écrans :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    public class Screen extends JWindow {
     
        private FlashPanel flash ;
     
        public Screen(int x, int y, int width, int height, GraphicsConfiguration gConfig ) {
            // create window and size it
            super(gConfig);
            setLocation(x, y);
            setPreferredSize(new Dimension(width, height));
            getRootPane().setBorder(new LineBorder(Color.black));
     
            flash=null ;
     
            // display screen
            pack();
            setVisible(true);
        }
     
        public void display(String flashURL, String paramSwf){
            // destroy current flashPanel
            if( flash!=null ){
                remove(flash);
                flash.dispose();
            }
     
            try {
                // create the new flashPanel
                flash = new FlashPanel(new URL(flashURL), true);
            } catch (MalformedURLException ex) {
                Logger.getLogger(Screen.class.getName()).log(Level.SEVERE, null, ex);
            } catch (JFlashLibraryLoadFailedException ex) {
                Logger.getLogger(Screen.class.getName()).log(Level.SEVERE, null, ex);
            } catch (JFlashInvalidFlashException ex) {
                Logger.getLogger(Screen.class.getName()).log(Level.SEVERE, null, ex);
            }
            flash.setMenuDisplay(false);
            flash.setBackground(Color.gray);
            // set flash parameters
            flash.setVariables(paramSwf);
     
            add(flash);
     
            flash.setVisible(true);
            validate();
     
        }
    }
    J'ai aussi un objet Displayer, qui lui appelera la méthode display(...) de Screen. Je vous épargne la lecture de son constructeur, qui ne fais qu'initialiser les différents Screen à la bonne place.

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
     
    public class Displayer {
     
    public final static String swfIF = "Le_chemin_du_swf_pour_les_images_fixes",
                                   swfIA = "Le_chemin_du_swf_pour_les_images_animées";
     
        private SwfParam[] pileParam ;// les paramètres swf correspondant à la pile
     
        private String paramSWF ; // des paramètres nécessaire au swf, donné comme argument de l'application
     
        private HashMap<String, Screen> allScreenByType ; // tous mes screens
     
    public void startDisplay() throws InterruptedException{
     
            // display pile contents
            for( int i=0; i<pileParam.length; i++){
     
                // get the screen where swf must be displayed
                int nb = pileParam[i].getScreenNumber();
     
                String key = null ;
                if( "MDS Screen 1".contains(""+nb) ){
                    key = "MDS Screen 1";
                } else if( "MDS Screen 2".contains(""+nb) ){
                    key = "MDS Screen 2";
                } else if( "MDS Screen 3".contains(""+nb) ){
                    key = "MDS Screen 3";
                } else if( "MDS Screen 4".contains(""+nb) ){
                    key = "MDS Screen 4";
                }
     
                if( key==null)
                    System.err.println("Displayer.startDisplay() ==> key null");
     
                // load the swf in Screen
                if( pileParam[i].getType().equals("if") )
                    allScreenByType.get(key).display(swfIF, paramSWF+"&pileParam="+i) ;
                else if( pileParam[i].getType().equals("ia") )
                    System.err.println("VIDEO => Not yet implemented");
     
                // wait
                System.out.println("pile"+i+" ::time="+pileParam[i].getTime());
                Thread.sleep(pileParam[i].getTime()*1000);
     
            }
     
        }
    }
    Et c'est ici que le hic apparait.
    En effet, l'appel à la méthode Screen.display(...) ne beug absolument pas, mais si je réalise 4 appel consécutif, sur 4 screen différents, seulement 3 images s'afficheront ! ( Je tiens à préciser que les 4 images peuvent toutes s'afficher, mais pas simultanément... )

    De plus, si j'utilise la méthode startDisplay(), bien souvent la première image s'affichera, mais les suivantes refuserons d'apparaitre

    Etant sur le problème depuis presque une semaine, je commence à saturer et avoir besoin de l'aide de personne plus compétente que moi...
    J'ai donc 2 petites questions :
    - La première peut se résumer par : " C'est quoi s'te délire ? Pourquoi ça me fais jamais 2 fois la même chose quand je lance l'application ? Pourquoi un coup y en a un qui charge, le coup d'après c'est un autre, mais jamais les deux ? "
    - La deuxième est un peu plus hors sujet, mais est il possible d'afficher des swf qui eux même sont des lecteurs de flv ? Et tant que j'y suis, connaissez vous des lecteurs flv ( toujours en flash ) sans aucune interface ?


    J'ai bien conscience que mes explications sont un peu fouillis ( la pédagogie et la communication c'est pas mon fort ), je répondrais à toutes vos questions si j'ai oublié d'expliciter quelques points.


    Merci beaucoup pour la lecture, en espérant qu'il se cache parmis vous quelqu'un qui me sauvera, et désolé pour mon orthographe qui laisse parfois à désirer

    NiZiL

  2. #2
    Nouveau candidat au Club
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    2
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 2
    Par défaut
    Double post, mais j'ai trouvé une solution, sans pour autant avoir de réponse ( tout le monde me suis ? ).

    J'ai abandonné JFlashPlanel au profit d'une librairie open source ( que j'ai malheureusement découverte seulement hier, après une semaine à maudir les FlashPanel ) DJNativeSwing-SWT.

Discussions similaires

  1. [VBA-A] erreur impossible d'ouvrir plus de table
    Par the_senti dans le forum VBA Access
    Réponses: 4
    Dernier message: 19/07/2007, 10h30
  2. Réponses: 19
    Dernier message: 24/03/2006, 12h45
  3. Impossible d'ouvrir plus de bases de données
    Par hugo69 dans le forum Access
    Réponses: 1
    Dernier message: 21/03/2006, 11h27
  4. Impossible d ouvrir plus de bases de données
    Par cla dans le forum Access
    Réponses: 8
    Dernier message: 24/02/2006, 16h06
  5. Réponses: 1
    Dernier message: 05/07/2005, 10h47

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