Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CLASS JAVASCRIPT [DIALOGUE AVEC FLASH]


Information sur la source

Catégorie :Divers Niveau : Débutant Date de création : 03/07/2004 Date de mise à jour : 21/12/2006 15:10:02 Vu / téléchargé: 14 720 / 1 511

Note :
8,91 / 10 - par 11 personnes
8,91 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (40)
Ajouter un commentaire et/ou une note

Description

Suite à la lecture d'un article sur la possibilité de dialoguer avec une animation flash depuis javascript, je viens de créer un fichier js externe qui vous permettra de piloter plusieurs propriétés de votre animation depuis javascript à travers la creation d'un objet flash, voici la façon de l'utiliser :

Faites un src sur le js externe dans le HEAD (présent dans le zip de la source) :
<script language=javascript src="ASflash.js" type=text/javascript></script>

Puis dans le corps de votre page contenant l'anim,

<script type="text/javascript">

// Creation d'un nouvel objet flash
var flash = new flashID('anim'); // anim = l'identifiant (id) de l'animation

// Exemples de fonctions :
flash.gotoAndStop(10);
flash.clipSetProperty('_root.clip1','_alpha',50);
flash.LoadMovieNum('form.swf',0);
</script>

ATTENTION, Pour dialoguer avec le swf, il faudra l'identifier dans la page HTML par son id (identifiant) et utiliser cette déclaration (Satay) :

<object type="application/x-shockwave-flash" data="anim.swf" width="400" height="400" id="anim">
<param name="movie" value="anim.swf" />
</object>

Remplacer data, width, height, id et le param movie par vos valeurs. l'id doit être celui appelé pour l'objet flashID

Vous pourrez appeler tel ou tel fonction depuis une balise lien, par exemple :

<a href="javascript:flash.play();">Lecture</a>
<a href="javascript:alert(flash.totalFrames());">Nb de frames de l'anim</a>
Des remarques ou améliorations n'hésitez pas.
 

Source

  • Liste des fonctions : (Regardez dans ASFlash.js pour la description)
  • monswf.play();
  • monswf.stop();
  • monswf.gotoAndStop(10);
  • monswf.isPlaying();
  • monswf.rewind();
  • monswf.getVariable('_root.var1');
  • monswf.setVariable('_root.var1','hello!');
  • monswf.LoadMovieNum('anim1.swf',0);
  • monswf.getBytesLoaded();
  • monswf.pan(40,50,1);
  • monswf.zoomRect(0,0,100,100);
  • monswf.zoom(40);
  • monswf.totalFrames();
  • monswf.currentFrame();
  • monswf.currentLabel();
  • monswf.clipgotoAndStop('_root.clip1',10);
  • monswf.clipLabelgotoAndStop('_root.clip1','chapitre1');
  • monswf.clipPlay('_root.clip1');
  • monswf.clipStop('_root.clip1');
  • monswf.ClipGetProperty('_root.clip1','_x');
  • monswf.ClipSetProperty('_root.clip1','_alpha',50);
  • Avec les propriétés :
  • "_x","_y","_xscale","_yscale","_currentframe","_totalframes",
  • "_alpha","_visibility","_width","_height","_rotation","_target",
  • "_framesloaded","_name","_droptarget","_url","_highquality",
  • "_focusrect","_soundbuftime"
Liste des fonctions : (Regardez dans ASFlash.js pour la description)

monswf.play();
monswf.stop(); 
monswf.gotoAndStop(10);
monswf.isPlaying(); 
monswf.rewind();
monswf.getVariable('_root.var1'); 
monswf.setVariable('_root.var1','hello!');
monswf.LoadMovieNum('anim1.swf',0);
monswf.getBytesLoaded(); 
monswf.pan(40,50,1);
monswf.zoomRect(0,0,100,100);
monswf.zoom(40);
monswf.totalFrames();
monswf.currentFrame();
monswf.currentLabel();
monswf.clipgotoAndStop('_root.clip1',10);
monswf.clipLabelgotoAndStop('_root.clip1','chapitre1');
monswf.clipPlay('_root.clip1');
monswf.clipStop('_root.clip1');

monswf.ClipGetProperty('_root.clip1','_x');
monswf.ClipSetProperty('_root.clip1','_alpha',50);

Avec les propriétés :
"_x","_y","_xscale","_yscale","_currentframe","_totalframes",
"_alpha","_visibility","_width","_height","_rotation","_target",
"_framesloaded","_name","_droptarget","_url","_highquality",
"_focusrect","_soundbuftime"

Conclusion

Tout ça avec du Javascript, c'est pas merveilleux ;)

