Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash
Flash Forum d'entraide sur la technologie Flash (Cours, FAQs, Sources)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/08/2007, 09h49   #1
Modérateur
 
Avatar de Dsphinx
 
Homme
Développeur Web
Inscription : septembre 2005
Messages : 1 032
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2005
Messages : 1 032
Points : 754
Points : 754
Par défaut Problème passage de variable de la page web à Flash

Re-bonjour,

J'ai une animation flash et j'ai appliqué les fichiers de corrections d'Adobe pour que sous IE on ne soit pas obligé de cliquer une première fois sur l'animation pour "activer le contenu de l'animation" ! et j'essaie de passer une variable de ma page web à Flash.

Voici le code :

Code :
1
2
3
4
5
6
7
<script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0','width','380','height','270','src','portable','quality','high','pluginspage','http://www.macromedia.com/go/getflashplayer','movie','portable' ); //end AC code
</script><noscript><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="380" height="270">
<param name="movie" value="portable.swf" />
<param name="quality" value="high" />
<embed src="portable.swf?res=1" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="380" height="270"></embed>
</object></noscript>
J'ai inclus mes fichiers entre les balises HEAD:

Code :
1
2
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
<script src="Scripts/AC_ActiveX.js" type="text/javascript"></script>
et voici le contenu du fichier AC_RunActiveContent.js:

Comment dois-je modifier mon code pour passer ma variable res ? au fichier AC_RunActiveContent.js ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}
 
function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';
 
  document.write(str);
}
 
function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
 
function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
 
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    
 
    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}
Merci !
__________________
Les cours: XHTML, CSS, PHP, Flash et Javascript
Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
Aucune question technique par MP.
Dsphinx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 10h03   #2
Inactif
 
Avatar de CR_Gio
 
Inscription : septembre 2005
Messages : 1 196
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 1 196
Points : 1 201
Points : 1 201
Bonjour a tous,

Tu pourrais plutot utiliser la balise param pour transmetre tes variable a flash.

jete un coup d'oeil sur cette exemple : http://www.developpez.net/forums/sho...95&postcount=4
CR_Gio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 10h09   #3
Modérateur
 
Avatar de Dsphinx
 
Homme
Développeur Web
Inscription : septembre 2005
Messages : 1 032
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2005
Messages : 1 032
Points : 754
Points : 754
Bien vu !! Mais ca ne résout pas mon problème...

Faudrait que je fasse ceci dans mon fichier JS:

Code :
1
2
3
4
5
6
7
8
function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf?res="<?php echo "1"; ?>, "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
Mais comme le fichier est un fichier JS ca ne fonctionne pas.. Comment faire donner la valeur 1 à res ! Cette valeur (1 ou 0) provient de PHP plus haut donc je peux pas la mettre en dur, faut qu'elle soit dynamique !!
__________________
Les cours: XHTML, CSS, PHP, Flash et Javascript
Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
Aucune question technique par MP.
Dsphinx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 10h28   #4
Inactif
 
Avatar de CR_Gio
 
Inscription : septembre 2005
Messages : 1 196
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 1 196
Points : 1 201
Points : 1 201
Citation:
Envoyé par Dsphinx
j'essaie de passer une variable de ma page web à Flash.
Je suis désolé, mais je reste buté sur mon idée que pour transmettre a flash une variable, il faut utiliser la balise <param>

L'utilité d'écrir src="portable.swf?res=1" au lieu de src="portable.swf" pour ta balise embed permet de forcé le rechargement de ton animation flash ( si res change )


en jettant rapidement un coup d'oeil au code, il suffit d'écire :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 <script type="text/javascript">
<?php
echo "AC_FL_RunContent(
'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0', 'width','380',
'height','270',
'src','portable',
'quality','high',
'pluginspage','http://www.macromedia.com/go/getflashplayer',
'movie','portable'

'FlashVars','res=1'

 ); //end AC code";
?>
</script>
Mais bon, si c'est vraiment src="portable.swf?res=1" que tu veux , je peu rien pour toi ...
CR_Gio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 11h28   #5
Modérateur
 
Avatar de Dsphinx
 
Homme
Développeur Web
Inscription : septembre 2005
Messages : 1 032
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2005
Messages : 1 032
Points : 754
Points : 754
Yeeeees ! Merci CR_Gio ! T'as raison le passage des variables avec FlashVars est bien plus facile et ca facilite bcp ma structure dans mon fichier JS !!

Désolé j'avais pas bien regardé au début (je suis tout à l'ouest) ! Encore merci !

__________________
Les cours: XHTML, CSS, PHP, Flash et Javascript
Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
Aucune question technique par MP.
Dsphinx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 14h39   #6
Rédacteur
 
Avatar de The_Pretender
 
Homme Matthieu DELOISON
Formateur ActionScript Flash
Inscription : juin 2004
Messages : 645
Détails du profil
Informations personnelles :
Nom : Homme Matthieu DELOISON
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Formateur ActionScript Flash
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juin 2004
Messages : 645
Points : 3 673
Points : 3 673
Bonjour,

Tu devrais jeter un coup d'oeil au script swfobject, il permet de détecter la version du flashplayer du client, compatible xhtml, permet de bypasser le click sous ie et peux transmettre des variables au swf (par flashvars).
__________________
Découvrez : Tutoriels, ressources AS2 et AS3
La Méthode AS3 Facile pour développer des applications et jeux Flash en ActionScript 3 : ActionScript-Facile.com
The_Pretender est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h18.


 
 
 
 
Partenaires

Hébergement Web