
FAQ JavaFXConsultez toutes les FAQ
Nombre d'auteurs : 4, nombre de questions : 86, dernière mise à jour : 18 mai 2009
Sommaire→Design- Que sont les fichiers FXD, FXZ et FXM ?
- J'ai créé un design dans un éditeur externe, comment le manipuler dans JavaFX ?
- Puis-je utiliser des filtres dans la création de mon design ?
- Comment garder des références sur les différentes éléments (objets, groupes, calques, etc…) de mon design ?
- Comment générer un stub pour manipuler mon fichier FXD/FXZ ?
- Un gradient défini dans un éditeur externe s'affiche tout noir lorsque j'importe le fichier FXD/FXZ ? J'ai défini un gradient avec des couleurs s'arrêtant aux mêmes stops et il s'affiche tout noir ?
Un fichier .FXZ (JavaFX Zipped Asset File) est une archive au format ZIP
qui contient un fichier FXD (JavaFX Description File) qui lui contient du
JavaFX Script.
Cette archive peut également inclure des images bitmaps ou des fichiers de
polices de charactères qui sont utilisées dans le design.
Il existe également des fichiers .FXM (JavaFX MultiMedia File) contenant des séquences vidéo encodées avec le codec On2 et du son encodé en MP3.
Vous devez récupérer la JavaFX Production Suite qui est disponible sur
http://www.javafx.org/.
Cette suite contient un plugin pour Adobe Illustrator et Adobe Photoshop
permettant de générer des fichiers .FXZ. Elle dispose également d'un
convertisseur séparé capable de transformer un fichier .SVG en un
fichier .FXZ ainsi qu'un visualisateur pour afficher un tel fichier.
Elle fourni de plus la bibliothèque rajoutant le support du format FXD/FXZ
dans JavaFX.
Vous devrez rajouter cette bibliothèque à la liste des dépendances de
votre projet pour être capable de manipuler le fichier .FXZ généré
depuis votre application.
De plus, le logiciel Inkscape est capable, nativement, d'exporter un fichier .SVG en un script .FX. Attention cependant, seule la version de développement supporte actuellement cette fonctionnalité et les scripts ainsi générés ne sont pour le moment pas compatibles avec la version finale de JavaFX.
De manière générale, dans la version actuelle, la plupart des filtres et
effets avancés seront perdus durant la transformation;
il faut donc se restreindre à l'utilisation de formes simples et souvent
vérifier que votre design garde une apparence correcte grace aux outils
de prévisualisation fournis.
Certains effets comme le Drop shadow (ombre portée) de Photoshop ou
Illustrator (pas celui de Inkscape) peuvent cependant être conservés.
Ce filtre, par exemple, sera traduit en un javafx.scene.effect.DropShadow
sur chaque forme sur lequel il est activé. Il reste possible de rajouter
des effets en éditant directement le FXD/FXZ après sa génération.
On peut espérer que la Production Suite prenne plus d'effets en compte dans les mois à venir.
Dans votre éditeur, vous devez affecter un nom à chacune des entités que vous voulez manipuler par la suite. Si vous utilisez le convertisseur de la Production Suite, il est conseillé de préfixer les noms des entités par "jfx:".
Attention certaines limitations peuvent intervenir suivant votre éditeur ;
par exemple, Inkscape ne permet que de changer le label de calques en passant
par la fenêtre Layers. Or, il se trouve que le convertisseur de la Production
Suite utilise le champs ID de l'objet, le nom des calques sera donc perdu.
Il reste cependant possible de changer l'ID du calque en passant par
l'éditeur XML intégré à Inkscape.
De plus, lors de la conversion d'un fichier .SVG, le convertisseur de la
JavaFX Production Suite 1.0 ignore les champs ID sur les objets &svg:text&,
ces derniers perdront donc également leur identifiant.
Si vous utilisez NetBeans, vous pourrez rajouter ces champs ultérieurement en éditant directement le fichier produit. Sinon, vous pouvez éditer le fichier FXD contenu dans le fichier FXZ pour rajouter les identificateurs manquants.
Ouvrez directement votre fichier FXD/FXZ dans NetBeans. En haut de la fenêtre assurez-vous que le bouton Preview est sélectionné, ce qui affiche graphiquement votre design. Tout à droite de la barre d'outils de la fenêtre du fichier, cliquez sur Generate UI Stub (Ctrl + G) ; NetBeans vous proposera alors de générer une classe stub vous permettant de manipuler les entités contenues dans votre design.
Si vous avez correctement nommé les entités de votre design, vous remarquerez que la classe ainsi générée contient une variable de type Node pour chaque entité déclarée dans votre design initial.
JavaFX repose sur Java2D, hors il est impossible actuellement de définir un gradient dont les couleurs ont les mêmes valeurs de stop. Vous devrez donc modifier la définition de votre gradient pour être sur que les valeurs des stops soient strictement croissantes.
Si vous avez défini ce gradient dans un éditeur externe (Illustrator, Photoshop, Inkscape, etc…), vous devez éditer ce gradient dans cet éditeur et réexporter votre projet au format FXD/FXZ. Si vous disposez de NetBeans vous pouvez directement modifier la définition du gradient dans le fichier FXD/FXZ.


