Attention, ces methodes Javascript marchent avec Mozilla et Firefox sous peine d'avoir la dernière version du lecteur flash 7.0.19 ==> Implantation du swfLiveConnect.


A+
aFaD
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

21 décembre 2006 15:10:03 :
Nouvelle méthode pour déclarer l'animation afin que l'outil marche sous firefox dernière génération.

Commentaires et avis

signaler à un administrateur
Commentaire de tom le 03/07/2004 11:28:06 administrateur CS

Fantastique! En voila une source qu'elle est bonne! Je note des que je l'ai decortiqué...
Il faut que je fasses des tests, parce que y a des trucs qui marchent sous mozilla (voir les travaux de robertPenner.com). Et je ne supporte pas un truc qui ne marche que sur un seul type de navigateur...
Je te tiendrais au courant...

signaler à un administrateur
Commentaire de afad le 03/07/2004 13:55:27

Merci Tom ;)
C'est pas faute d'avoir balayé de fond en comble le site de Macromedia.... Mozilla ne semble pas prendre en compte les methodes Javascript assi bien en communication js --&gt; flash que  flash --&gt; js (voir fscommand)

http://www.macromedia.com/support/flash/ts/documents/mozilla_fscommand.htm

A+
aFaD

signaler à un administrateur
Commentaire de top30 le 03/07/2004 14:00:30

Oui c'est à l'air super bon... Perso je vois pas trop l'utilté car je suis pour un Internet 100% Flash. Mais les possibiltés ouvertes par ce tutaux et sa qualité sont apparement indéniables.

Je mets 9/10 sans tester...

signaler à un administrateur
Commentaire de tom le 03/07/2004 16:46:08 administrateur CS

Ben, l'utilité est de mettre en relation le navigateur et le flash... Exemple, si tu vas sur mon site, tu peux revenir sur les menus deja ouverts grace aux boutons du navigateur de la meme facon que dans un site en html. Je trouve qu'il faut adapter le flash pour un comportement plus proche de la navigation html que des milliers d'internautes ont l'habitude d'utiliser...

100% flash, c'est bien, mais il ne faut pas occulter le navigateur pour autant...

signaler à un administrateur
Commentaire de SuperDevy le 03/07/2004 19:22:31

Hyper super génial !
Voila là une source que j'apprécis particulièrement. Enfin, je vais pouvoir rendre mes créations Flash plus interactives et portables (enfin, presque si ça marche pas avec Mozilla).


Merci beaucoups,         --------[9/10]--------

SuperDevy

signaler à un administrateur
Commentaire de BlackWizzard le 04/07/2004 01:19:27 administrateur CS

waow... terrible!
9/10!

signaler à un administrateur
Commentaire de afad le 04/07/2004 12:34:04

Merci à vous, J'ai trouvé le souci par rapport à Mozilla, c'est un bug déclaré chez Bugzilla : Flash FS Command fails http://bugzilla.mozilla.org/show_bug.cgi?id=37710

la propriété liveconnect n'etait pas implémenté dans le plugin Flash Mozilla.  Il faut telecharger la dernière version de l'API sur marcomedia.
En vieux baroudeur, j'avais une veille version et je vous ai induit en erreur, désolé.

ça tourne sur tous les navigateurs maintenant, je viens de tester Netscape 7.02, Mozilla 1.7 et firefox 0.8 ;)

A+
aFaD

signaler à un administrateur
Commentaire de tom le 04/07/2004 16:38:45 administrateur CS

C'est bien ce que je pensais ( je suis sur firebird et ca marche nickel...).

signaler à un administrateur
Commentaire de individis-bis le 04/07/2004 21:50:47

C vrai c vachement important pour les puristes, il y a au moins 0.4% des internautes qui utilisent Mozilla...
Vous je suppose.
Tres utile cette source.

signaler à un administrateur
Commentaire de top30 le 04/07/2004 23:25:10

C¡est drole vu que chacun ici est minumun Webmaster d'un site je pensais que vous étiez pour un Web uniforme (Au moins au niveau des Navigateurs)... Perso je suis pour... Un controle d'eux certes (ce que pas le cas d Explorer).. mais quand mème quel pied si y avait plus à ce soucier de ce que possède comme navigateur tel ou tel personne...

Le débat est lancé !  = )

signaler à un administrateur
Commentaire de SuperDevy le 05/07/2004 11:32:52

Oui, ça peut être une bonne idée !

Il est vrai que ce serait merveilleux pour les webmasters un peu paresseux ... "Ma page marche avec Netscape, alors tout le monde peut l'afficher.". "The Universal Web Browser" (UWB)

