begin process at 2010 02 10 05:26:01
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > CLASS JAVASCRIPT [DIALOGUE AVEC FLASH]

CLASS JAVASCRIPT [DIALOGUE AVEC FLASH]


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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é :15 449 / 1 545

Auteur : afad

Ecrire un message privé
Site perso
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('_r oot.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

Les Membres Club peuvent 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.

 Sources du même auteur

[FAME] CODER EN AS2 SANS L'ÉDITEUR FLASH (R)
Source avec Zip EVALUER LA VITESSE DE CONNECTION INTERNET (FLASH MX)
Source avec Zip SPECTRUM 3D INSPIRÉ DE LA SOURCE DE BLACKWIZZARD
Source avec Zip INTERPOLATIONS DE MVT TYPE PENNER POUR LES NULS
Source avec Zip COMPOSANT MX : PRELOADER AUTONOME DE SWF PAR LOADMOVIE (UPDA...

 Sources de la même categorie

Source avec Zip Source avec une capture MULTI-DEBRID par remy2501
Source avec Zip Source avec une capture MODE CONSOLE DE LINUX par tipharris
Source avec Zip Source avec une capture SAT13 - FPSCONVERTORV2.1 (AS2) - CALCULATEUR BALISTIQUE ET T... par LapinouFouSAT13
Source avec Zip Source avec une capture BREVET - POINT - MENTION par kekoune
Source avec Zip Source avec une capture MENU INTERACTIF SIMPLE par Aeos

Commentaires et avis

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...

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

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...

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...

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

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

waow... terrible!
9/10!

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

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...).

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.

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é !  = )

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

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...

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

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...

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 !

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...

Commentaire de top30 le 05/07/2004 20:13:03

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

= )

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

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...

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

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

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!

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 !!

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' ;)

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





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

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

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

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 :)

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.

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 !!!!!!!!

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?

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 ?

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.

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++

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

Commentaire de nicoxxx le 20/12/2006 08:44:48

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

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

Commentaire de tazou34 le 20/12/2006 21:30:33

Merci AFAD

je testerai ça à l'occas

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

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales