Load movie depuis une variable [Résolu]

Signaler
Messages postés
23
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
9 mai 2011
-
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
-
Salut, et Merci d'avance pour votre aide :D

voila mon probleme :
j'ai creer un fichier swf contenant une image. le fichier s'appel : fleur.swf

Dans un autre swf j'ai creer un champs text de saisi (avec la variable: "ma_variable') et un bouton avec l'action suivante :

on (release) {
loadMovie("ma_variable.swf",1);}

ce que j'aimerais c'est que en rentrant (fleur dans mon text de saisi et que en cliquant sur le bouton, cela me charge le fichier fleur.swf

mais stupid comme je suis cela ne fonctionne pas.
please help me :)

15 réponses

Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
Hello,

le chemin de ton swf à charger est correct ? Tu fais bien ceci :
loadMovie(contenu, conteneur); ?
Sachant que le contenu c'est le swf à charger et le conteneur c'est... Le conteneur quoi .

A plus ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
9
bonjour, pour concaténer deux choses, il faut utiliser le "+" comme ceci :

variable+"texte"


Peg'
Messages postés
23
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
9 mai 2011

Bonjour Peg et merci pour cette reponse, cependant je ne comprends toujours pas vraiement...:(

variable+"texte" ok mais quel texte?

ce que je veux :

j'ai par exemple 4 fichier swf

fleur.swf
maison.swf
homme.swf
femme.swf

je veux taper dans un champs text le nom du fichier que je veux charger via loadmovie
puis en cliquant sur le bonton ok cela me charge le fichier swf que j'ai taper

si je tape: "fleur" puis que je clique sur ok ca ouvre fleur.swf
si je tape "maison" ca ouvre maison.swf ect...

merci encore !
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
Hello,

un exemple simple :
var ma_variable:String = "animation";

bouton.onRelease = function(){
loadMovie(ma_variable + ".swf",1)
}


Après si tu as plusieurs extensions à gérer tu peux aussi définir des variables pour ces extensions :
var ma_variable:String = "animation";

var Ex1:String = ".swf";
var Ex2:String = ".png";

bouton.onRelease = function(){
loadMovie(ma_variable + Ex1, 1);
}


A plus ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
Messages postés
23
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
9 mai 2011

Salut BBFUNK01,

je vais tester ca ce soir et je te tiens au courant ! merci bcp en tt cas
Messages postés
23
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
9 mai 2011

Re, je viens de tester cela et ca ne marche malheuresement pas
quand je clique sur mon bouton rien ne se passe...

j'ai proceder comme suit :

1 jai creer mon text dynamique avec la variable (ma_variable)
2 j'ai creer un bouton portant l'occurance(bouton)
3 sur l'image clé, j'ai deposer ton code

{var ma_variable:String = "animation";

bouton.onRelease = function(){
loadMovie(ma_variable + ".swf",1)
}
)

j'ai creer un autre swf que j'ai nommee "maison"

lorsque j'ouvre mon annimation j'ai bien (annimation qui apparait sur le champs (ma_variable) , je tape "maison" a la place et lorsque je clique sur mon bouton ...rien ne se passe:( pas de load movie...

j'ai deposer le fichier source ici :
http://squall.linear.free.fr/testfls.zip

merci bcp
Messages postés
23
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
9 mai 2011

je suis desesperer lol , y aurait il une âme charitable? :D
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
Hello,

si le swf à charger est le contenu qui a été saisi dans le champ de texte dynamique il faut que tu indiques cela dans ton code, car pour le coup là tu charges la valeur de "ma_variable" qui est "animation" et non "maison". Il faut donc intialiser la valeur de "ma_variable" lorsque le champ de texte dynamique est rempli, d'ailleurs tu n'as pas besoin du coup de définir la valeur de "ma_variable" au début du code, un simple :
var ma_variable:String;

...suffira.

Et pour intialiser "ma_variable", il suffit de rajouter une ligne de code dans l'action de ton bouton (que tu aurais pu trouver aisément je pense si tu avais réfléchi ) :
bouton.onRelease = function(){
ma_variable = champ.text;
loadMovie(ma_variable + ".swf",1)
}


Et il est préférable de définir ton champ de texte dynamique avec un nom d'occurrence plutôt qu'un nom de variable, donc dans l'exemple ton champ de texte dynamique s'appellerait donc "champ".

A plus ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
Messages postés
23
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
9 mai 2011

merci de ne pas me laisser tomber lol enfin je dois être maudit ...
as tu tester ton code? car même si tes explications sont très claire, cela ne fonctionne pas chez moi... enfin je suis peut être vraiment pas doué :(

j'ai mis le code suivant sur mon image clé:

var ma_variable:String;

bouton.onRelease = function(){
ma_variable = champ.text;
loadMovie(ma_variable + ".swf",1)
}


et mis 'champ' comme nom a mon texte de saisie.

est ce que cela fonctionne chez toi? ou alors c'est moi qui suis tellement stupide au point de ne pas etre capable d'appliquer correctement tes conseils

merci encore pour ton temps et ton aide
Messages postés
23
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
9 mai 2011

bien mon fichier swf a charger est a la racine de mon fichier swf principal
par exemple si je fais :
loadMovie("maison.swf",1)

la ca marche sans problem, mais si je fais un load movie via une variable la rien ne se passe...

par exemple
var ma_variable:String;

bouton.onRelease = function(){
ma_variable = champ.text;
loadMovie(ma_variable + ".swf",1)
}


voici mon fichier : http://squall.linear.free.fr/load.zip

Thx :)
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
Hello,

je jetterai un oeil à ton fichier cet après-midi car là je n'ai pas Flash sous la main.

A plus ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
Messages postés
23
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
9 mai 2011

Merci beaucoup!!

je vais prier pour que tu puisses trouver d'ou vient le problème :D
Messages postés
23
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
9 mai 2011

Merci du fond du coeur a toi BBFUNK01 ca marche nikel !!!
enfaite le problème venait du fait que je soit complètement stupide et pourtant tu m'avais bien dit contenue, conteneur mais je n'avais pas de conteneur. pffff so stupid :D
j'ai donc créer un clip vide avec pour nom d'occurrence "main" afin d'avoir mon conteneur

et maintenant ca marche!!!

var ma_variable:String;

bouton.onRelease = function(){
ma_variable = champ.text;
loadMovie(ma_variable + ".swf",main);
}



j'en profite vu que tu es super cale sur le sujet :D pour te demander si tu aurais pas un petit code pour charger des images

j'ai par exemple : des images dans un dossier avec des noms qui se suivent genre img01, img02, img03, img04...ect

dans flash je suppose que je dois
initialiser une variable a 0
par exemple i= 0;
créer un conteneur "image"
2 boutons "suivant et précèdent"

donc quand je clic sur suivant ca incremente

suivant.onRelease = function(){
loadMovie("img" + i + ".jpg",image);
}
i=+1;

mais pour le bouton suivant je ne sais pas comment faire une décrémentation de i...

hesite pas a me dire si mon code est tt faux hihi
Messages postés
23
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
9 mai 2011

je te fais un etat de ma progression...
i=0;

suivant.onRelease = function(){
i=i+1;
if (i>4) {i=1;}

loadMovie("img" +i+ ".jpg",image);

}

precedent.onRelease = function(){
i=i-1;
if (i<1) {i=4;}
loadMovie("img" +i+ ".jpg",image);

}

la sa marche, mais j'ai 2 problèmes...

le premier et il est de taille, c'est la taille des images je ne sais pas si il y aurait un moyen de les redimensionner automatiquement.

le deuxième, j'aimerais ne pas spécifier la limite des images
ce que je veux dire c'est que dans cet exemple il y a 4 images mais si il y en aurais 10 cela ne serais limiter qu'au 4 images si je supprime les conditions alors cela va m'afficher des blancs...

y aurait t'il un moyen de mettre une condition par exemple (si il y a pas d'image retourner a la precedente ou a la premiere)?

Merci !!
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
Hello,

désolé de répondre si tard (pas mal pris en ce moment). Bref, pour répondre à ta question si je puis te conseiller une méthode pour gérer le chargement de tes images avec tous les paramètres qui vont bien, et bien sans hésitation aucune je te recommande de regarder du côté de MovieClipLoader() -> tu pourras ainsi dans les différents écouteurs gérer les dimensions de ton image chargée ainsi que son éventuel redimensionnement avec onLoadInit(). Tu pourras également gérer le chargement de l'image avec onLoadProgress().
Ensuite pour la gestion de ta liste d'image -> array() et xml, en clair tu stockes les chemins de tes images dans un fichier xml (tu peux ajouter plusieurs paramètres : nom de l'image, date, auteur, etc.). Ensuite il te faudra donc charger le fichier xml dans ton flash, c'est donc durant le chargement du xml qu'il faudra que tu effectues une boucle pour remplir ton tableaux avec les différents noeuds de ton fichier.xml. Puis avec MovieClipLoader() tu crées une fonction pour afficher tes images en "configurant" le MovieClipLoader() tel que tu le souhaites et suivant les différentes images et leurs formats.
Pour conclure -> abandonne loadMovie() pour charger des listes d'images, ce n'est pas adapté et c'est trop limité.
Par ailleurs si je peux te donner un autre conseil : étant donné que visiblement tu débutes en Flash, je t'invite à t'orienter vers l'as3 plutôt que de continuer à bosser en as2, car l'as3 est depuis plusieurs années sur la toile et est plus puissant que l'as2. Mais l'as3 est surtout différent de l'as2 sur bon nombre de points, donc ce serait dommage que tu assimiles beaucoup de choses en as2 et que plus tard lorsque tu souhaiteras te mettre à l'as3... tu sois obligé de repartir de zéro.
Mais après à toi de voir .

A plus ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;