Et pareil, on met tous les MACs à la poubelle ? On a aussi des ActiveX qui marchent pas sous MAC mais sous PC et vis-versa ! Evidement, il faudrait que MAC et PC deviennent polyvalents... c'est la fin du MAC ?
Non, il est impossible d'uniformiser les navigateurs. Ce serait une situations de monopole, et chacun sais que c'est pas ce qu'il y a de mieux pour faire tes avancées (progrès).

Réfléchis à ça top30 !

SuperDevy

signaler à un administrateur
Commentaire de BlackWizzard le 05/07/2004 12:10:34 administrateur CS

une situation de monopole, c pas souhaitable, mais un standard imposé, dirigé par le w3c par exemple, ce serait bien...
De cette maniere, que ce soit IE, mozilla ou konkeror, tous les navigateurs seraient compatible... et pour les ActiveX, je pense que le mieux serait de les supprimer, ils sont incopatibles, source de problemes de secu quand ils sont compatibles, bref, pas terrible...

Apres, niveau navigateur, meme si ça rester le moins secure d'entre tous, IE possede quand meme le moteur html le plus puissant et le plus fiable. Il gere tous les standards, ce qui n'est pas le cas de KHTML par exemple qui est le moteur html de konkeror.

Il y a qques temps, le w3c avait un projet de standardisation du web... je sais pas ce que c'est devenu...

signaler à un administrateur
Commentaire de afad le 05/07/2004 13:59:28

Ca va dans l'ensemble,
en respectant les standarts imposés par le W3C notamment en xHTML et CSS et l'augmentation croissante de validateur en tout genre... Il devient de plus en plus facile de créer des sites web design et dynamique quelque soient les navig. utilisés. Il y aura toujours des soucis mais dans l'ensemble ça va ;)

Le truc c'est que les langages du web sont des langages interpretés. Donc interpretable à toute les sauces. Le web manque de langages compilés comme flash qui apportent un peu plus de stabilité à la toile.

A+
aFaD

Bien

signaler à un administrateur
Commentaire de tom le 05/07/2004 16:32:17 administrateur CS

Perso, je suis pour une standardisation des navigateurs ... en open source.

...Et sans palladium...

&gt;&gt; individis:" il y a au moins 0.4% des internautes qui utilisent Mozilla"

Les stats du 4 juillet 2004:
1. Microsoft                     76.7%
2. Netscape                     10.0%
3. other                          13.3%

Une personne sur quatre, je ne crois pas que c'est à négliger...

Bref, tant qu'il y aura pas d'harmonisation, il faudra continuer à faire un code pour tout le monde...

signaler à un administrateur
Commentaire de top30 le 05/07/2004 17:04:20

SuperDevy.. Quand la création d'un Web n'est plus un passe temps mais un travail il est franchement casse couille de consacrer du temps à d'autre version de navigateur...

Réflichis-y !

signaler à un administrateur
Commentaire de tom le 05/07/2004 19:29:58 administrateur CS

T'en fais pas Top30, tu n'as pas à consacrer du temps aux autres navigateurs, parce que malgré ca, ils fournissent quasiment tous le meme rendu, y a juste le javascript qui peut poser probleme, et seulement dans certains cas... Et puis, c'est comme une class en flash, une fois que tu l'as, tu la réutilises à l'infini... gain de temps, ect...

signaler à un administrateur
Commentaire de top30 le 05/07/2004 20:13:03

J avais oubliez de noter... alors j ai mis 10 !

= )

signaler à un administrateur
Commentaire de afad le 06/07/2004 00:56:28

cool :) ça remontera le 1/10 que je me suis tapé ya 2 jours.....

Pour votre gouverne, cette class a déja trouvé son utilité par l'intermédiaire d'un pote webmaster pour un boite desirant à partir d'un systême de navigation en javascript (zoom + deplacement à la mappy) manipuler des cartes topographiques enregistrées en swf (je déconne pas, les cartes sont au format A0 !!!) Ils veulent garder leur systême javascript parceque à la base, il peut déja accueillir des fichier PNG, des cartes topo animés en 3D (format VRML) et des .mov.

