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

ActionScript 3 Discussion :

Appeler fonction Java dans du AS3


Sujet :

ActionScript 3

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 26
    Par défaut Appeler fonction Java dans du AS3
    Bonjour,

    Je voudrai savoir comment appeler une fonction Java à partir d'un code AS3.
    Mon objectif est le suivant : je construis une application Flex/AS3 qui va, entre autre créer des fichiers ePub, en tout cas ça m'arrangerai, mais je n'est trouvé qu'une seule librairie sur le net pouvant générer de l'ePub seulement en Java.
    C'est la raison pour laquelle je me demandai si je pouvais d'une manière ou d'une autre appeler une fonction Java qui prendrai par exemple un objet Livre en paramètre et exploiterai ses infos pour le transformer en ePub.

    Bref : monLivre:Livre AS3 -> fonction Java(Livre monLivre)

    Merci.

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    bonjour,

    il faut que tu passes par un remoteObject par exemple. Fais une recherche google Flex + Java + BlazeDS

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 26
    Par défaut
    Merci de ta réponse.

    N'y a t-il pas un autre moyen de le faire sans passer par ce modèle client serveur ? Il s'agira d'une application de type AIR et non RIA.

  4. #4
    Membre actif
    Inscrit en
    Avril 2011
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 58
    Par défaut
    Si tu est en local sur une machine, je comprends pas pourquoi tu aurait besoin de passer par java.

    Que fait ta fonction java ?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 26
    Par défaut
    Je souhaite passer par Java simplement parce que j'ai besoin d'une librairie pour générer des fichiers ePub, et je n'ai trouvé qu'une librairie en Java, pas en AS3.

  6. #6
    Membre actif
    Inscrit en
    Avril 2011
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 58
    Par défaut
    Merci pour la culture, je ne connaissais pas epub.

    Ce sera bien plus simple de refaire la librairie en AS3, d'autant plus que tu as déjà le code en java et que le ePub n'est ni plus ni moins qu'un XML super simple. Puis tu ne dois pas avoir besoin de toute la librairie mais seulement d'une partie.

    Sinon tu as la solution de passer par les local sockets. Mais ce sera bien plus compliqué à développer et surtout à distribuer ensuite.

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 26
    Par défaut
    Réécrire la librairie ??? Euh moi je veux bien mais ça me parait un peu énorme non ? Surtout que je ne sais pas trop comment m'y prendre dans la mesure ou je ne dispose que des .class dans mon .jar.
    Au risque de passer pour une bille, comment je peux accéder aux classes qui m'intéressent pour, éventuellement, les réécrire ?

  8. #8
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour,

    Citation Envoyé par rillette87 Voir le message
    Je souhaite passer par Java simplement parce que j'ai besoin d'une librairie pour générer des fichiers ePub, et je n'ai trouvé qu'une librairie en Java, pas en AS3.
    et quel est le soucis d'utiliser blazeds par exemple ? Qui sait de toute manière si plus tard tu n'auras pas besoin pour ton appli d'utiliser une BDD ce qui nécessitera d'utiliser Java ?

    Utiliser des classes Java seules, non je ne crois pas que cela soit possible désolé

  9. #9
    Membre actif
    Inscrit en
    Avril 2011
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 58
    Par défaut
    Ben le format est super simple, c'est du XHTML simplifié avec du CSS2 pour le formatage.

    Si tu sais manipuler du XML en AS3 tu va faire ça en un rien de temps.
    Tu as la description du format là : http://en.wikipedia.org/wiki/EPUB
    Mais tu peut sûrement trouver une doc plus complète.

    A quoi ressemble les commandes pour créer un bouquin dans ta librairie ?

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 26
    Par défaut
    J'ai suivi un tuto avec BlazeDS, mais pour l'adapter à mon appli j'ai un problème :
    voir http://www.developpez.net/forums/d10...e/#post5921772

    Le code pour la génération de l'ePub :

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    import java.io.FileOutputStream;
     
    import com.adobe.dp.epub.io.OCFContainerWriter;
    import com.adobe.dp.epub.ncx.TOCEntry;
    import com.adobe.dp.epub.opf.NCXResource;
    import com.adobe.dp.epub.opf.OPSResource;
    import com.adobe.dp.epub.opf.Publication;
    import com.adobe.dp.epub.ops.Element;
    import com.adobe.dp.epub.ops.OPSDocument;
     
    /**
     * Simple epubgen example. Basic library use: setting metadata, table of
     * contents, creating chapter content.
     */
    public class HelloEPUB1 {
     
      public static void main(String[] args) {
     
        try {
     
          // create new EPUB document
          Publication epub = new Publication();
     
          // set up title, author and language
          epub.addDCMetadata("title", "My First EPUB");
          epub.addDCMetadata("creator", System.getProperty("user.name"));
          epub.addDCMetadata("language", "en");
     
          // prepare table of contents
          NCXResource toc = epub.getTOC();
          TOCEntry rootTOCEntry = toc.getRootTOCEntry();
     
          // create new chapter resource
          OPSResource main = epub.createOPSResource("OPS/main.html");
          epub.addToSpine(main);
     
          // get chapter document
          OPSDocument mainDoc = main.getDocument();
     
          // add chapter to the table of contents
          TOCEntry mainTOCEntry = toc.createTOCEntry("Intro", mainDoc
              .getRootXRef());
          rootTOCEntry.add(mainTOCEntry);
     
          // chapter XHTML body element
          Element body = mainDoc.getBody();
     
          // add a header
          Element h1 = mainDoc.createElement("h1");
          h1.add("My First EPUB");
          body.add(h1);
     
          // add a paragraph
          Element paragraph = mainDoc.createElement("p");
          paragraph.add("Hello, world!");
          body.add(paragraph);
     
          // save EPUB to an OCF container
          OCFContainerWriter writer = new OCFContainerWriter(
              new FileOutputStream("hello.epub"));
          epub.serialize(writer);
     
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }

  11. #11
    Membre actif
    Inscrit en
    Avril 2011
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 58
    Par défaut
    Ben franchement, pas besoin d'une librairie pour ça...

    Tu as regardé le contenu du format ePub ?

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 26
    Par défaut
    Oui j'ai regardé. J'ai peut-être une solution : générer les XML et XHTML directement, bref, créer la structure interne de l'ePub, et ensuite créer un zip (car l'ePub n'est rien d'autre qu'un zip, j'ai testé) puis trouver une façon de changer l'extension du zip en epub. Le plus marrant dans tout ça c'est que epub = zip.

  13. #13
    Membre actif
    Inscrit en
    Avril 2011
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 58
    Par défaut
    Ben oui c'est ce que je te dis !

  14. #14
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 26
    Par défaut
    Reste plus qu'à trouver le moyen de créer un zip. J'ai bien trouvé deux librairies mais j'arrive pas à saisir comment on fait.

  15. #15
    Membre actif
    Inscrit en
    Avril 2011
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 58
    Par défaut
    Y'a une librairie pour compresser des données en zip (bytearray). Mais des fichiers ça va pas être pareil.
    J'ai jamais fait de projet air. Si tu créée un dossier et que tu mets tes fichiers dedans tu dois pouvoir lancer une commande pour que windows t'en fasse un zip. Si on peut lancer des commandes depuis AIR.

    Sinon en passant par un serveur c'est facile.

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/01/2011, 20h30
  2. Appel fonction php dans code javascript
    Par licorne dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/03/2008, 10h55
  3. appeler fonction JS dans open.window
    Par bobic dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/03/2007, 15h06
  4. Appel d'une fonction java (dans une applet) depuis javascript
    Par foued_scorpion dans le forum Applets
    Réponses: 2
    Dernier message: 17/01/2007, 10h40
  5. Erreur appel fonction java d'une jsp
    Par itachi38 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 29/04/2006, 16h51

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