Lorsque l'on commence à faire un peu de flash dynamique, et que l'on comprend tout le potentiel de charger des fichiers externes (php, flux rss, etc...), on se heurte vite à certains obstacles !
Dans cet exemple, je vais aborder l'obstacle du chargement interdomaine et une manière d'outrepasser cette limitation.
Flash et la securité
--------------------
Pour certaines raisons, flash ne permet pas l'execution et le chargement de certains fichiers provenant d'un domaine different de celui qui l'appel. Certains d'entre vous ce sont surement déjà retrouver "coincés" en voulant charger un flux rss distant dans un swf. C'est parfois assez frustrant ! Car on peut tout à fait charger une image distante, mais rien d'autre .... pourtant charger un xml distant ne presente pas vraiment plus de risque que charger une image ...
Solution du fichier "crossdomain.xml"
-------------------------------- -----
Flash a penser à nous ! En permettant de creer des règles d'autorisation interdomaine.
En theorie celà signifie, que via un fichier de règle ("crossdomain.xml") placé sur un domaine distant, on peut autoriser ou pas l'accès aux fichiers de ce domaine depuis le domaine où votre swf est hebergé ...
En pratique celà implique que vous devez posseder les "clés" du domaine distant pour pouvoir y deposer votre fichier "crossdomain.xml" ! Evidement celà complique beaucoup les choses, vous vous voyez envoyer un mail à microsoft pour leur dire de mettre un fichier crossdomain sur leur serveur pour que vous puissiez acceder à leur fichier depuis votre domaine !?!
Solution via l'intermediaire d'un script php
--------------------------------------------
C'est cette methode que je vais vous expliquer. Ne soyez pas effrayez par le mot php (certain y font une allergie), ce script sera casi invisible pour vous, mais il va vous faciliter la vie !
En gros, je vais utiliser un scrip php pour faire une passerelle entre votre swf et le fichier distant.
Votre flash envoi l'url distante au script php, le php recupère le fichier distant, flash recupère le resultat du php (donc le fichier distant, vous avez compris le principe).