Sacré programme !!!! Et moi je suis pas payé .......... :(

A+
aFaD

signaler à un administrateur
Commentaire de BlackWizzard le 06/07/2004 01:53:55 administrateur CS

C'est comme ça l'open-source... bosser, deposer ses sources pour qu'un autre plus malin gagne du fric sur ton dos...

signaler à un administrateur
Commentaire de binomej le 15/09/2004 18:18:52

Bonjour,

Voilà j'ai un petit soucis, cela ne fonctionne pas chez moi !
Je sur Mac et je l'ai testé sur tout les navigateurs dispos ...
même IE ne veux rien savoir, il me dit monswf n'est pas un objet ??

Pourtant j'ai bien suivi les instructions données !!

Quelqu'un a un avis ou une suggestion à me faire ... pour le code, j'ai fait un test avec le trict minimum, la page html et le swf c'est tout !

Merci de votre aide !
Binomej

signaler à un administrateur
Commentaire de yuped le 26/11/2004 12:17:12

hello,
je suis sur PC (ie) et j'ai le meme soucis que le message precedent :
message : 'monswf' a la valeur null ou n'est pas un objet

j'ai mis la page en ligne pour tester :
http://nicolastephane.free.fr/test/test.html

faut t il definir quelquepart 'monswf' ?
je ne sais pas comment regler ce "bug"
merci beaucoup pour l'aide

signaler à un administrateur
Commentaire de tom le 26/11/2004 14:29:40 administrateur CS

Il vous suffit de remplacer 'monswf' par 'flash' (en tout cas, si vous avez bien suivi les instructions de déclaration du flash dans le html).
Si on décortique le petit javascript d'initialisation, on se rend compte que:
- l'objet swf possede l'id 'anim' :  donc il s'appelle 'anim'
- la variable 'flash' pointe vers 'anim', donc c'est ce mot qui sera le lien entre le javascript et le swf.

J'espere que ca aidera tous les débutants à mieux ANALYSER ce code. Comprenez ce que vous copiez!

signaler à un administrateur
Commentaire de yuped le 26/11/2004 15:04:02

merci beaucoup pour l'aide !
je galere sec ça fait plus de 3 heures que je suis la dessus !!

j'ai bien déclaré mon swf ainsi : id=anim
et j'ai vu ici effectivement il y a ce code :
// Creation d'un nouvel objet flash
var flash = new flashID('anim');

j'ai donc remplacé "monswf" par "flash"
et pareil dans la page ASflash.js

et maintenant je n'ai plus le message d'erreur à l'ouverture de la page :
par contre lorsque je click sur zoom dans ma page,
<a href="javascript:flash.zoom(40);">Zoom</a>

j'ai ce message :
'flash' a la valeur null ou n'est pas un objet

voir ici svp : http://nicolastephane.free.fr/test/test.html

ya un truc qui m'echappe !!
merci de m'aider je vais craquer !!

signaler à un administrateur
Commentaire de tom le 26/11/2004 16:15:43 administrateur CS

Ah! malheureux! Il faut pas toucher au fichier js, il n'y a aucune modif à apporter dessus! Seulement la page de déclaration! Remplace ton js par celui présent dans le zip et ca tourneras sans probleme. monswf correspond au lien créé par derriere! Tu crois quand meme pas qu'afad va te donner un truc qu'il faut modifier!

bon tu me copieras 100 fois 'je dois analyser le code' ;)

signaler à un administrateur
Commentaire de yuped le 26/11/2004 16:36:45

oui mais j'avais pas toucher au .js au depart !
et j'avais toujours cette erreur ??
'monswf' a la valeur null ou n'est pas un objet

je suis revenu au depart :
.js du zip (on parle bien 'monswf' dans le .js, c'est normal ??

sur ma page avec le fichier swf j'ai ça comme code :
// Creation d'un nouvel objet flash
var flash = new flashID('anim'); // anim = l'identifiant (id) de l'animation

<a href="javascript:flash.zoom(40);">Zoom</a>

et j'ai toujours cette erreur au click ??
'monswf' a la valeur null ou n'est pas un objet et le zoom ne marche pas !


j'ai remis les pages en ligne...
http://nicolastephane.free.fr/test/

help ! AAAAAAAAAA !!
merci





signaler à un administrateur
Commentaire de afad le 26/11/2004 18:33:50

Salut, quand je dis :

Pour dialoguer avec le swf, il faudra l'identifier dans la page HTML par son id (identifiant) :
<object id="anim" name ="anim" >
<embed name="anim" swLiveConnect="true" id="anim">
</embed>
</object>

Il ne faut pas betement ajouter ces lignes dans le code HTML mais modifier celui de ton swf en ajoutant id="anim", name="anim" et  swLiveConnect="true" au bon endroit....
Corrige ton code....  

MErci  Tom pour ta patience ;)

A+
aFaD

signaler à un administrateur
Commentaire de afad le 26/11/2004 19:07:44

Autre remarque qui semble logique mais qui est bien de rappeler :

Il faut d'abord declarer ton swf (avec son id) et seulement ensuite créer ton objet (var flash = new flashID('anim');). Sinon, cette dernière ne peut pas interpreter un id qui n'existe pas encore.....

