prob avec moteur de localisation " i18n "

1 view
Skip to first unread message

ths otra

unread,
Aug 16, 2009, 4:42:20 AM8/16/09
to vegasos
Bonjour !


J'ai suivi le tutoriel sur le moteur de localisation "i18n " et je suis un peu paumé.
Dans le premier tutoriel, on chargeait le moteur de localization en créant une instance de la class Localization directement en as3 et j'avais fais exactement pareil dans la class principale de mon application. De cette manière, où que je sois dans l'application, au changement de la valeur de Localization.current toutes les instances CoreTextField se mettaient leurs contenus à jour.
Et du coup, j'ai pas capté un truc dans le tutoriel. Car j'ai essayé de faire quelque chose de similaire:

- une instance "localisation" de Localization sur la class Main ( relié à l'objet localization de Localization dans la fabrique IoC, en dépendance, comme indiqué )
- dans une class footer (en linkage enforcer sur la class  Main), j'ai crée une instance de CoreTextField, titre (id: titre_footer)

A partir de là, ça ne fonctionne plus. Probablement (surement même), parce que l' évènement  change n'est pas diffusé jusqu'à la class footer !

Je n'ai pas trouvé dans les exemples une illustration de ce que je cherchais à faire et très probablement que j'ai encore un peu de mal à bien organisé le code avec la fabrique.

structure:
paste: main
paste: footer
paste: application.eden

Bon, je me suis bien paumé je crois ...

 Si quelqu'un avait quelques conseils, ... suis preneur !


A bas le travail banalisé le dimanche et tous les jours d'ailleurs,

thomas




ekameleon

unread,
Aug 16, 2009, 5:40:36 AM8/16/09
to veg...@googlegroups.com
Hello :)

Je ne vois pas dans ta classe Footer de méthode changeLocalization et je ne vois pas dans tes sources l'endroit où tu abonnes la définition d'objet de ton footer avec la localisation ?

En principe ce que tu fais sur ta classe main avec l'attribut listeners tu devrais le faire au niveau de ta définition d'objet footer avec une dépendance vers ta localisation singleton définie dans ton application.eden ou ailleurs selon tes envies.. tu peux isoler la définition d'objet dans un fichier eden à part par exemple : "context/i18n/localization.eden" que tu chargeras dans les imports de ton fichier application.eden

Sinon je ne comprends pas pourquoi tu overrides la méthode addedToStage dans ton footer ? Tu as pas besoin de le faire... quand tu tapes :

titre.y =  h / 2 - this.titre.textHeight / 2
titre.x = marge_gauche
this.addChild(titre)

Tu devrais faire une définition d'objet dans ton context IoC externe pour attacher ton titre directement (PS : title en anglais pour le nom de la propriété c'est mieux)

L'objectif de l'injection de dépendance est justement d'éviter ce que tu fais là dans ta méthode addedToStage de ta classe Footer. Tu dois créer rapidement une définition d'objet pour définir ton champ de texte et passer une référence de celle ci avec ta propriété "titre" mais aussi en faisant le addChild directement dans la définition d'objet du footer.

A noter dans ta classe main que tu tapes :

trace(e.getLocale);


Attention "getLocale()" est une méthode et pas une propriété il manque dans ton code les accolades pour invoquer la méthode.

Tu devrais prendre plus de temps pour regarder l'exemple de base dans AST'r et eGallery et ensuite relire mon article ;) En prenant un peu de recul sur tout cela tu comprendras mieux ;)

EKA+ :)
Reply all
Reply to author
Forward
0 new messages