spg40
Messages postés10Date d'inscriptionmardi 2 août 2005StatutMembreDernière intervention 1 février 2006
-
31 août 2005 à 10:35
spg40
Messages postés10Date d'inscriptionmardi 2 août 2005StatutMembreDernière intervention 1 février 2006
-
1 sept. 2005 à 12:39
Bonjour,
je crée un moteur de recherche. Je fait ma recherche et je récupère les résultats à travers un fichier PHP. Je mets mes résultats dans des champs textes. Je voudrais cliquer sur le texte et ouvrir un swf dépendant de mon texte sur ma scène, ce swf est généré à partir l'id du texte et d'autres données liées au texte. Je ne veut pas passer par l'Url.
Comme un texte, même dynamique n'est pas clickable, je l'ai mis dans un movieClip : MC_num_id_d où num est le numéro de mon texte,
id est son id BD associé,
d la donnée associée.
je n'arrive pas à utiliser une fonction de type onRelease sur le MC_num_id_d. Je ne sais pas où la placer. J'ai essayé de le mettre dans la boucle de construction des MC_num_id_d. Lorsque je passe sur mon texte, je peut cliquer mais rien ne se produit : le num, l'id et d n'ont pas été associés au texte. Ils sont soit indéfinis, soit globaux(identiques pour tous, le dernier).
Il y 2 jours que je bute sur ce pb, si qq'un a une solution! C'a devient urgent.........
spg40
Messages postés10Date d'inscriptionmardi 2 août 2005StatutMembreDernière intervention 1 février 2006 1 sept. 2005 à 12:39
Bonjour _Benjy ,
ça y est, j'ai trouvé une solution, qui fonctionne dans un movieClip ou un scrollpanel. j'avais un pb de chemin jusqu'au nv clip créé et pour utiliser le onRelease (il fallait utiliser valueOf() ).
J'ai fait une fonction.
Si ça t'intéresse elle ressemble à ça :
function resultat_trace(chemin, MCTexte, id,d, texte, largeur_texte, hauteur_texte, posY, posX){
//on crée le MCTexte et onlui met les variables qu'on va utiliser dans le onRelease
chemin.createEmptyMovieClip(MCTexte, i_layer +=1 );
chemin[MCTexte].id = id;
chemin[MCTexte].d = d;
with (chemin[MCTexte].TXT_liste) {
// propriétés du texte
...
}
//on applique l'événement onRelease au MCTexte
chemin[MCTexte].valueOf().onRelease = function(){
trace("Vous venez de cliquer sur le texte.");
trace(this.id);
trace(this.d);
}
return posY, hauteur_texte;
}
On a MCTexte qui est définit dans mon traitement des données issues du php avec :
MCTexte = "MCTexte_"+id+"_"+d;
de manière à garder son unicité.
spg40
Messages postés10Date d'inscriptionmardi 2 août 2005StatutMembreDernière intervention 1 février 2006 31 août 2005 à 17:06
Merci _Benjy ,
mais en fait je ne fait pas de duplicateMovieClip. En effet, suivant le nombre de résultats à ma recherche, je les affiche soit dans un movieClip (MCListe) que je crée pour l'occasion, soit dans un scrollpane(déjà positionné sur ma scène).
Il faut donc que je crée les MovieClip au fur et à mesure ; d'où leur nom si long.
En fait, tu trouvera un exemple de ce que je veut faire sur : http://www.ville-saintdenis-reunion.fr/ , sélectionne le 'plan de la ville'. C'est toute la partie recherche. Mais résultats restant sur la partie gauche de ma scène, la partie centrale étant dynamique : elle varie dynamiquement en fonction du résultat sélectionné.
Je ne remonte pas les résultats depuis mon php dans un tableau multidimensionnel mais comme une suite de texte 'numéroté'.
<?php
//traitement : recherche des resultats en fonction des données transmises
...
//resultats transmis au flash
$nbr_enreg=0;
while ($row=mysql_fetch_object($requete)) {
...
echo "&".$nbr_enreg."=".$t."&".($nbr_enreg+=1)."=".$d."&".($nbr_enreg+=1)."=".$r."&".($nbr_enreg+=1)."=".$id."&".($nbr_enreg+=1)."=".$q;
$nbr_enreg+=1;
}
>
La solution d'un tableau serait-elle plus efficace?
Je cherche dans toutes les directions...
SPG40
Vous n’avez pas trouvé la réponse que vous recherchez ?
spg40
Messages postés10Date d'inscriptionmardi 2 août 2005StatutMembreDernière intervention 1 février 2006 31 août 2005 à 17:34
Je fait des createEmptyMovieClip. Par exemple, pour écrire dans ma MCListe (peu de résulktats pour ma recherche).
//Récupération des résultats
for (php_var in requete) {
...
//Ecriture dans la MCListe
if (nbr_enreg == 1) {
//On crée la MCListe à vide
_root.createEmptyMovieClip("MCListe", 1);
}
MCListe.createEmptyMovieClip(["MCTexte_"+num+"_"+id+"_"+d], i_layer +=1 );
var monclip=MCListe["MCTexte_"+num+"_"+id+"_"+d];
//calcul de la métrique pour récupérer la hauteur et la longueur d'un texte suivant les propriétés du TextFormat
metrique = _root.TXTformat_choix.getTextExtent(php_string, largeur_scrollpanel);
// position en Y du texte (on tient compte de la hauteur du texte précédent)
posY += height_last_text;
// mémorise la hauteur du dernier texte pour incrémentation en Y, et on ajoute la ligne blanche séparant les résultats.
height_last_text = metrique.textFieldHeight + 4;
// on utilise la metrique (la hauteur) pour créer le champ texte dans la MCListe
monclip.createTextField(("TXT"+num+"_"+id+"_"+d), i_layer , posX_nbr, posY, largeur_scrollpanel, metrique.textFieldHeight);
//on applique les propriétés suivantes au champ texte créé
with (monclip["TXT"+num+"_"+id+"_"+d]) {
list_choix_TXTformat(php_idvoie);
setNewTextFormat(_root.TXTformat_choix);
type = "dynamic";
background = true;
autoSize = "left";
text = php_string ;
html = true;
wordWrap = true;
backgroundColor = bgcolor;
//on force la largeur du champ texte
_width = largeur_scrollpanel;
selectable=true;
}
php_text = id+ " / " + d
monclip.onPress=function()
{
trace(monclip._name);
//startDrag(monclip);
monclip._visible = false;
}
monclip.onRelease = function(){
trace("Vous venez de cliquer sur le texte.");
trace(num);
trace(php_idvoie);
trace(php_rgraph);
trace(monclip._name);
//stopDrag();
monclip._visible = true;
map_generation(x,y,0,0,id, r);
}
num +=1;
monclip="";
} ...
nbr_enreg+=1;
...
}
Rmq : i_layer correspond à la profondeur.
Si tu as une idée sur ce qui cloche dans ce code? Toute idée est bonne à prendre.
Ce qui est bizarre, c'est que les fonction starDrag() et stopDrag() semblent fonctionner : car elles n'utlisent aucun paramètre variable à proprement parler?