A+
aFaD

signaler à un administrateur
Commentaire de yuped le 29/11/2004 18:39:59

merci pour votre patience à tous !
en fait tout etait bon,
mais ce code : <script type="text/javascript">
var flash = new flashID('anim'); // anim = l'identifiant (id) de l'animation
</script
n'etait pas au bon endroit...
ça fonctionne maintenant : http://nicolastephane.free.fr/test/test.html

y a t il un moyen de faire un zoom -

merci

signaler à un administrateur
Commentaire de pedrolopez le 10/01/2005 00:20:12

Salut à tous,
j'aimerais modifier une variable myvar qui est à la racine  dans le LEVEL1 de mon movie,
j'ai essayé
<a href="javascript:flash.SetVariable('_level1.myvar','Y');">GO !!!</a>

mais cela ne semble pas fonctionner (tout le reste fonctionne nickel :)

signaler à un administrateur
Commentaire de panichak le 24/08/2005 21:02:36

Magnifique, Extraordinaire si souper !!!!

Mais ca sert a rien, si ca marche pas avec MAC.

Enfin perso, je cherche des moyens d'arriver a mes fin pour l'elaboration de mon projet et je suis dégouté car je ne pourrai pas utilisé cette technique.

Enfin bien joué quand meme. je vais mettre 10 parce que c pas ta faute.

signaler à un administrateur
Commentaire de sonicman le 17/02/2006 12:17:00

Incroyable, j'offre un bounty à celui qui explique ce bug :
Sous OPERA 8.0, la fonction setvariable fonctionne. Maintenant j'ajoute un lien vers une feuille ce style dans ma page, et là, ça ne marche plus !!!

J'AI CHERCHE 4H LE POURQUOI DU COMMENT... PAS TROUVE !!!!!!!!

signaler à un administrateur
Commentaire de matcool le 20/02/2006 11:35:18

Ca marche pas de mon coté. j'utilise la fonction setVariable.d'ailleurs n'y at'il pas un probleme de majuscule, minuscule... dans le ficier javascript?

signaler à un administrateur
Commentaire de tazou34 le 06/06/2006 01:32:36

Bonjour tout le monde,

tout d'abord ce code est vraiment très utile avce une syntaxe proche de celle de flash c'est super, le seul Hic c'est que je n'arrive pas à le faire fonctionner sous firefox 1.5.0.4 il me ressort toujours une erreur du type "is not a function" pour toutes les fonctions du .js par exemple le SetVariable auriez-vous une solution ?

signaler à un administrateur
Commentaire de logarcon le 03/11/2006 13:51:29

C'est trop trop bien comme truc ! Félicitations ! Et me... à ceux qui sont pas content parce que c'est pas compatible avec certain navigateur. C'est déjà bien d'avoir ça ! Génial.

signaler à un administrateur
Commentaire de nicoxxx le 18/12/2006 14:48:03

Hello,

Je viens de tomber sur ce code et c'est vrai que c'est vraiment tres utile...malheureusement ne fonctionne pas sur Mozilla 1.5.0.8...rien ne se passe quand je clic sur un lien tel que javascript:flash.gotoAndStop(29), par exemple
c vraiment dommage !!! Afad aurait-il trouvé une solution ??? ou quelqu'un d'autre ??? Tazou34 ???

MERCI...A++

signaler à un administrateur
Commentaire de tazou34 le 19/12/2006 22:08:44

Désolé NICOXXX je n'ai pas trouvé de solutions pour le faire fonctionner avec firefox

signaler à un administrateur
Commentaire de nicoxxx le 20/12/2006 08:44:48

peut-etre une piste avec des FSCommand non ????

signaler à un administrateur
Commentaire de afad le 20/12/2006 15:10:19

Salut à tous,

la solution pour que cela fonctionne sur firefox est d'utiliser la méthode Satay pour déclarer le flash. Exemple :

<object type="application/x-shockwave-flash" data="anim.swf" width="400" height="400" id="anim">
<param name="movie" value="anim.swf" />
</object>

Assurez vous que votre id corresponde bien avec l'objet flashID;

Bonne utilisation
A+
aFaD

signaler à un administrateur
Commentaire de tazou34 le 20/12/2006 21:30:33

Merci AFAD

je testerai ça à l'occas

signaler à un administrateur
Commentaire de nicoxxx le 20/12/2006 21:44:43

Merciiiiiiiiiiiiiiiiiiiiii AFAD !!!....ça marche, je confirme bien...m ckoi au juste "la méthode Satay" ???

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,983 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.