|
|
EuroConverter - Accéder au webservice avec Flash Remoting
Crée le : samedi5avril9 200
Dernière révision : lundi 1 mai 2006 00:01:40
Ce webservice utilise AMFPHP. Il peut donc être appelé avec les méthodes natives des classes Flash Remoting.
Si vous ne les avez pas installées il vous faudra télécharger les classes Remoting dans la version qui correspond à la version du logiciel Flash avec laquelle vous exportez l'animation. Les classes Remoting fonctionnent au minimum avec Flash Player 6 quelle que soit la version choisie.
Une fois installées il vous faudra importer dans la bibliothèque de votre animation une instance du paquetage RemotingClasses de la bibliothèque Fenêtre > Autres Panneaux > Bibliothèques communes > Remoting. Il est vivement recommandé d'importer également le paquetage RemotingDebugClasses qui permet d'utiliser le Netconnection Debugger.
Vous pouvez faire un premier essai de connection au webservice avec le code suivant (MX 2004) :
import mx.remoting.Service;
import mx.rpc.ResultEvent;
var service:mx.remoting.Service;
service = new Service
(
"http://www.tekool.net/amfphp.php", //Passerelle
null,
"EuroConverter", //Nom du service
null,
this //Objet chargé de recevoir les réponses
);
//Méthode chargée de recevoir le résultat
this.onResult = function(res:ResultEvent)
{
trace(res.result.rate);
}
//Demande le taux de change contre Euro du Dollar
service.getCurrency('USD');
Télécharger un fichier .FLA illustrant l'exemple
class Currency
{
var code:String;
var rate:Number;
var date:Date;
var labelFrench:String;
var labelEnglish:String;
var countryFrench:String;
var countryEnglish:String;
}
- Description
- Toutes les méthodes du webservice retournent un ou plusieurs objets Currency instance de la classe Currency telle que déclarée ci-dessus. C'est l'objet de base qui est utilisé pour véhiculer les informations relatives à chacune des entrées des valeurs monétaires enregistrées dans la base.
- Il n'est absolument pas nécessaire de déclarer cet objet dans les classes de son aplication pour utiliser le webservice mais si vous désirez le faire vous pouvez télécharger un exemple de la classe Currency en question.
- Rem: Pour le moment le serveur retourne un timestamp sous forme d'une chaîne pour représenter la date, il faut donc se préoccuper de la transformer en objet Date avant de l'utiliser en tant que propriété de l'objet Currency. Cela devrait être résolu avec la version v1.0 d'AMF-PHP que j'installerais ici trés bientôt.
- Utilisation
- La méthode onResult utilisée au-dessus aurait ainsi pu s'écrire :
import mx.rpc.ResultEvent;
import Currency;
this.onResult = function(res:ResultEvent)
{
var oCurrency:Currency = res.result;
trace(oCurrency.code);
trace(oCurrency.rate);
trace(oCurrency.labelFrench);
trace(oCurrency.countryFrench);
}
EuroConverter.getList
(
[date:Date],
[code1:String, ..., codeN:String]
)
- Description
- Obtient la liste complète des objets de description des monnaies disponibles dans la base de données à une date donnée
- Retourne
- Un tableau d'objets de description des monnaies
- Arguments
-
- date:Date
- Argument optionnel.
- Si cette date est passée en argument, le webservice va retourner une liste de toutes les monnaies dont le taux de change contre Euro a été enregistré au moins une fois avant la date demandée
Remarque au sujet des dates.
- code1:String, ..., codeN:String
- Arguments optionnels, liste d'arguments de longueur variable.
Cette liste permet d'inclure ou d'exclure des monnaies de la liste retournée :
- Pour exclure un objet de la liste il suffit de passer en argument son code monétaire précédé du signe moins comme par exemple : '-EUR'
- Pour inclure un objet dans la liste, il suffit de passer son code monétaire tel quel ou de le faire précéder du signe plus comme par exemple : 'EUR' ou '+EUR'.
À partir du moment où au moins un code monétaire est passé dans la liste d'inclusion, aucune autre monnaie ne sera plus retournée que celles passées dans la liste d'inclusion.
- Exemple
-
//Liste complète des taux de changes les plus à jour
service.getList();
//Liste complète des taux de changes au 31/12/2003
service.getList(new Date(2003,11,31));
//Liste complète des taux de changes sans Euro ni Dollar US
service.getList(null, '-EUR', '-USD');
//Liste uniquement composée du Dollar US et du Yen Japonais
service.getList(null, '+USD', '+JPY');
//Liste uniquement composée du Dollar US
service.getList(null, '+USD', '+JPY', '-JPY');
- Illustration
-
Télécharger les sources de l'exemple exposé ci-dessus
EuroConverter.getCurrency
(
code:String,
[date:Date]
)
- Description
- Obtient du serveur un objet de description de la monnaie dont le code est passé en argument.
- La gestion des appels faits à cette méthode sont trés optimisés au niveau du serveur et elle n'y a que quelques octets à retourner.
C'est la méthode à utiliser dans le cas où l'application Flash requiert la valeur du taux de change d'une valeur monétaire unique. Elle permettra d'effectuer une conversion de l'Euro vers une autre valeur monétaire sans le délai qu'impose un appel à la méthode EuroConverter.Convert (lancer le calcul sur les animations d'illustrations des deux méthodes permet de comprendre)
- Retourne
- Un objets de description de la monnaie dont le code a été passé en argument
- Arguments
-
- date:Date
- Argument optionnel.
- Si cette date est passée en argument, le serveur va retourner le taux de change de la monnaie tel qu'il avait cours à la date demandée.
Remarques au sujet des dates.
- Exemple
-
//Obtient le taux de change du Dollar US le plus à jour
EuroConverter.getCurrency('USD');
//Obtient le taux de change du Dollar US au 31/12/2003
EuroConverter.getCurrency('USD', new Date(2003,11,31));
- Illustration
-
Télécharger les sources de l'exemple exposé ci-dessus
EuroConverter.convert
(
fromValue:Number,
fromCode:String,
toCode:String,
[date:Date]
)
- Description
- Convertit une valeur monétaire exprimée dans une monnaie vers une autre
- Retourne
- Retourne un objet contenant les 2 objets de description des monnaies impliquées dans la conversion, la valeur à convertir et la valeur résultant de la conversion.
- La structure de l'objet retourné est la suivante :
{
fromCurrency:Currency,
toCurrency:Currency,
fromValue:Number,
toValue:Number
}
- Arguments
-
- fromValue:Number
- Un nombre représentant la valeur à convertir
- fromCurrency:String
- Le code de la monnaie dans laquelle est exprimée la valeur à convertir
- toCurrency:String
- Le code de la monnaie vers laquelle la conversion s'effectue
- date:Date
- Argument optionnel.
Si cette date est passée, la conversion sera effectuée telle qu'elle aurait pu l'être avec les taux de change en cours à la date demandée
Remarques au sujet des dates.
- Exemple
-
//Conversion de 10 Euros en Dollars US
service.convert(10, 'EUR', 'USD');
//Conversion de 10 Euros en Dollars US
//telle qu'elle se serait effectuée au 31/12/2003
service.convert(10, 'EUR', 'USD', new Date(2003,12,31));
- Illustration
-
Télécharger les sources de l'exemple exposé ci-dessus
Les dates des taux de change retournées ne correspondent pas toujours à la date précise où l'équivalence monétaire a été demandée. En effet la bourse n'étant pas ouverte tous les jours, seule la dernière équivalence monétaire enregistrée sera retournée. Par exemple, si l'appel est fait un lundi à 8h00, la dernière équivalence enregistrée retournée sera celle du vendredi14h00 précédent puisqu'il n'y a aura pas eu de mise à jour de tout le week-end .
Les taux de changes des monnaies HRK (Kuna croate), RUB (Rouble russe), CNY (Yuan renmimbi chinois), IDR (Roupie indonésienne), MYR (Ringitt Malais), PHP (Peso philippin) et THB (Bath thaïlandais) n'ont été publiées qu'à fin de mois durant la période de Février 2000 à Mars 2005. Elles n'ont donc été archivées qu'une fois par mois durant cette période. La valeur du taux de change retournée pour ces monnaies sera donc celle enregistrée au début du mois correspondant à la date demandée.
|