Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS1/AS2
AS1/AS2 Questions relatives à la programmation ActionScript 1 et 2 (Cours AS2)
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 04/12/2007, 11h55   #1
Invité de passage
 
Inscription : mars 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 11
Points : 2
Points : 2
Par défaut javascript vers flash, utiliser la valeur du champ texte dynamique

Bonjour tout le monde,

j'essaie de faire une page html qui communique avec mon animation flash, j'arrive à mettre la valeur javascript dans l'animation sous forme de champ de texte dynamiquen mettant le code ci dessous dans HTML

Code :
1
2
3
4
 
function appel() {
window.document.myFlash.SetVariable("toto", "1");
}
et mon champ de texte dynamique avec la variable 'toto' affiche 1

jusque la tout va bien

mais après si je veux utiliser cette variable toto dans l'animation et ben ça marche pas

j'ai essayé :

Code :
1
2
3
4
5
6
7
8
 
if(toto == 1) { trace('ok') } // marche pas
 
var myVarFlash=Number(_root[toto]);
if(myVarFlash== 1) { trace('ok') } // marche pas non plus
 
 
if(monChamp.text == "1") { trace('ok') } // monChamp est le nom de l'occurence de variable toto mais ca  marche pas non plus
je tourne en rond depuis 2 jours et je trouve pas la solution,
avez-vous des idées pour résoudre ce casse-tête?

merci
darkturkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 13h59   #2
Membre habitué
 
Inscription : novembre 2004
Messages : 197
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 197
Points : 120
Points : 120
Salut,
Ta variable toto est un string donc il faudrait peut être que tu mettes des guillemets ou des quotes pour tes tests:
Code :
1
2
3
4
 
 if (toto == '1')
au lieu de
 if (toto == 1)
ViveLesQuads est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 14h18   #3
Invité de passage
 
Inscription : mars 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 11
Points : 2
Points : 2
bonjour,

merci pour ta réponse, j'ai essayé avec et sans guillemets et avec des quotes aussi mais rien ne marche
darkturkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 17h21   #4
Rédacteur/Modérateur
 
Avatar de beekeep
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 1 606
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 1 606
Points : 2 233
Points : 2 233
et le il donne quoi ?
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 18h08   #5
Invité de passage
 
Inscription : mars 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 11
Points : 2
Points : 2
Bonjour,

trace(_root[toto]);

donne undefined

mais c'est normal puisque la valeur toto prend la valeur 1 que quand on arrive sur la page et quand on y est on voit le chiffre 1

ca m'a donné une idée et j'ai mis à la première ligne

et j'ai mis un autre champs de texte sur la scène l'occurrence : txt2
avec
Code :
1
2
 
txt2.text=_root[toto];  // j'ai essayé _root['toto'], _root.toto,_root["toto"] ;)
sur la page :

txt1 affiche 1 (valeur de toto)
txt2 affiche 0 ?????

enfaite, savez-vous comment on peut voir trace() sur une page internet ?

merci pour vos reponses
darkturkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 19h15   #6
Rédacteur/Modérateur
 
Avatar de beekeep
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 1 606
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 1 606
Points : 2 233
Points : 2 233
Citation:
savez-vous comment on peut voir trace() sur une page internet ?
on ne peut pas à proprement dit,

mais ça revient à placer un textField dans ton anim puis à faire :
Code :
monChamps.text = maVariable.toString();
sinon pour ton problème en fait c'est plus très clair,

qu'est ce que t'arrive pas à faire exactement ?
poste ton code entier ça sera mieux

+
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2007, 10h32   #7
Invité de passage
 
Inscription : mars 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 11
Points : 2
Points : 2
bonjour,

en effet je suis désolé c'est devenu n'importe quoi mon code

le voila :

cote HTML :

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
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>javascript to flash</title>
<script language="javascript" type="text/javascript">
<!--
function appel() {
window.document.myFlash.SetVariable("toto", "1");
}
 
-->
</script>
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
</head>
<body onload="appel();">
<script type="text/javascript">
AC_FL_RunContent( 'id','myFlash','codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','200','height','265','src','fla/siteV1-ssmenuV5','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','name','myFlash','swliveconnect','true','movie','fla/siteV1-ssmenuV5' ); //end AC code
</script><noscript><object id="myFlash" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="200" height="265">
<param name="movie" value="fla/siteV1-ssmenuV5.swf" />
            <param name="quality" value="high" />
            <embed src="fla/siteV1-ssmenuV5.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="200" height="265" name="myFlash" swLiveConnect="true"></embed>
          </object></noscript>
</body>
</html>
cote flash

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
 
stop();
var toto=0;
 
var myVarFlash=Number(_root.toto);
 
// myVar est l'occurrence de toto il affiche "1" sur l'écran
 
txt2.text=myVar.text;  // ->affiche 0
txt3.text=toto;           // -> affiche 0
txt4.text=myVarFlash;  // ->affiche 0
if(myVarFlash == "1")
   {
   txt5.text="test";      // -> affiche rien 
 
}
merci encore pour vos messages
darkturkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2007, 12h03   #8
Rédacteur/Modérateur
 
Avatar de beekeep
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 1 606
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 1 606
Points : 2 233
Points : 2 233
il faut que tu choisisse si ta variable est une chaine de caractere ou un nombre,

tu envoi une chaine ( "1" ), et tu la recupère dans une variable de type Number.

si tu veux garder un nombre :
Code :
1
2
3
4
 
var myVarNumber:Number = Number(_root.toto);
 
monChamps.text = myVarNumber.toString();
si tu veux tester la valeur, utilise "1" si ta variable est une chaine, 1 si c'est un nombre.

+
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2007, 13h03   #9
Invité de passage
 
Inscription : mars 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 11
Points : 2
Points : 2
salut,

t'as raison c'est ma faute milles excuses, j'ai pas mis toutes les combinaisons que j'ai essayé

j'ai essayé les

if(myVarFlash ==1),
if(myVarFlash =="1"),
if(myVarFlash =='1')

ou les

var myVarFlash:Number=Number(_root.toto);
var myVarFlash:Number=Number(_root[toto]);
var myVarFlash:Number=Number(_root['toto']);
var myVarFlash:Number=Number(_root["toto"]);

et aussi les versions avec String

idem dans javascript
appel("toto",1);
appel("toto",'1');
appel("toto","1");
appel('toto',1);


mais au bout de 3 jours de recherche je pense que dans Flash on peut pas utiliser une variable venant de javascript (avec SetVariable )

on peut l'afficher mais on peut pas utiliser sa valeur dans une fonction...

je pense investir dans flash 8 et essayer ExternalInterface

merci à tous pour vos reponses
darkturkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2007, 13h33   #10
Membre habitué
 
Inscription : novembre 2004
Messages : 197
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 197
Points : 120
Points : 120
Citation:
Envoyé par darkturkey Voir le message
mais au bout de 3 jours de recherche je pense que dans Flash on peut pas utiliser une variable venant de javascript (avec SetVariable )
on peut l'afficher mais on peut pas utiliser sa valeur dans une fonction...
Salut,
Mais si on peut, je le fais d'ailleur régulièrement. Tu devrais jeter un oeil sur la fonction watch.
__________________
Si vous avez votre réponse n'oubliez pas !
ViveLesQuads est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web