Ouverture de popup sur clic d'un movie clip creer dynamiquement [Résolu]

Messages postés
20
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
30 octobre 2007
- - Dernière réponse : cs_yosh
Messages postés
20
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
30 octobre 2007
- 12 juil. 2005 à 10:38
Bonjour a tous



Je voudrais savoir comment faire pour ouvrir une popup sur le clic d'un movie clip



Explication:

G le code suivant qui crer dynamiquement un movieclip et y insére une
image redimensionner(pour créer des thumbnails dynamiquement)



-----DEBUT-----

//creation du movie clip
_root.createEmptyMovieClip("banniere", 1) ;

//insertion de l'image dans le movie clip
_root.banniere.loadMovie("mon_image.jpg") ;



//une fois l'image charger je la redimensionne
_root.onEnterFrame = function()

{

var BT = this.banniere.getBytesTotal() ;

var BL = this.banniere.getBytesLoaded() ;



if (BL == BT && BL > 4)

{

trace("ok");

this.banniere._x = 0 ;

this.banniere._y = 0 ;

this.banniere._width = 100 ;

this.banniere._height= 100 ;

delete this.onEnterFrame;

}

}

-----FIN-----



et je voudrais ouvrir une popup en cliquant sur le movieclip créer pour avoir l'image agrandit



Si qq'un a une idée, ca serai vraiment sympa



Parceque là je vois pas comment faire du tout...



Merci d'avance pour votre aide



YOSH
Afficher la suite 

15 réponses

Meilleure réponse
Messages postés
20
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
30 octobre 2007
3
Merci
Bon ben apres qq modif pour que tous soit dynamique, ca fonctionne a merveille



Explication:

Interfacage PHP/Mysql qui permet d'alimenter une
combobox, d'afficher dynamiquement une image et une description (sous
la combobox) pour chaque elements de la combobox.



-----DEBUT-----

//déclaration de variable LoadVars pour interfaçage Flash/PHP

var maReception_lv:LoadVars = new LoadVars();



//fonction de chargement de l'objet LoadVars

//si le chargement réussi, on initialise la liste des types d'albums

//sinon -------------------A FAIRE-------------------

maReception_lv.onLoad = function(succes)

{

if(succes)

{

//initialise le nombre de description de la page

_root.nb_description_nb=this.nb_type_album;



//tant qu'il y a des données à insérer

for (var i = 0; i<_root.nb_description_nb; i++)

{

//on ajoute les données a la combobox

_root.liste_type_album.addItem(this["type_album_"+i]);



//creation dynamique de l'image du type d'album

//DEBUT------------------------------------------------------



//initialisation du chemin de l'image

_root.chemin_image="res/images/type_album/"+this["image_"+i];



//creation du clip qui va accueillir le bouton

_root.createEmptyMovieClip("button_"+i,i);



//on creer un rectangle plein pour la zone reactive du bouton

_root["button_"+i].beginFill(0xff0000,0);

_root["button_"+i].lineStyle(2,0x000000,100);

_root["button_"+i].moveTo(0,0);

_root["button_"+i].lineTo(10,0);

_root["button_"+i].lineTo(10,10);

_root["button_"+i].lineTo(0,10);

_root["button_"+i].lineTo(0,0);



//on associe a
ce rectangle un nouveau clip contenant cette fois l'image

_root["button_"+i].createEmptyMovieClip("image_button_"+i,this.i+2);

_root["button_"+i]["image_button_"+i].loadMovie(chemin_image);



//la zone du bouton prend une opacité de 30

_root["button_"+i]._alpha=30;



//gestion du ROLL OVER et ROLL OUT


_root["button_"+i].onRollOver = function() {
this._alpha=100; }


_root["button_"+i].onRollOut = function() { this._alpha=30;
}



//gestion de l'action du bouton

_root["button_"+i].onRelease = function()

{

//Mailto pour exemple (fonctionne tres bien)

getURL("mailto:polyosh@yahoo.fr");

}



//positionnement du bouton

_root["button_"+i]._x=_root.liste_type_album._x;


_root["button_"+i]._y=_root.liste_type_album._y+_root.liste_type_album._height+(50*i)+50;



//FIN------------------------------------------------------



//creation dynamique de la description du type d'album

//DEBUT------------------------------------------------------



//creation de la zone de texte


_root.createTextField("texte_"+i,i+this.nb_type_album,_root.liste_type_album._x+50,_root["button_"+i]._y,
220, 100);





//assignation de la valeur a la zone de texte

_root["texte_"+i].text = this["description_"+i];



//FIN------------------------------------------------------

}

}

}



