OVH Cloud OVH Cloud

[FLASH MX 2004] - loadVariables texte1, texte2, texte3...

7 réponses
Avatar
dan
bonjour,

j'ai un swf dans lequel je fais un "loadVariables" pour afficher le titre de
l'article d'une page ASP.
si je devais récupérer les variables directement d'un fichier ASP, pas de
problème, je passerai mon paramètre ID, je l'ai déjà fait. mais compte tenu
de l'incompatibilité de ASP-UTF-8 (caractères accentués) je dois passer par
un fichier texte.

je crée en ASP par le FSO un fichier texte unicode (ouf!) avec mes variables
récupérées à partir d'un recordset et je le sauvegarde en "truc1.txt" si mon
paramètre ID=1, "truc2.txt" si mon paramètre ID=2, etc.

pour "mapage.asp?ID=1" je charge le premier fichier texte "truc1.txt" par
"_root.loadVariables("truc.txt");"
jusque là, tout va bien !
dans "mapage.asp?ID=2" j'aimerais charger le "truc2.txt" et ainsi de
suite...
comment je pourrais changer le nom du fichier texte contenant mes variables
en fonction de la page demandée?.

merci d'avance pour toute suggestion,
dan

7 réponses

Avatar
Krystyan
pourquoi ne pas implémenter une variable entre "truc" et ".txt" ?
ainsi quand tu récupere ton ID=2 il suffit dans le swf, de charger un
fichier :
NomFichier="truc";
Increment=ID; // Cette ligne est la pour l'explication mais tu pourras
insérer directement la var ID dans la var NomComplet
Format=".txt";
NomComplet=NomFichier+Increment+Format
_root.loadVariables(NomComplet);"

le code n'est p-e pas bon (je suis à cheval sur python/perl en ce moment et
j'ai pas encore rebrancher l'AS :) )
mais le raisonnement doit l'être.


Krystyan
Avant de poser une question, lire (et comprendre) ceci :
http://faqmm.free.fr

"dan" a écrit dans le message de
news:citu02$h1m$
bonjour,

j'ai un swf dans lequel je fais un "loadVariables" pour afficher le titre


de
l'article d'une page ASP.
si je devais récupérer les variables directement d'un fichier ASP, pas de
problème, je passerai mon paramètre ID, je l'ai déjà fait. mais compte


tenu
de l'incompatibilité de ASP-UTF-8 (caractères accentués) je dois passer


par
un fichier texte.

je crée en ASP par le FSO un fichier texte unicode (ouf!) avec mes


variables
récupérées à partir d'un recordset et je le sauvegarde en "truc1.txt" si


mon
paramètre ID=1, "truc2.txt" si mon paramètre ID=2, etc.

pour "mapage.asp?ID=1" je charge le premier fichier texte "truc1.txt" par
"_root.loadVariables("truc.txt");"
jusque là, tout va bien !
dans "mapage.asp?ID=2" j'aimerais charger le "truc2.txt" et ainsi de
suite...
comment je pourrais changer le nom du fichier texte contenant mes


variables
en fonction de la page demandée?.

merci d'avance pour toute suggestion,
dan




Avatar
zwetan
salut,


j'ai un swf dans lequel je fais un "loadVariables" pour afficher le titre


de
l'article d'une page ASP.
si je devais récupérer les variables directement d'un fichier ASP, pas de
problème, je passerai mon paramètre ID, je l'ai déjà fait. mais compte


tenu
de l'incompatibilité de ASP-UTF-8 (caractères accentués) je dois passer


par
un fichier texte.



de quelle incompatibilité tu parles ??? perso j'en vois pas, il suffit de
définir
le bon encoding dans la page cf la doc ASP



je crée en ASP par le FSO un fichier texte unicode (ouf!) avec mes


variables
récupérées à partir d'un recordset et je le sauvegarde en "truc1.txt" si


mon
paramètre ID=1, "truc2.txt" si mon paramètre ID=2, etc.



