ExternalInterface pour récupérer dans javascript une variable de Flash

Résolu
Signaler
Messages postés
49
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
22 septembre 2014
-
Messages postés
1378
Date d'inscription
samedi 9 octobre 2004
Statut
Membre
Dernière intervention
1 novembre 2010
-
Bonjour @ toutezéatous,

J'essaie de récupérer tout simplement une variable issue de mon animation Flash dans ma page html via javascript mais apparemment ça ne fonctionne pas et pourtant j'ai l'impression d'avoir fait ce qu'il faut au vu des tuto que j'ai consultés... mais quelque chose doit m'échapper...

Voici mon code coté javascript :

<script type="text/javascript">
function recup_region(id_reg, nom_reg) {
alert("id_reg " + id_reg + " nom_reg " + nom_reg);
};
</script>     

Côté html :
          <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="160" height="160">
           
           
             
           
          </object>

Et enfin, côté flash :

import flash.external.*;
mon_bouton.onRelease = function(){
var id_region = 13 ;
var nom_reg = "Ile-de-France" ;
ExternalInterface.call("recup_region", id_region, nom_region);
};

Mes variables sont bien affectées côté flash car je les ai affichées dans mon animation pour les tester...

Ai-je oublié quelque chose ? que puis-je faire comme test complémentaire pour comprendre où ça coice ?

Si quelqu'un avait une idée, ce serait super chouette car comme ça, j'arrêterais de m'arracher les cheveux tant qu'il m'en reste encore ;o))

Excellente soirée @ toutezéatous

7 réponses

Messages postés
1378
Date d'inscription
samedi 9 octobre 2004
Statut
Membre
Dernière intervention
1 novembre 2010
1
Essaye : ExternalInterface.call("recup_region", String(id_region), String( nom_region ));

bali_balo....=]
Messages postés
49
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
22 septembre 2014

Bonjour @ toutezéatous,

ça y est, j'ai trouvé !

L'instruction import flash.external.*; se trouvait sur une frame précédente, mais différente de celle de ExternalInterface.call()

J'ai tout mis au même endroit et là ça fonctionne !

J'espère que ça pourra aider ceux qui éventuellement rencontreraient ce pb.

Je tenais aussi à remercier tous ceux qui participent au forum (et tout particulièrement bali_balo qui n'est pas tombé de son berceau ;o)), même s'ils n'ont pas forcément LA solution, c'est grâce à ces échanges que la réflexion se nourrit et avance... sinon on se sent seul(e) au monde et on tourne très vite en rond :roll:

Excellente journée @ toutezéatous et encore un grand MERCI !
Messages postés
49
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
22 septembre 2014

Bonjour @ toutezéatous,

Il ne me reste plus que quelques cheveux sur la tête ;-((

J'ai beau le tourner dans tous les sens, je ne vois pas d'où peut venir le pb...

Je me pose tout de même une question concernant cette classe ExternalInterface... Pourquoi faut-il faire un "import" alors qu'avec toutes les autres fonctions il n'y en a pas besoin ? Ne devrais-je pas avoir un fichier correspondant quelque part sur le serveur, en bibliothèque ou ailleurs pour pouvoir l'importer ?

Merci encore @ toutezéatous et excellente journée !
Messages postés
1378
Date d'inscription
samedi 9 octobre 2004
Statut
Membre
Dernière intervention
1 novembre 2010
1
Moi j'ai testé et ça marche
Envoie moi par MP ton email, je t'envoie mon .zip

bali_balo....=]
Messages postés
1378
Date d'inscription
samedi 9 octobre 2004
Statut
Membre
Dernière intervention
1 novembre 2010
1
Bah le problème de notre coté c'est qu'on a pas toujours devant les fichiers sources.
Tu vois par exemple dans ton message je ne pouvais pas savoir que ton import était dans une autre frame.Sinon je t'aurais fait la remarque.
Mais en même temps tu ne pouvais pas savoir que le bug venait de là. Moi dans ton message j'ai vu le import suivis de ton code.
Enfin bref, vous comprenez maintenant qu'on peut pas vous aider tout le temps car nous n'avons pas toute les infos pour.
Sur ce bon courage !

bali_balo....=]
Messages postés
49
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
22 septembre 2014

Le fait de répondre, c'est déjà super important !

Lorsqu'on est tout seul devant sa machine, on refait les mêmes tests... on ne sait pas d'où ça peut venir : pb de syntaxe, d'organisation du code, etc. Lorsque quelqu'un dit "ça fonctionne chez moi" ça fait déjà avancer le chimilimiblic car on exclu le pb de syntaxe et on oriente nos recherches autrement...

Et puis lorsqu'on poste dans un forum, on essait d'être synthétique pour ne pas décourager les lecteurs potentiels ;o)) Alors effectivement on ne met pas tout, on va à l'essentiel ou tout du moins à ce qui nous semble essentiel et du coup on squize des infos importantes
Moi je pensais que le fait de faire "import" ça chargeait "en mémoire" la classe et on pouvait l'utiliser comme on voulait. Ce qui veut dire que si dans une autre frame j'ai besoin d'utiliser de nouveau ExternalInterface.call(), je devrais refaire le "import", et ça, ce n'est pas dit dans les tutos que j'ai pu lire... Mais c'est vrai que c'est une situation peu commune ;o)

En tout cas, c'est super sympa ne serait-ce que de répondre, ça fait repartir la machine !!!

Encore un grand MERCI et @ bientôt !
Messages postés
1378
Date d'inscription
samedi 9 octobre 2004
Statut
Membre
Dernière intervention
1 novembre 2010
1
Un seul conseil aux débutants : devenaient expert en debbugage.
Moi je suis formateur Flash et je peux te dire que la plus part du temps les stagiaires blocs car ils ne savent pas comment gérer un problème. Enfin toute les méthodes pour bien debbuguer.
ciao

bali_balo....=]