Flex Builder 3 Débutant ? Découvrez Flex et Adobe® Flex® Builder 3
05
fév

ToasterLib – Gestion du resize en v1.0.2

Et oui, déjà des corrections apportées à la ToasterLib. Si vous aviez seulement regardé l'exemple qui se trouve dans les articles de flex-tutorial, vous aviez peu de chance de rencontrer le bug corrigé en question puisqu'il s'agissait d'un bug de resize du Toaster (sur les articles, le SWF a une taille fixe).

Quand on redimensionnait l'application (ou tout du point, le conteneur parent du Toaster, la notification ne bougeait pas et pouvait donc soit être partiellement cachée, soit se retrouver au milieu de la page. Le code était déjà prévu mais pas la logique (j'ai voulu faire une release rapide).

Après quelques switch et une dixaine de lignes de code, ce bug est désormais corrigé.

Les exemples en ligne ont été mis à jour (pensez à vider votre cache).

Vous pouvez donc télécharger le nouveau SWC de la ToasterLib (v1.0.2):

Télécharger le SWC de la ToasterLib

Ou alors, vous pouvez faire un checkout des sources par SVN et la compilez vous-même:

Récupérer la ToasterLib par SVN

Si vous utilisez la ToasterLib (ou que vous comptez l'utiliser) et que vous trouvez des bugs, merci d'utiliser l'onglet "Issue" du projet pour rentrer vos bugs:

Signaler un bug sur la ToasterLib

04
fév

Doc?, une application AIR de consultation des Livedocs AS3/Flex/AIR offline

La plupart des développeurs Flex vous le diront, le plus difficile dans l'apprentissage d'Adobe Flex est de connaître la totalité de l'API Flex mais aussi certaines ressources AS3 pures. En effet, pour pas mal de problème communs, "il y a une propriété, un composant ou une méthode pour ça". Alors on peut les découvrir en allant voir sur certains forums, les gens qui tombent sur les mêmes problèmes ou bien en consultant la documentation Adobe en ligne (Language Reference).

Cette documentation en ligne est très bien faîte et très complète avec beaucoup d'explications et des exemples. Vous la trouverez en ligne ou bien directement dans Flex Builder (F1). Mais si vous êtes un habitué des livedocs, vous savez à quel point cette documentation est lente et c'est parfois assez frustrant.

Pour pallier à ce problème, des développeurs belges ont conçu une application Air nommée "Doc?" qui vous permet de consulter la documentation en mode offline. Il suffit de télécharger une fois la documentation complète et d'attendre quelques minutes que l'application crawle et indexe tout et vous aurez tout d'accessible en quelques clics. Notamment, une fonction de recherche bien pratique et qui renvoie des résultats bien plus pertinents que la recherche de la livedocs (pour cela, Google se débrouille mieux, c'est un peu triste à dire :P ). Rajoutez à cela un design épuré qui fait plaisir aux yeux, vous obtenez une application très sympa à utiliser.

On regrettera juste le fait que l'on ne peut pas trier selon le type de résultat que l'on veut (classe, property, méthod par ex.) mais l'outil en reste néanmoins très pratique.L'application est gratuite, vous pouvez faire un don si elle vous à permet de gagner du temps ;)

Que vous soyez développeur Flex débutant ou chevronné, cette application peut vous intéresser:

Voir le site officiel de Doc?

Télécharger l'application Doc?

04
fév

ToasterLib – Les fonctionnalités avancées pour vos notifications Flex

Il y a quelques jours, je vous présentais la "ToasterLib", une librairie que j'ai crée permettant d'afficher facilement des notifications dans vos applications Flex. Par notification, j'entends les petits messages que l'on reçoit souvent dans les logiciels bureautiques type MSN, GTalk, avast! et autres.

Pour ceux qui ont raté un épisode, un petit rappel:

ToasterLib – Affichez des notifications dans vos applications Flex

ToasterLib sur Google Code

Pendant ces longues soirées/nuits de code, j'ai pensé au fonctionnement dont j'avais besoin (affichage de notifications en bas à droite), mais aussi à tout ce que les développeurs Flex qui vont télécharger cette librairie (oui, vous) vont pouvoir demander comme fonctionnalités, qu'elles soient utiles ou juste fun. Je n'ai bien sûr pas pensé à tout ou pas tout réaliser à la perfection mais tout comme la DataFilterLib, le projet est open source en licence "vous-en-faites-ce-que-bon-vous-semble". N'hésitez donc pas à demander des améliorations ou à proposer des patchs!

Bref, ce billet va exposer les fonctionnalités "avancées" déjà développées de la librairie. Je vais essayer d'accompagner les explications avec un maximum de code et d'exemples.

Comprendre l'architecture globale de la ToasterLib

Les sources du projet sont disponibles sur la page Google Code de la ToasterLib, en libre accès. Je vais résumer rapidement comment j'ai construit cette librairie.

Alors tout en haut, on a le composant Toaster qui est le composant graphique principal mais aussi la classe d'accès pour pouvoir envoyer de toasts. Le Toaster contient des ToastContainer.