attention FSO crée de l'unicode pas de l'UTF8, les 2 formats sont
différents,
avec flash il faut mieux lui fournir de l'UTF8.

pour "mapage.asp?ID=1" je charge le premier fichier texte "truc1.txt" par
"_root.loadVariables("truc.txt");"
jusque là, tout va bien !
dans "mapage.asp?ID=2" j'aimerais charger le "truc2.txt" et ainsi de
suite...
comment je pourrais changer le nom du fichier texte contenant mes


variables
en fonction de la page demandée?.




chercher les archives du NG

http://groups.google.fr/groups?selm©g7se%24h0p%241%40forums.macromedia.com&oe=UTF-8&output=gplain


ou lire sa doc ASP, que l'on peut trouver soit en ligne sur MSDN
soit dans le MS platform SDK

zwetan
Avatar
dan
merci pour la réponse,
oui, c'est exactement ce que j'ai utilisé dans la création de mon fichier
texte coté ASP:
...
set
fname=fs.CreateTextFile((Server.MapPath("includestruc"&JournalNo&".txt")),
true,true)
...
mais le problème est que je ne maitrise pas assez AS pour pouvoir m'en
sortir. :-(
ce que je ne sais pas faire, est précisément la façon dont je peux faire
communiquer à flash et implémenter mon paramètre.

merci en tout cas.
dan

"Krystyan" a écrit dans le message de news:
citvof$j40$
pourquoi ne pas implémenter une variable entre "truc" et ".txt" ?
ainsi quand tu récupere ton ID=2 il suffit dans le swf, de charger un
fichier :
NomFichier="truc";
Increment=ID; // Cette ligne est la pour l'explication mais tu pourras
insérer directement la var ID dans la var NomComplet
Format=".txt";
NomComplet=NomFichier+Increment+Format
_root.loadVariables(NomComplet);"

le code n'est p-e pas bon (je suis à cheval sur python/perl en ce moment


et
j'ai pas encore rebrancher l'AS :) )
mais le raisonnement doit l'être.


Krystyan
Avant de poser une question, lire (et comprendre) ceci :
http://faqmm.free.fr

"dan" a écrit dans le message de
news:citu02$h1m$
> bonjour,
>
> j'ai un swf dans lequel je fais un "loadVariables" pour afficher le


titre
de
> l'article d'une page ASP.
> si je devais récupérer les variables directement d'un fichier ASP, pas


de
> problème, je passerai mon paramètre ID, je l'ai déjà fait. mais compte
tenu
> de l'incompatibilité de ASP-UTF-8 (caractères accentués) je dois passer
par
> un fichier texte.
>
> je crée en ASP par le FSO un fichier texte unicode (ouf!) avec mes
variables
> récupérées à partir d'un recordset et je le sauvegarde en "truc1.txt" si
mon
> paramètre ID=1, "truc2.txt" si mon paramètre ID=2, etc.
>
> pour "mapage.asp?ID=1" je charge le premier fichier texte "truc1.txt"


par
> "_root.loadVariables("truc.txt");"
> jusque là, tout va bien !
> dans "mapage.asp?ID=2" j'aimerais charger le "truc2.txt" et ainsi de
> suite...
> comment je pourrais changer le nom du fichier texte contenant mes
variables
> en fonction de la page demandée?.
>
> merci d'avance pour toute suggestion,
> dan
>
>




Avatar
Krystyan
sinon si tu "peche" en as : crée ton nom de fichier dans ton fichier asp et
tu envoi ce nom en variable
mapage.asp?ID=2&Files=truc2.txt
dans ton flash tu recuperes la variable Files que tu insére comme ceci
"_root.loadVariables(Files);"


je ne suis toujours pas certain du code mais plus du raisonnement.
--
Krystyan
Avant de poser une question, lire (et comprendre) ceci :
http://faqmm.free.fr

"dan" a écrit dans le message de
news:ciu2am$n78$
merci pour la réponse,
oui, c'est exactement ce que j'ai utilisé dans la création de mon fichier
texte coté ASP:
...
set



