Flex-iframe, SWFObject et IE!!!
Pour plusieurs raisons, j'ai dû ajouter une iframe par dessus mon application Flex, j'ai donc utiliser Flex-iframe (dont j'ai déjà parlé dans un ancien billet).
Cette bibliothèque fonctionne très bien, mais j'ai remarqué que les iframes ne se plaçaient pas comme il fallait dans Internet Explorer!!
En effet, l'iframe prends bien les positions dans flash, mais n'y ajoute pas la position du swf dans la page!
J'ai donc regardé de plus près la fonction FUNCTION_MOVEIFRAME dans IFrameExternalCalls.as
Pour placé l'iframe, la classe utilise l'attribut javascript offsetLeft et offsetTop du swfObject.
"frameRef.style.top = x + swfObject.offsetTop + 'px'; " +
contentPane de Container et MouseEvent
Voilà un autre problème bien étrange que j'ai rencontré.
J'ai donc un Canvas dans lequel j'ai de nombreux composants cliquables.
Sous ce Canvas j'ai d'autre boutons... Mon souhait est donc qu'aux endroits ou il n'y a pas de composant cliquable sur le canvas, les boutons en dessous le soient! Mais pour une raison inconnue ce n'était pas la cas...
Ma première idée a donc été de mettre mouseEnabled = false sur le Canvas comme je le fais d'habitude.
Mais là, en affichant l'objet qui dispatchait l'événement souris, je me suis rendu compte que c'était en fait le contentPane du Canvas qui était à l'origine du MouseEvent... Le contentPane étant un conteneur supplémentaire de la classe Container où les objets sont réellement placés. En effet, l'osque l'on appelle la methode addChild d'un Container, l'enfant est placé dans le contentPane et non dans le Container lui-même.