Un ToastContainer est lui aussi un objet graphique qui dérive au moins de la classe ToastContainerBase. Un ToastContainer représente un emplacement dans lequel les toasts vont s'afficher. Pour faire simple, un ToastContainer est "un coin" dans lequel on a les toasts (même si on peut afficher les toasts dans les 9 directions). Chaque ToastContainer peut être configuré comme on le verra plus loin. Un ToastContainer va contenir des ToastMessage.

Un ToastMessage est un composant visuel lui aussi qui est en fait la notification affichée à l'écran. Pour faire simple, un ToastMessage est un composant qui hérite de ToastMessageBase. On verra donc que pour créer ses propres notifications, il suffit de créer un composant qui hérite de cette classe.

2 modes de fonctionnement: Par instance ou en Singleton

Les notifications peuvent être lancées pour de très nombreuses manières. Vous pourriez donc en avoir besoin un peu partout dans votre application. Au lieu de devoir référencer votre composant Toaster dans toutes les classes de votre applications, vous pouvez y accéder en tant que Singleton:

Toaster.toast(toastMessage, position);

Alors bien sûr, dans ce cas, vous ne pouvez avoir qu'un seul Toaster dans votre application ce qui va être le cas pour la plupart des applications. Mais je n'ai pas bridé la ToasterLib, vous pouvez donc en avoir plusieurs si vous le souhaitez. Cette fois, vous devrez y accéder directement par l'instance, les méthodes static (Singleton) et les méthodes classique (par instance) ont les mêmes signatures. C'est simplement le comportement derrière qui est spécifique.

Pour accéder aux instances de Toaster, pas de mystère:

<mx:Script>
 <![CDATA[
myToaster.toast(toastMessage, position);

 ]]>
 </mx:Script>
<fnicollet:Toaster id="myToaster" width="100%" height="100%" />

Configuration globale du Toaster

Vous avez accès à des propriétés globales sur le Toaster, pour une utilisation simplifiée en Singleton. Par exemple, si vous ne voulez pas spécifier tout le temps de "position" dans la méthode toast (Bottom-Right par défaut), vous pouvez utiliser la propriété "globalPosition":

Toaster.globalPosition = ToasterPosition.BOTTOM_LEFT;

D'autres propriétés sont disponibles, qui vont être propagées à tous les ToastContainer. Par exemple useLocalPosition (voir explication plus loin).

Définition d'un composant parent pour votre Toaster

De base, si vous ne définissez pas cette propriété, le Toaster va prendre 100% de la taille de l'application. Les notifications apparaîtront donc par dessous tout. Seulement, vous pouvez restreindre cette zone en donnant une référence vers un composant visuel de votre application. Par exemple, pour mon application cartographique, il a fallut que je n'affiche les notifications que sur la zone réservée à a carte. Il ne fallait pas que les notifications empiètent sur le bandeau de l'application ou sur les copyrights.

Pour utiliser un parent, votre code doit se présenter comme ceci:

<fnicollet:Toaster width="100%" height="100%" toastContainerParent="{myComponent}" />

Pour des raisons qui me sont parfois inconnues, vous aurez peut-être à mettre la propriété "useLocalPosition" à true. Si des décalages apparaissent, essayez cela ;)

Configuration des "ToasterContainer" (temps d'affichage, bloquage au rollOver, …)

Vous pouvez configurer les ToasterContainer (les coins) avec diverses options. Tout cela se passe de manière déclarative, en MXML, dans la déclaration du Toaster.

Lire la suite: 'ToasterLib – Les fonctionnalités avancées pour vos notifications Flex'

03
fév

Flex 3.5a SDK disponible (correction de l'auto-update Air)

Après la sortie de la Beta 2 d'Adobe Air 2, voici une autre update, cette fois sur le SDK Adobe Flex. Ce n'est pas une release majeure, simplement un correctif (régression de la 3.5) qui impactait les personnes utilisant l'auto-updater Aigle. Le bug corrigé en question est celui-ci:

SDK-24766 – ApplicationUpdaterUI no longer works in Flex 3.5 (first milestone release 12683)

Vous trouverez cette dernière release sur le site adobe@open source (prenez le "Latest Milestone Release Build") :

Update to Flex SDK 3.5a

02
fév

Encore des places pour le séminaire Advanced Flex à Bruxelles (1-2 Mars) + Code discount

Je vous l'avais annoncé il y a 2 semaines, un séminaire exceptionnel va avoir lieu le 1-2 Mars à Bruxelles. Ce séminaire est animé par les américains de chez Farata Systems. Pour plus d'informations, le programme et autres, ce billet est toujours d'actualité:

Master Class Advanced Flex à Bruxelles (1-2 Mars 2010)

Déjà (au moins) 2 lecteurs de flex-tutorial.fr seront présents :) . Les billets "Early Bird" donnant droit à une réduction ne sont plus disponible mais grâce à flex-tutorial, vous pouvez bénéficier d'une réduction de 50 euros sur le séminaire.

Pour obtenir le code discount, il suffit de me contacter par email (disponible en bas de cette page).





Bientôt sur flex-tutorial.fr …

  • - Tutoriaux BlazeDS
  • - Composants Flex

tutorial flex tutorial flex

flex Adobe Air AFCS Data Filter Lib ToasterLib librairies AS3 Flex livres AS3 Flex

 

février 2010
L Ma Me J V S D
« jan    
1234567
891011121314
15161718192021
22232425262728