//chargement de l'objet Loadvars avec la page a charger en paramètre

maReception_lv.load("liste_type_album.php");

-----FIN-----



Et voila, reste plus qu'a redimensionner mes images une fois qu'el son charger



Si vous avez une idée merci de m'en faire part



En tous cas merci de votre aide,



YOSH

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 216 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_yosh
Messages postés
20
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
30 octobre 2007
3
Merci
Bon g enfin réussi reste plus qu'a recuperer les dimensions de l'image en php ;) facile



Je donne quand meme le code solution du gestionnaire onLoadMovie pour redimensionner une image lorsqu'elle est charger



-----DENUT-----

for (var i = 0; i<_root.nb_description_nb; i++)

{

_root.createEmptyMovieClip("button_"+i,i);

_root["button_"+i].createEmptyMovieClip("image_button_"+i,this.i+2);
chargeur=new MovieClipLoader();
chargeur.onLoadInit=function (pCible)
{
pCible._width=100;
pCible._height=100;
}
chargeur.loadClip(_root.chemin_image,_root["button_"+i]["image_button_"+i]);

}

-----FIN-----



Et voila c ty pas beau



Merci encor de ton aide Samy sans toi j'y serai pas arrivé



Cela te dérangerait-il si je garde ton adresse(du site) au cas ou j'aurai des souci d'actionscript???


Yosh

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 216 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_yosh
Messages postés
20
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
30 octobre 2007
3
Merci
Et pour ceux qui veulent la popup voici le code javascript et son appel en actionscript

---------------------------------------------------------------------------------------------------

Script a placer dans un fichier fonction.js et a inclure lors de l'execution de la page(PHP)

<SCRIPT LANGUAGE="JavaScript">

function popUpImage(URL,W,H)