fname=fs.CreateTextFile((Server.MapPath("includestruc"&JournalNo&".txt")),
true,true)
...
mais le problème est que je ne maitrise pas assez AS pour pouvoir m'en
sortir. :-(
ce que je ne sais pas faire, est précisément la façon dont je peux faire
communiquer à flash et implémenter mon paramètre.

merci en tout cas.
dan

"Krystyan" a écrit dans le message de


news:
citvof$j40$
> pourquoi ne pas implémenter une variable entre "truc" et ".txt" ?
> ainsi quand tu récupere ton ID=2 il suffit dans le swf, de charger un
> fichier :
> NomFichier="truc";
> Increment=ID; // Cette ligne est la pour l'explication mais tu pourras
> insérer directement la var ID dans la var NomComplet
> Format=".txt";
> NomComplet=NomFichier+Increment+Format
> _root.loadVariables(NomComplet);"
>
> le code n'est p-e pas bon (je suis à cheval sur python/perl en ce moment
et
> j'ai pas encore rebrancher l'AS :) )
> mais le raisonnement doit l'être.
>
>
> Krystyan
> Avant de poser une question, lire (et comprendre) ceci :
> http://faqmm.free.fr
>
> "dan" a écrit dans le message de
> news:citu02$h1m$
> > bonjour,
> >
> > j'ai un swf dans lequel je fais un "loadVariables" pour afficher le
titre
> de
> > l'article d'une page ASP.
> > si je devais récupérer les variables directement d'un fichier ASP, pas
de
> > problème, je passerai mon paramètre ID, je l'ai déjà fait. mais compte
> tenu
> > de l'incompatibilité de ASP-UTF-8 (caractères accentués) je dois


passer
> par
> > un fichier texte.
> >
> > je crée en ASP par le FSO un fichier texte unicode (ouf!) avec mes
> variables
> > récupérées à partir d'un recordset et je le sauvegarde en "truc1.txt"


si
> mon
> > paramètre ID=1, "truc2.txt" si mon paramètre ID=2, etc.
> >
> > pour "mapage.asp?ID=1" je charge le premier fichier texte "truc1.txt"
par
> > "_root.loadVariables("truc.txt");"
> > jusque là, tout va bien !
> > dans "mapage.asp?ID=2" j'aimerais charger le "truc2.txt" et ainsi de
> > suite...
> > comment je pourrais changer le nom du fichier texte contenant mes
> variables
> > en fonction de la page demandée?.
> >
> > merci d'avance pour toute suggestion,
> > dan
> >
> >
>
>




Avatar
dan
salut zwetan,

