Bonsoir à tous.
Je viens de faire plusieurs essais de mon côté pour essayer de trouver pourquoi j'ai ce problème de communication entre JavaScript et ActionScript :
1 - Tout d'abord, j'ai supprimé de ma page recherche.php tout le code JavaScript qui n'était pas nécessaire au passage des données du formulaire au Flash. J'ai supprimé notamment tout ce qui touche aux calendriers JQuery. Il n'y est resté en fait que la balise SCRIPT suivante dans le HEAD de ma page, le fichier fonctions.js contenant la fonction valeurElements() utilisée dans mon code ActionScript :
Code :
- <script type="text/javascript" src="./javascript/fonctions.js"></script>
|
Résultat : erreur #1009 à nouveau, triangle jaune en bas à gauche du navigateur, etc...
2 - Une précision : j'ai placé dans ma page recherche.php un bouton appelant la fonction valeurElements() comme suit :
Code :
- <div id="boutonRecherche">
- <input type="button" value="Rechercher" onclick="alert(valeurElements()[0]);" />
- </div>
|
Résultat : tout se passe bien ! La fonction retourne le résultat escompté, même sous IE7. Un clic à suivre sur la carte en Flash utilisant la même fonction JacaScript dans la même page PHP plante toujours, évidemment...
3 - Autre test : j'ai créé une nouvelle fonction JavaScript simplifiée retournant un entier à la place d'un tableau :
Code :
- function valeurElements2()
- {
- alert('Hello !');
- return 999;
- }
|
J'ai modifié le code ActionScript en conséquence pour utiliser cette fonction JavaScript à la place de la fonction initiale :
Code :
- // Evenements déclenchés lorsque la souris quitte l'objet.
- function sourisOut(evt:MouseEvent)
- {
- // Effacement du texte quand le bouton n'est plus survolé.
- label.htmlText = "";
- }
- // Evenements déclenchés lorsqu'un clic sur l'objet est relaché.
- function sourisUp(evt:MouseEvent)
- {
- // Récupération du tableau retourné par la fonction JavaScript valeurElements().
- var valeurElements:String;
- valeurElements = ExternalInterface.call("valeurElements2" );
- // Page PHP cible.
- var adresse:URLRequest = new URLRequest("./mapage.php" );
- // Variables à envoyer.
- var variables:URLVariables = new URLVariables();
- variables.type_entite = typeEntite;
- variables.code_entite = codeEntite;
- variables.type_evenement = valeurElements;
- variables.date_evenement = valeurElements;
- // On passe les variables à l'adresse.
- adresse.data = variables;
-
- // Méthode d'envoi.
- adresse.method = URLRequestMethod.POST;
- // Envoi de l'URL.
- navigateToURL(adresse, "_self" );
- }
|
Résultat : l'appel de la fonction avec le bouton retourne bien 999 comme attendu. Un clic sur la carte Flash appelant la fonction valeurElements2() ne génère plus d'erreur #1009 ni de triangle jaune et la page mapage.php est bien affichée ! Malheureusement, les variables $_POST['type_evenement'] et $_POST['date_evenement'] qui lui sont transmises contiennent null au lieu de 999...
Je vais me suicider à coup de pelle à tarte si ça continue !!!
Cela vous inspire-t-il quelque-chose ?
Merci et bonne fin de soirée.
Mafate