{

_width=W;

_height=H;

_left=(screen.width/2)-(_width/2);

_top=(screen.height/2)-(_height/2);

day = new Date();

id = day.getTime();

eval("page" + id + " =
window.open(URL, '" + id + "',
'toolbar=no,scrollbars=yes,directories=no,copyhistory=yes,location=no,statusbar=no,menubar=no,resizable=no,width="+W+",height="+H+",left
"+_left+",top "+_top+"');");

}

</SCRIPT>

---------------------------------------------------------------------------------------------------

Appel ActionScript

monClip.onRelease = function()

{

getURL("javascript:popUpImage('apercu.php?img="+this.name+"',200,200)");

}

---------------------------------------------------------------------------------------------------
Yosh

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 216 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_yosh
Messages postés
91
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
23 février 2007
0
Merci
ben tu fait un truc du genre



_root.banniere.onRelease = function () { tonAction };
Commenter la réponse de lalok
Messages postés
1623
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
9 juin 2011
1
0
Merci
et à la place de "tonAction" fais un "getURL(ici tous les paramètres);"



et pour trouver quoi mettre comme paramètres, fais une recherche sous
"javascript:void popup" et tu trouveras sans doute une ligne de code à
modifier!



Faudra mettre le code javascript dans le fichier HTML et le
getURL(javascript:void....) va appeler la fonction javascript du
fichier HTML.



Voilà @+! Samy
Commenter la réponse de cs_goldenboy68
Messages postés
1623
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
9 juin 2011
1
0
Merci
...ok pour le mailto...mais pour le popup, faudra quand même chercher la ligne de code javascript...



@+! Samy
Commenter la réponse de cs_goldenboy68
Messages postés
20
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
30 octobre 2007
0
Merci
La popup fonctionne parfaitement, au lieu de mailto je fais:

getURL("javascript:popUpImage('apercu.php?img="+_root.chemin_image+"',200,200)");



Reste maintenant un dernier problème:



Je souhaite pouvoir redimensionner la taille de mon image dans mon clip



J sais qu'il faut attendre que l'image soit charger pour le faire,

mais je nes sais pas vraiment comment l'incorporer dans mon code



Le code suivant ne fonctionne pas et je ne sais pas non plus si je suis sur la bonne piste



-----DEBUT-----

//au chargement de mon animation

_root.onEnterFrame = function()

{

//pour chaque clip bouton dans lesquel

//g un clip image créer dynamiquement

for (var i = 0; i<_root.nb_description_nb; i++)

{

//declaration des variables qui gèrent le transfert de données

var total_load = _root["button_"+i].getBytesTotal() ;

var bytes_load = _root["button_"+i].getBytesLoaded() ;



//si les données chargées = la donnée total

//=>si chargement terminé

if (bytes_load == total_load && bytes_load>4)

{

//redimensionnement de l'image du bouton et de l'image dans le bouton

_root["button_"+i]._width = 100 ;

_root["button_"+i]._height = 100 ;

_root["button_"+i]["image_button_"+i]._width = 100;

_root["button_"+i]["image_button_"+i]._height = 100;

_root.onEnterFrame=undefined;

}

}

}

-----FIN-----


En fait ca marche dans un code que g deja fais



Dans mon code qui marche ca donne ca



-----DEBUT-----

_root.createEmptyMovieClip("banniere", 1);

_root.banniere.loadMovie("mon_image.jpg");



_root.onEnterFrame = function()

{

//declaration des variables qui gèrent le transfert de données


var total_load = _root.["button_"+i].getBytesTotal() ;


var bytes_load = _root["button_"+i].getBytesLoaded() ;



//si les données chargées = la donnée total


//=>si chargement terminé

if (bytes_load == total_load && bytes_load>4)

{

//redimensionnement de l'image et positionnement

this.banniere._x = 0 ;

this.banniere._y = 0 ;

this.banniere._width = 100 ;

this.banniere._height= 100 ;

this.onEnterFrame=undefined;

}

}

-----FIN-----



Je c pas vraiment ce qui cloche



Merci encore de votre patience et de votre aide




Yosh
Commenter la réponse de cs_yosh
Messages postés
1623
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
9 juin 2011
1
0
Merci
Regarde du côté de MovieClipLoader...t'as un écouteur d'intégré
"onLoadComplete" qui te permet directement de savoir quand l'image est
chargée (ça marche pour SWF et JPG...en plus t'as un "onProgress" qui
peut être intéressant si tu veux afficher une progress bar pendant le
chargement)



du tout en un...reste plus qu'à le faire marcher! lol



@+! Samy



PS: MovieClipLoader est apparu avec MX 2004, donc si t'as pas cette version, faudra bidouiller ton code!
Commenter la réponse de cs_goldenboy68
Messages postés
20
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
30 octobre 2007
0
Merci
J arrive pas :(



En fait g pas trouver d'exemple super conqret, enfin j'en est un mais je comprend pas...



Tu connaitrais pas un tutz complet et bien commenter



STP



Yosh
Commenter la réponse de cs_yosh
Messages postés
1623
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
9 juin 2011
1
0
Merci
Dans l'aide de Flash, c'est super bien expliqué!



tape MovieClipLoader dans le panneau Actions, tu le sélectionnes, et tu tapes sur F1!



@+! Samy
Commenter la réponse de cs_goldenboy68
Messages postés
20
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
30 octobre 2007
0
Merci
Voici le code que g mis, g utilisé une zone de texte nomé TEST pour
savoir ce que sa fesait (NB:dans flash y a rien qui marche mais dans
mon navigateur pas de prob), et le chargement a l'air de bien se passer
mais la redimension de mes images ne fonctionne pas (si je fais un
_xscale par contre ca marche), en fait l'image n'est même pas affiché.



-----DEBUT-----

_root["button_"+i].createEmptyMovieClip("image_button_"+i,this.i+2);



//declaration des ecouteurs pour savoir si l'image est chargé

//afin de redefinir la taille de l'image

var mon_mcl = new MovieClipLoader();

monEcouteur = new Object();

monEcouteur.onLoadComplete(_root["button_"+i]["image_button_"+i])

{

//A FAIRE ne fonctionne pas

test.text="ok_"+i;

_root["button_"+i]["image_button_"+i]._width=10;

_root["button_"+i]["image_button_"+i]._height=10;

}

mon_mcl.addListener(monEcouteur);



_root["button_"+i]["image_button_"+i].loadMovie(chemin_image);

-----FIN-----



En tous cas merci, merci de prendre du temps pour me répondre Samy, c vraiment sympa :)
Commenter la réponse de cs_yosh
Messages postés
1623
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
9 juin 2011
1
0
Merci
Tes doubles crochets sont certainement la source de ton erreur!



...y'a un autre gestionnaire aussi "onLoadInit" il me semble, mais bon,
vérifie déjà en changeant les doubles-crochets par
eval("button_"+i".image_button_"+i) un truc du genre...y'a eu un post
là-dessus y'a 2-3 jours...



@+! Samy



PS: pour tester, soit tu le mets sur le net, soit tu testes avec des
liens qui pointent sur des images sur internet. Car même avec de
grosses images à charger, j'ai eu du mal à voir la barre de chargement
chez moi! lol ... et vide le cache du naviguateur si jamais ça charge
trop vite la 2ème fois!
Commenter la réponse de cs_goldenboy68
Messages postés
20
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
30 octobre 2007
0
Merci
A marche toujours pas, tu doit te dire que je suis une merd...



g tester le eval et le onLoadInit mais rien a faire je vois vraiment
pas pourquoi ca marche pas!!!l'image ne s'affiche toujours pas(pas
d'affichage et pas de redimension) si je trace width dans le onLoadInit
il vaut 0.



-----DEBUT-----

_root["button_"+i].createEmptyMovieClip("image_button_"+i,this.i+2);




//declaration des ecouteurs pour savoir si l'image est chargé

//afin de redefinir la taille de l'image

var mon_mcl = new MovieClipLoader();

monEcouteur = new Object();



mc=eval(_root["button_"+i]["image_button_"+i]);



monEcouteur.onLoadInit(mc)


{


mc._width=100;

mc._height=100;

test.text=mc;

//A FAIRE ne fonctionne pas

//_root["button_"+i]["image_button_"+i]._width=10;

//_root["button_"+i]["image_button_"+i]._height=10;

}

mon_mcl.addListener(monEcouteur);



//chargement de l'image dans le clip

_root["button_"+i]["image_button_"+i].loadMovie(_root.chemin_image);

-----FIN-----



Argh!!!!!!!!!!
Yosh
Commenter la réponse de cs_yosh
Messages postés
20
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
30 octobre 2007
0
Merci
EDIT:

le eval(_root["button_"+i]["image_button_"+i]);



me retourne pour chaque bouton créer :



_level0.button_0.image_button_0

_level0.button_1.image_button_1

_level0.button_2.image_button_2

_level0.button_3.image_button_3

_level0.button_4.image_button_4


Yosh
Commenter la réponse de cs_yosh
Messages postés
1623
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
9 juin 2011
1
0
Merci
http://www.flashkod.com/forum.v2.aspx?ID=495844



C'était un peu plus vieux que 2-3 jours!



@+! Samy
Commenter la réponse de cs_goldenboy68