Flex Canvas / BorderContainer – Gestion des évènements souris (MouseEvent) et backgroundColor
Tutorial Flex écrit par Serge Boujo . Publiez vous aussi sur flex-tutorial!
Certains comportements de Flex sont parfois surprenants : Par exemple, avec Flex 3, lorsque l’on veut une ombre derrière un mx:Canvas ou des coins arrondis, sans bordure, il faut spécifier une bordure d’épaisseur 0, alors qu’on serait tenté d’avoir recours à une bordure "none".
Flex Tips – Canvas, cornerRadius et coins arrondis (rounded corners)
Un autre exemple, qui ne se prétend pas exhaustif, nous permet de mesurer l’incidence de la transparence des composants s:Bordercontainer et mx:Canvas sur leur prise en charge des principaux MouseEvent.
Survolez les cinq pavés, leurs caractéristiques communes sont dans le premier onglet, celles qui différent sur les onglets suivants.
Flex Source Code Download: Télécharger le code source complet de l'application
On aurait, pu, pour notre mx:Canvas N°4, être tenté de spécifier un backgroundAlpha de 0.1, voire moins, escomptant que l’aspect du pavé en aurait été altéré de façon imperceptible mais que cette relative opacité permettrait la diffusion des event de souris….
Ca n’aurait pas suffit, il faut une couleur de fond explicitement déclarée grâce à la propriété backgroundColor.
Si vous avez scrolls qui, à l’utilisation de la molette de la souris, réagissent par à-coups, c’est peut-être ce genre de piste qu’il faut creuser.
Flex PHP – A ne pas oublier quand vous déplacez votre projet Flex
Tutorial Flex écrit par Serge Boujo . Publiez vous aussi sur flex-tutorial!
Deux petits problèmes concernant AMFPHP, qui me sont arrivés coup sur coup, un jour de grand ménage et de réorganisation de mes projets. Ce n’est, certes, pas d’une portée technique terrifiante, mais ça pourra, je l’espère, éviter à certains de perdre un temps précieux.
L'accès à la base de données ne fonctionne plus
Le symptôme est le suivant : votre développement Flex accédant à une base de données ne fonctionne plus.
Certain de votre code, vous décidez, en utilisant le browser AMFPHP, de tester vos méthodes. Dans le browser, voulant tester le service, vous obtenez:
Evidement, vous passez et repassez votre php en revue : tout à l’air parfait, le service comme le VO (Value Object). Et, évidement toujours, il ne viendrait pas à l’esprit d’examiner votre objet depuis le browser : pour obtenir ça, à quoi bon ?
Et c’est là que vous auriez eu tort… Parce que vous auriez obtenu ça :
Le remède : virez tous les retour-chariot qui suivent la balise fermante…
Tout rentrera dans l’ordre. Ce problème des retours-chariots surnuméraires concerne également les services, quel que soit l’éditeur externe à Flex que j’utilise.
Le canal de destination ne peut plus être atteint
Le symptôme est le suivant:
Pourtant, tout fonctionnait avant que vous ne déplaciez le projet d’un workspace / espace de travail à un autre. Vous n’avez rien touché au code. C’est à n’y rien comprendre.
Le remède : Allez vérifier les paramètres de compilation de votre projet:
J’ai systématiquement le problème en Flex 4, jamais en Flex 3 : ce qui est dans l’ovale rouge disparait.
Jeu-concours !
1 - Au bout de combien de mois cela m’est-il arrivé pour la première fois ?
2 - Combien de temps ai-je perdu, lorsque ça m’est arrivé ?
Il est interdit de se moquer…
Flex Chart – Utilisation des fills, des stroke et des fillFunction dans les Charts
Tutorial écrit par Serge Boujo
Agir sur le choix des couleurs dans les Charts
J’ai eu à agrémenter des résultats de graphiques, pour lesquels je souhaitais utiliser des couleurs autres que celles proposées en standard par Flex.
Du fait d’une lecture incomplète de la documentation, j’ai utilisé une FillFunction sans chercher plus loin : j’arrivais à fixer les couleurs pour le graphe, mais non pour la légende.
Flex Source Code Download: Télécharger le code source complet de l'application
La démarche à proscrire
J’ai utilisé une fillFunction pour afficher mes secteurs en rouge et en vert.
Lors de la déclaration de la Legend, ayant spécifié mon Chart en tant que dataProvider, j’étais persuadé que les couleurs affichées dans la Legend suivraient.
La lecture du code de la fonction confirme l’inadéquation de la solution : on remarque que le paramètre item n’est pas utilisé, mais surtout que le résultat renvoyé dépend uniquement du rang de la valeur au sein de la série, trahissant l’esprit d’une fillFunction.
Un petit rappel de la doc:
The signature of the fillFunction is as follows:
function_name(element:ChartItem, index:Number):IFill { ... }
The following table describes the arguments:
- element: The chart item for which the fill is created; type ChartItem.
- index: The index of the chart item in the series's data provider; type Number.
L’exemple de fillFunction ci-dessus fixe en même temps teinte et alpha de la SolidColor, mais il est tout à fait possible de n’intervenir que sur l’un des deux. Le code deviendrait alors, si l’on ne voulait jouer que sur l’opacité.
private function myFillFunc(item:PieSeriesItem, index:Number) : IFill {
var coul: SolidColor = new SolidColor(0xDDDDDD);
if (index == 0){
coul.alpha = 1.0
}else {
coul.alpha = 0.4;
}
return coul;
}
Utilisation correcte des fills, des stroke et des fillFunctions dans les Charts
Les erreurs que j’ai commises et décrites dans mon précédent tuto m’ont incité à creuser la question ; une relecture soigneuse et approfondie de la documentation de Flex m’a permis d’y voir un peu plus clair.
La démarche correcte consiste en l’abandon de cette fillFunction et en l’utilisation de fills.
Pour ceux qui veulent approfondir, on peut également fixer des stroke différents pour le tour et pour les séparations des pies.











