Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

25juil/100

Flex 4 – Le lien "Composants" entre Skin et Composant

Jusqu’ici, on a vu deux types de contrat entre le composant et sa Skin : States et Données. Le dernier est le lien "Composant". Il faut tout d’abord comprendre qu’un composant peut-être défini par un ensemble de SkinPart (morceaux de Skin). Par exemple, pour une barre de défilement, on a :

  • Le bouton ascendant
  • Le bouton descendant
  • Le curseur
  • La zone dans laquelle le curseur va se déplacer (« track »)

Dans le cas du Button, il n’y a qu’une SkinPart : le label. C’est la seule partie dont le Button a besoin. C’est par ces SkinPart que l’on va établir le contrat "Composants".

Définition des SkinPart dans les composants Flex 4

Ces SkinPart sont aussi définies par annotation, juste au dessus des variables concernées. Par exemple, dans la classe spark.components.supportClasses.ButtonBase, on peut trouver :

[SkinPart(required="false")]

    /**
     *  A skin part that defines the label of the button.
     *
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public var labelDisplay:TextBase;

Dans cet exemple, la SkinPart est définie comme non requise. Cela nous a permis de pouvoir créer la Skin sans même connaître cette notion de SkinPart. Cela pourrait ainsi nous permettre de réaliser un bouton complètement graphique, sans texte.
Pour remplir le contrat, la Skin doit déclarer un composant du type TextBase (dont Label hérite) avec comme identifiant "labelDisplay". Dans ce cas-là, le composant hôte (le Button) va reconnaître la SkinPart et lui donner automatiquement la propriété "text".

On aura donc dans MyButtonSkin :

<s:Label id="labelDisplay" color="0x131313" textAlign="center"
           verticalAlign="middle"
           horizontalCenter="0" verticalCenter="1"
           left="12" right="12" top="6" bottom="6"
           />

On a plus de Data Binding entre le Label et le "hostComponent". Au lieu de cela, on lui donne comme "id", labelDisplay. Le composant Button fera ensuite le travail pour vous et va injecter sa propriété "label" dans le composant "labelDisplay".
Ce lien "Composant" va bien plus loin, en vous permettant de lier les comportements des composants à la Skin. Par exemple, pour le composant Slider, on a trois SkinParts (tous facultatifs) :

  • Le curseur
  • La zone dans laquelle le curseur va se déplacer (« track »)
  • Le DataTip (tooltip indiquant la valeur sélectionnée)

Voici les déclarations dans les classes TrackBase et SliderBase, dont les Slider héritent :

[SkinPart(required="false")]
public var thumb:Button;
[SkinPart(required="false")]
public var track:Button;
[SkinPart(required="false", type="mx.core.IDataRenderer")]
public var dataTip:IFactory;

Contrairement au bouton, dans lequel la zone interactive se résume au bouton tout entier, ici on a trois composants distincts, qui réagissent différemment aux actions utilisateur. Le composant « curseur » peut ainsi être déplacé par le clic de l’utilisateur.

Dans le cas du Slider, l’avantage de la liaison composant n’est pas de récupérer de la donnée, mais bien de pouvoir utiliser les évènements qui vont être ajoutés sur ces composants. Cela vous permet de profiter de la classe Slider de base, en modifiant uniquement son style graphique, et pas son comportement.

Pour bien illustrer ce comportement, on va créer une Skin de Slider.

Remplis sous: Flex 4, Skin Aucun commentaire
15fév/100

Adobe Air sur mobile, on commence par Android

En ce moment, se tient le "2010 Mobile World Congress", à Barcelone, un bon gros rassemblement de professionnels de l'industrie du mobile, des conférences, des exhibitions et des prix, bref du beau monde. Et c'est lors de ce MWC qu'Adobe a décidé d'annoncer ce que de nombreux attendaient avec impatiente, l'arrivée d'un Adobe AIR pour plate-forme mobile.

Pour l'annonce officielle, rendez-vous sur le blog d'Adobe:

Adobe Announcements at Mobile World Congress 2010

De nombreux blogs ont rapidement relayé l'information, notamment Ted Patrick, evangelist Adobe à qui j'ai piqué les quelques screenshots qu'il a posté sur son post ;) :

ALCHEMIST_1

DESKTOP

FICKLE_0CONNECT_0

Alors on peut voir des jeux, ca fait toujours plaisir, mais aussi des applications comme Adobe Connect qui permet du partage d'écran, de documents etc. (en version online en tout cas). Bref, un bon nombre de possibilités qui va s'ouvrir pour nous, les développeurs.

La "mauvaise nouvelle", c'est que c'est bien sûr pas pour tout de suite puisque le support est annoncé pour fin 2010 et pour plus tard pour les BlackBerry. On voit donc que l'Open Screen Project et ses partenariats portent doucement ses fruits et ça fait plaisir. Comme d'habitude, voici une petite vidéo d'un evangelist Adobe, bien heureux de pouvoir jouer avec la bête. Notez que le portable utilisé dans cette vidée est le Motorola Droid (Android):

Une autre nouvelle qui fait plaisir au passage, que j'ai lu sur le blog de Michael Chaize, possédant un portable avec Flash Player 10.1 est qui a testé la navigation (par le navigateur web, pas par une application native) sur une application Flex 4, sur un mobile. Et bien que ce ne soit pas encore la version "optimisée mobile" avec Slider, on dirait que cela tourne plutôt bien. On parle bien de deux choses différentes mais l'aspect application en ligne simple n'est pas à oublier.

Pour l'instant, les démonstrations peuvent avoir lieu sur les mobiles Dell (Mini 5, une tablette), le Nexus One de Google, le HTC HD2 ou le Motorola Droid entre autres. On peut remarquer que la plupart des annonces se font d'abord sur Android, sûrement car cette plate-forme est plus ouverte et évolutive. Bref, vivement que cela sorte pour mettre rapidement la trique à Apple qui se bougera la fève pour rattraper le train.

11oct/092

Slider: Le Framework Flex pour mobiles (iPhone, Android, etc.)

Depuis l'écriture de cet article, Adobe a décidé de ne pas créer un framework mobile mais bien d'intégrer ces notions / composants dans la prochaine version de Flex: Flex 4.5 alias Hero: Hero – Le prochain Flex SDK (4.5) avec composants pour mobiles

Si vous étiez à Adobe MAX, ou que vous avez suivi les keynotes en live, vous avez entendu parler de Flash Player 10.1, de Air 2.0 ou bien des applications Flash sur iPhone. Adobe a aussi présenté Slider, le framework Flex pour plate-forme mobile. En effet, Flex est trop lourd en natif pour pouvoir être utilisé sur plate-forme mobile. Il faut en effet prendre en compte les ressources limitées en CPU et en RAM.

Slider est basé sur Flex 4 est n'est pour l'instant (Novembre 2009) qu'à un stade peu avancé mais on peut déjà voir des applications crées grâce à Slider sur iPhone. Vous pouvez trouver sur la Adobe TV, une session sur Slider qui présente les fonctionnalités du framework. Si vous développez en Flex, je vous conseille fortement de regarder cette présentation:

Sont abordés de nombreux points importants pour le développement de RIA mobiles. Par exemple, la navigation par écran ou bien la gestion de la sauvegarde des données. Slider viendra donc avec de nouveaux composants qui seront bien sur compatibles avec les autres composants Flex. Le Binding, skinning et autres éléments-clé de Flex seront toujours au rendez-vous.

Une nouveauté, l'introduction des "Conditions". Ceux-ci seront utilisés un peu comme les states. C'est-à-dire que vous pouvez créer une condition (une sorte d'état if (iPhone)) qui va vous permettre de créer une application avec des fonctionnalités spécifiques à une plate-forme ou à une capacité de l'appareil. Rassurez-vous, il ne vous faudra pas écrire des dixaines de Conditions pour tous les OS, Slider va assurer lui-même un maximum de compatibilité avec les appareils sans que vous n'écriviez de code "device-specific".

Cette présentation parle aussi de la résolution des problèmes qui apparaissent lors d'un développement pour plate-forme mobile comme par exemple la gestion des résolutions, l'input, la navigation, la taille de l'écran, …

Tout cela peut encore changer, ce SDK est toujours en préparation. On peut quand même remarquer que pour porter une application Flex vers une application mobile, on pourra réutiliser du code et de la logique, spécialement si votre application respecte bien un modèle type MVC.

Remplis sous: Slider 2 Commentaires