j'ai regardé l'archive du NG et j'ai déjà testé cette
méthode.malheureusement, cela n'a rien donné.
quant au passage du fichier texte écrit en unicode par le biais du FSO (tu
as bien raison, c'est unicode et non UTF-8) il passe très bien sous flash.
les accents s'affichent sans problème.
je ne sais plus quoi penser, j'ai une tête comme une pastèque. j'ai passé
six heures à chercher sur le net mais sans aucun résultat.
je n'aurais pas posté avant.

merci pour ta réponse.
dan

j'ai passé six heures à trouver
"zwetan" a écrit dans le message de news:
ciu16k$m77$
salut,

>
> j'ai un swf dans lequel je fais un "loadVariables" pour afficher le


titre
de
> l'article d'une page ASP.
> si je devais récupérer les variables directement d'un fichier ASP, pas


de
> problème, je passerai mon paramètre ID, je l'ai déjà fait. mais compte
tenu
> de l'incompatibilité de ASP-UTF-8 (caractères accentués) je dois passer
par
> un fichier texte.

de quelle incompatibilité tu parles ??? perso j'en vois pas, il suffit de
définir
le bon encoding dans la page cf la doc ASP


>
> je crée en ASP par le FSO un fichier texte unicode (ouf!) avec mes
variables
> récupérées à partir d'un recordset et je le sauvegarde en "truc1.txt" si
mon
> paramètre ID=1, "truc2.txt" si mon paramètre ID=2, etc.

attention FSO crée de l'unicode pas de l'UTF8, les 2 formats sont
différents,
avec flash il faut mieux lui fournir de l'UTF8.

> pour "mapage.asp?ID=1" je charge le premier fichier texte "truc1.txt"


par
> "_root.loadVariables("truc.txt");"
> jusque là, tout va bien !
> dans "mapage.asp?ID=2" j'aimerais charger le "truc2.txt" et ainsi de
> suite...
> comment je pourrais changer le nom du fichier texte contenant mes
variables
> en fonction de la page demandée?.
>

chercher les archives du NG




http://groups.google.fr/groups?selm©g7se%24h0p%241%40forums.macromedia.com&oe=UTF-8&output=gplain


ou lire sa doc ASP, que l'on peut trouver soit en ligne sur MSDN
soit dans le MS platform SDK

zwetan




Avatar
zwetan
>
j'ai regardé l'archive du NG et j'ai déjà testé cette
méthode.malheureusement, cela n'a rien donné.
quant au passage du fichier texte écrit en unicode par le biais du FSO (tu
as bien raison, c'est unicode et non UTF-8) il passe très bien sous flash.
les accents s'affichent sans problème.
je ne sais plus quoi penser, j'ai une tête comme une pastèque. j'ai passé
six heures à chercher sur le net mais sans aucun résultat.
je n'aurais pas posté avant.




le truc est de bien différencier le fichier txt que tu veux charger, cad son
contenu,
de la manière dont tu le charges (LoadVar, etc..)

prenons ca par exemple:
(vieux post de flashcodeurs du 03/10/2002 [FLAMX] TXTparser)

_global.TXTparser = function(fileName)
{
this.reset();
if(fileName != null)
{
this.fileName = fileName;
this.load(fileName);
}
}

TXTparser.prototype.load = LoadVars.prototype.load;
TXTparser.prototype.getBytesLoaded = LoadVars.prototype.getBytesLoaded;
TXTparser.prototype.getBytesTotal = LoadVars.prototype.getBytesTotal;

TXTparser.prototype.reset = function()
{
this.loaded = false;
this.status = "inactive";
this.data = [];
this.fileName = "";
}

TXTparser.prototype.onLoad = function() {};

TXTparser.prototype.onData = function(txt)
{
this.status = "active";
if(txt == null)
{
this.onLoad(false);
this.status = "error";
trace("le fichier n'existe pas");
}
else
{
this.parser(txt);
this.loaded = true;
this.onLoad(true);
}
}

TXTparser.prototype.parser = function(txt)
{
this.data = txt.split("rn");
this.status = "ready";
}

TXTparser.prototype.toString = function()
{
return this.data.join("n");
}

TXTparser.prototype.toArray = function()
{
return this.data;
}



sur cette base tu peux faire

monFichier = new TXTparser();
monFichier.load( "getFile.asp?name=truc1.txt" ); //p-e besoin de faire un
URLencode en plus

le getFile.asp en pseudo code:

- definit un codepage UTF-8
- recupere dans le querystring le nom du fichier "truc1.txt"
- charge ce fichier en memoire avec FSO
- est renvoie un document.write( le fichier )

mais comme la page ASP est encodée en UTF8,
ca fait comme si tu faisais un loadvar sur un fichier txt encodé en UTF8
cad
monFichier.load( "truc1.txt" );

le truc c'est que meme si FSO ne gere que l'unicode ou l'ansi,
et bah la directive de codepage de la page ASP forcera et fera
automatiquement la conversion en UTF8

mais bon ....
reprenons ce que je pense avoir compris que tu essaye de faire (en relisant
mieux ton post original)

j'ai un swf dans lequel je fais un "loadVariables" pour afficher le titre


de
l'article d'une page ASP.



j'en conclue que tu veux synchroniser une page avec un SWF qui affiche le
titre,
et donc la navigation se passe de page en page ASP, et que le SWF est
a chaque fois recharger a chaque page

pourquoi dans ce cas ne pas simplement passer le titre de la page dans le
param du plugin flash ?
c-a-d utiliser le flashvars pour passer ces paramettres
http://www.macromedia.com/support/flash/ts/documents/flashvars.htm
comme ton ASP genere la page, il peut aussi ecrire ce que contient le param
flashvars
note: si tu veux aussi supporter UTF8 attention de definir le bon encoding
et dans l'ASP
ET dans les tags HTML
http://www.w3.org/International/O-charset
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >


si ca se trouve tu n'as meme pas besoin de creer de fichier texte,
enfin bon si ca resoud pas ton probleme explique mieux ce que tu veux faire
dans le details,
la c'est un peu flou ...on sait pas si tu es en navigation page a page
"classic" ou si tu geres tout
dans un seul SWF etc...

zwetan
Avatar
dan
merci zwetan pour l'attention portée à mon post,
je pense avoir résolu mon "problème", je suis parti sur la piste de Krystyan
(que je remercie à nouveau en passant):

NomFichier="satiritruc";
Increment=journalNo;
Format=".txt";
NomComplet=NomFichier+Increment+Format;
_root.loadVariables(NomComplet);


cela a l'air de fonctionner.
pour plus d'explications sur ma démarche, il s'agit d'un journal satirique,
j'utilise une série de plusieurs anim flash afin d'afficher d'une manière
plus attractive et dynamique les entêtes des articles et les titres. je
récupère les variables d'une base de données et j'affiche la page.
l'utilisation d'un fichier ASP,(malgré mes recherches et mes essais, je n'ai
pas réussi à forcer l'affichage en UTF-8, que cela soit par les metas ou la
Session.Codepage...) pose des problèmes quant aux accents. c'est pourquoi je
crée (après l'insertion des enregistrements dans la base de données) un
fichier texte contenant les variables laUne, titreArticle1, titreArticle2,
titreArticle3,titreArticle4 et titreArticle5. je les sauvegarde à l'aide de
FSO en UNICODE et je n'ai plus qu'a récupérer ces variables pour affichage
des pages en passant en paramètre le numéro du journal.
peut-être bien que j'ai pris un chemin compliqué mais en "enfonçant" dans le
développement du site, je n'ai pas fait gaffe au reste.
le code que tu m'as passé (je dois reconnaître que le AS n'est pas ma tasse
de thé) me paraît...euh...compliqué, j'ai le cerveau ramolli depuis cette
histoire. mais je vais essayer voir si je peux en tirer quelque chose plus
tard.

si quelqu'un est intéressé par le code asp-vb pour l'écriture du fichier
UNICODE, le voici:

<%
'vous récupérez d'abord grâce au recordset les valeurs qui vous intéressent
de votre BD.
'sTitre=(rsJournal.Fields.Item("t1Une").Value)
'satiritruc1=(rsJournal.Fields.Item("t1truc").Value)
'satiritruc2=(rsJournal.Fields.Item("t2truc").Value)
'satiritruc3=(rsJournal.Fields.Item("t3truc").Value)
'satiritruc4=(rsJournal.Fields.Item("t4truc").Value)
'satiritruc5=(rsJournal.Fields.Item("t5truc").Value)

'Variables Flash
Dim MonTexte
MonTexte="&Titre="&sTitre&"&Art1="&satiritruc1&"&Art2="&satiritruc2 'etc
Dim fs,fname
set fs=Server.CreateObject("Scripting.FileSystemObject")
'premier TRUE pour overwrite, deuxième pour écriture en UNICODE
set
fname=fs.CreateTextFile((Server.MapPath("includessatiritruc"&JournalNo&".t
xt")),true,true)
fname.WriteLine(MonTexte)
fname.Close
set fname=nothing
set fs=nothing
%>

peut-être que cela peut aider quelqu'un
dan


"zwetan" a écrit dans le message de news:
ciuccj$478$
>
> j'ai regardé l'archive du NG et j'ai déjà testé cette
> méthode.malheureusement, cela n'a rien donné.
> quant au passage du fichier texte écrit en unicode par le biais du FSO


(tu
> as bien raison, c'est unicode et non UTF-8) il passe très bien sous


flash.
> les accents s'affichent sans problème.
> je ne sais plus quoi penser, j'ai une tête comme une pastèque. j'ai


passé
> six heures à chercher sur le net mais sans aucun résultat.
> je n'aurais pas posté avant.
>

le truc est de bien différencier le fichier txt que tu veux charger, cad


son
contenu,
de la manière dont tu le charges (LoadVar, etc..)

prenons ca par exemple:
(vieux post de flashcodeurs du 03/10/2002 [FLAMX] TXTparser)

_global.TXTparser = function(fileName)
{
this.reset();
if(fileName != null)
{
this.fileName = fileName;
this.load(fileName);
}
}

TXTparser.prototype.load = LoadVars.prototype.load;
TXTparser.prototype.getBytesLoaded = LoadVars.prototype.getBytesLoaded;
TXTparser.prototype.getBytesTotal = LoadVars.prototype.getBytesTotal;

TXTparser.prototype.reset = function()
{
this.loaded = false;
this.status = "inactive";
this.data = [];
this.fileName = "";
}

TXTparser.prototype.onLoad = function() {};

TXTparser.prototype.onData = function(txt)
{
this.status = "active";
if(txt == null)
{
this.onLoad(false);
this.status = "error";
trace("le fichier n'existe pas");
}
else
{
this.parser(txt);
this.loaded = true;
this.onLoad(true);
}
}

TXTparser.prototype.parser = function(txt)
{
this.data = txt.split("rn");
this.status = "ready";
}

TXTparser.prototype.toString = function()
{
return this.data.join("n");
}

TXTparser.prototype.toArray = function()
{
return this.data;
}



sur cette base tu peux faire

monFichier = new TXTparser();
monFichier.load( "getFile.asp?name=truc1.txt" ); //p-e besoin de faire un
URLencode en plus

le getFile.asp en pseudo code:

- definit un codepage UTF-8
- recupere dans le querystring le nom du fichier "truc1.txt"
- charge ce fichier en memoire avec FSO
- est renvoie un document.write( le fichier )

mais comme la page ASP est encodée en UTF8,
ca fait comme si tu faisais un loadvar sur un fichier txt encodé en UTF8
cad
monFichier.load( "truc1.txt" );

le truc c'est que meme si FSO ne gere que l'unicode ou l'ansi,
et bah la directive de codepage de la page ASP forcera et fera
automatiquement la conversion en UTF8

mais bon ....
reprenons ce que je pense avoir compris que tu essaye de faire (en


relisant
mieux ton post original)

> j'ai un swf dans lequel je fais un "loadVariables" pour afficher le


titre
de
> l'article d'une page ASP.

j'en conclue que tu veux synchroniser une page avec un SWF qui affiche le
titre,
et donc la navigation se passe de page en page ASP, et que le SWF est
a chaque fois recharger a chaque page

pourquoi dans ce cas ne pas simplement passer le titre de la page dans le
param du plugin flash ?
c-a-d utiliser le flashvars pour passer ces paramettres
http://www.macromedia.com/support/flash/ts/documents/flashvars.htm
comme ton ASP genere la page, il peut aussi ecrire ce que contient le para


m
flashvars
note: si tu veux aussi supporter UTF8 attention de definir le bon encoding
et dans l'ASP
ET dans les tags HTML
http://www.w3.org/International/O-charset
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >


si ca se trouve tu n'as meme pas besoin de creer de fichier texte,
enfin bon si ca resoud pas ton probleme explique mieux ce que tu veux


faire
dans le details,
la c'est un peu flou ...on sait pas si tu es en navigation page a page
"classic" ou si tu geres tout
dans un seul SWF etc...

zwetan