Forum de discussion
Forum « Flash et Shockwave » (archives)
Re: Passage de paramètre HTTP et for in _root
Envoyé: 5 janvier 2004, 6h58 par Oznog
Il suffit de passer par l'en-tête HTTP supporté par Flash. Voir la méthode GET URL et UrlEncoded
L'important est que les noms de variables utilisées correspondent avec une instance ou une variable dans le Flash.
Par exemple, le HTML suivant
<object...
<param name="SRC" value="flash.swf?id=x"><embed src="flash.swf?id=x"...
Où la variable "id" passe la valeur "x".
Et l'ActionScript, sur le premier cadre (frame).
trace(_root.id);
Devrait afficher "x". (le "trace" ne fonctionne pas dans une page Web alors pour faire ce test tu dois utiliser le doboggeur).
Tu peux aussi tout simplement mettre sur la scène principale le champ texte avec le nom de variable "id" qui prendra la valeur de la variable "id" passée par la requête HTTP.
N'oublie pas que c'est une chaine de caractères que tu devra convertir en nombre (number(x); ou parseInt(x);) pour tout test numérique.
Tu peux gérer tes propres séparateurs! Un procédé souvent utilisé pour passer un tableau (array) par exemple.
flash.swf?id=x1|x2|x3|x4|x5
_root.x aura la valeur "x1|x2|x3|x4|x5"
Il suffit de "plitter le tout" sur le séparateur "|" :
monTableau = _root.x.split("|");
trace(monTableau[2]);
' Résultat
x3
En terminant, un petit truc pour retrouver des variables passées en paramètre HTTP est de boucler toutes les variables de la racine (_root).
Tu a besoin d'une seule variable sur la scène (nom de variable "sHttp") pour afficher la "preuve". Et le code suivant sur le premier cadre (frame). Il boucle et affiche toutes les variables, instances du _root.
' Pour la requète suivante
' http.swf?x=111&y=222&w=333&z=444
for(maVar in _root){
_root.sHttp += " > " + maVar + "=";
_root.sHttp += _root[maVar];
}
maVar = le nom du "paramètre"
_root[maVar] = la valeur du paramètre.
' Résultat
> z=444 > w=333 > y=222 > x=111 > $version=WIN 6,0,79,0 > instance1=_level0.instance1
Note la présence de la variable par défaut "$version" qui est le système d'exploitation et la version de Flash installée.
Et la variable "instance1" qui est le texte sur la scène, d'ailleurs donne lui un nom d'instance et tu le verra remplacer "instance1".
Ça fait pas mal le tour.
Ciao
Oznog
Réponses
|