Flex Library – Importer des contacts GMail dans une application Flex par HTTPService
Voici une librairie qui peut se révéler très utile. Elle permet de récupérer en ActionScript 3, l'ensemble de ses contacts GMail. On peut penser à de nombreuses utilisations. Par exemple, on veut laisser l'utilisateur inviter des amis sur une application de réseau social. Pour cela, il nous faut leur adresse email. Plutôt que de lui demander de les taper une par une, on récupère ses contacts GMail puis on lui demande simplement de sélectionner lesquels il veut inviter.
Cette librairie développée par Sujit Reddy utilise un HTTPService pour communiquer avec l'API Google. Même si elle n'est pas encore très complète, cette librairie permet au moins de récupérer des contacts GMail et peut être modifiée selon votre besoin puisque les sources sont disponibles.
Notez qu'il y a un bug sur la récupération de certains contacts GMail que j'explique dans ce commentaire sur son blog.
Flex ActionScript – Intercepter l'Erreur #2044 (IOErrorEvent) lancée par Loader [Résolu]
Pour charger des fichiers (XML le plus souvent), j'utilise tout le temps un URLLoader associé à une URLRequest qui fait à ce traitement. J'écoute l'évènement SecurityErrorEvent.SECURITY_ERROR au cas où mon fichier ne pourrait être chargé, si un crossdomain.xml n'est pas présent par exemple. J'écoute aussi l'évènement de type IOErrorEvent.IO_ERROR qui correspond à une erreur IO (Input/Output). Cette erreur se produit le plus souvent quand le fichier n'existe pas ou que l'on a pas les droits d'accès au fichier. Enfin, j'utilise un simple try/catch pour capturer les autres erreurs.
Voici un exemple de code pour le chargement de XML en AS3 (réduit):
-
// ActionScript file
-
import flash.net.URLLoader;
-
import flash.net.URLRequest;
-
-
private var request:URLRequest = new URLRequest("tst.xml");
-
-
private var loader:URLLoader = new URLLoader();
-
-
public function load():void{
-
loader.addEventListener(Event.COMPLETE, xmlLoaded);
-
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
-
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
-
try{
-
loader.load(request);
-
} catch (error:Error){
-
throw new Error("Erreur chargement XML: "+ error.toString());
-
}
-
}
-
// callback une fois le chargement terminé
-
private function xmlLoaded(e:Event):void{
-
// parser le XML
-
var xml:XML = XML(loader.data);
-
trace ("xmlLoaded: "+xml);
-
}
-
// traiter les erreurs de sécurité
-
private function securityErrorHandler(e:SecurityErrorEvent):void{
-
throw new Error("Erreur chargement XML: "+ e.toString());
-
}
-
// traiter les erreurs IO
-
private function ioErrorHandler(e:IOErrorEvent):void{
-
throw new Error("Erreur chargement XML: "+ e.toString());
-
}
Librairies Flex
Liste des librairies AS3 / Flex mise à jour
Il existe de très nombreuses librairies que vous pouvez utiliser avec Flex ou AIR. Certaines sont des libraires purement AS3, vous permettant par exemple de communiquer avec des API (Amazon, FlickR, Facebook...) alors que d'autres sont des librairies de composants graphiques que vous pouvez utiliser directement en MXML. La plupart de ces librairies sont Open Source et gratuites, libre à vous de les utiliser et même de participer à leur développement!
Certaines sont au format SWC, pour les intégrer dans un projet Flex, suivez ce petit tutorial sur les SWC avec FB3.
Il y a un petit picto devant toutes les librairies que je trouve remarquables (pour les avoir utilisées). Pour proposer une librairie AS3/Flex, n'hésitez pas à m'envoyer un mail à fnicollet@gmail.com. Donnez simplement l'url de la lib flex, et un petit commentaire sur ses fonctionnalités
.
Accès à des API
- Cartographie
Yahoo! Maps API: Un des meilleurs services de cartographie en AS3
Modest Maps: Permet d'afficher des cartes type tuile comme celles de Yahoo! ou Microsoft. J'ai beaucoup travaillé avec cette API, elle est vraiment excellente!- Google Maps API: Accès aux APIs Google
- MapQuest API : Permet de récupérer des cartes type Google Maps (mapquest.com)
- MappR API (as3mapprlib): Encore une API cartographique
- Yahoo! APIs (astra): Accès aux APIs Yahoo! Answers, Yahoo! Weather, Yahoo! Search et Yahoo! Upcoming
- eBay API (as3ebaylib): Librairie AS3 permettant de communiquer avec les services Ebay
- Amazon API (as3awss3lib): Permet de communiquer avec les services Amazon S3
- Twitter API: Communiquer avec l'API Rest de Twitter (messages instantanés sociaux)
- FlickR API (as3flickrlib): Communiquer avec l'énorme base de données d'images de Flickr.
- Digg API (diggflashdevkit): Récupérer les informations sur site digg.com
- Facebook API: Communiquer avec l'API REST de Facebook en AS3
- Ribbit API: Permet de lancer des appels téléphoniques, enregistrer les communications etc.
- FedEx API (as3fedexlib)
- Last.fm API (lastfm-as3)
- Youtube API (as3-youtube-data-api): Rechercher des vidéos Youtube, ou accès aux streams
- Blogger API (as3bloggerlib): Communiquer avec Blogger Data
Adobe Air
Adobe Air en quelques mots ...
Adobe Air (Adobe Integrated Runtime) est une machine virtuelle multi-plateforme qui s'exécute sur le système d'exploitation et pas à l'intérieur d'un navigateur comme le fait Flash Player. On parle alors de "Rich Desktop Application" ou RDA. Ces applications riches peuvent être développées en HTML/Ajax (JS), en Flash (ActionScript) ou en Flex pour ensuite être déployées comme une application bureautique. Le plug-in Adobe Air est aujourd'hui disponible pour les systèmes d'exploitation Windows, Mac et Linux.
Télécharger la dernière version du Runtime Air
Pourquoi Adobe Air ?
Durant les dernières années, la mode a été de prendre des applications bureautiques pour les inclure dans des navigateurs internet. Ce choix a été motivé par plusieurs facteurs :
- Croissance d’Internet
- Développement relativement aisé d’applications Web
- Possibilité de viser plusieurs systèmes d’exploitation à travers les navigateurs
Les premières applications ont été construites principalement grâce au couple HTML / JavaScript qui se basait principalement sur les changements et rafraichissements de la page.
Sont ensuite arrivées les applications (« type Ajax ») permettant d’effectuer plusieurs opérations sans recharger la page afin d’améliorer l’expérience utilisateur. Ce type d’application est appelé Application Internet Riche (RIA : Rich Internet Application). La croissance du nombre de ces applications Web autour de services communautaires et d’accès par API a crée ce que certains appellent le Web 2.0.
Malgré cela, les applications Web intégrées au navigateur souffrent des plusieurs problèmes :
- Les applications déployées sur un navigateur ont leur propre interface utilisateur qui peut rentrer en conflit avec l’interface du navigateur lui-même. Les boutons précédent/suivant peuvent provoquer une confusion par exemple
- A cause des restrictions d’accès à l’ordinateur du client, les applications ouvertes dans un navigateur n’apportent pas tous les types d’interaction qu’une personne peut attendre d’une application (glisser-déposer de fichiers par exemple)
- Les différences entre les principaux navigateurs du marché rendent le développement d’applications Web de plus en plus long et laborieux (vous avez déjà vu un site identique sur FF et IE ? ^^)
La mode commence maintenant à s’inverser, et l’on cherche à proposer à l’utilisateur des applications bureautiques nouvelle génération s’appuyant sur les ressources disponibles en ligne. Ces applications sont appelées RDA (RDA : Rich Desktop Application) et nécessitent un programme supplémentaire (« plug-in ») pour fonctionner. Il y a aujourd’hui deux principaux programmes permettant d’utiliser ces applications RDA : Adobe Air et Microsoft SilverLight.






