begin process at 2012 05 26 05:56:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ActionScripts

 > GALLERIE PHOTO AVEC XML

GALLERIE PHOTO AVEC XML


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :ActionScripts Classé sous :gallerie, xml, tween, urlloader, loader Niveau :Initié Date de création :28/06/2011 Date de mise à jour :29/06/2011 23:59:31 Vu / téléchargé :5 232 / 440

Auteur : yasdar

Ecrire un message privé
Site perso
Commentaire sur cette source (19)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
une galerie d'image pour afficher des téléphones portable
je publier la galerie pour que quelqu'un l'améliore
le swf marche très bien en local, mais une fois publier il ne marche pas bien,j'arrive pas à résoudre ce problème - aidez moi
la source est réparti sur plusieurs calques, pour moi c'est plus claire .
merci

Source

  • import fl.transitions.*;
  • import fl.transitions.easing.*;
  • import fl.transitions.TransitionManager;
  • import flash.display.MovieClip;
  • import fl.transitions.Tween;
  • import flash.display.Sprite;
  • import flash.display.Loader;
  • import flash.net.URLRequest;
  • import flash.events.Event;
  • import flash.events.MouseEvent;
  • import flash.events.ProgressEvent;
  • var myTMinfo:TransitionManager = new TransitionManager(infodesc);
  • var myTMdroite:TransitionManager = new TransitionManager(adroite);
  • var myTMguache:TransitionManager = new TransitionManager(agauche);
  • var imagearea:MovieClip= new MovieClip();
  • var ballXTween:Tween;
  • var sp:Sprite=new Sprite()
  • sp.x=(stage.stageWidth/2)-200;
  • sp.y=(stage.stageHeight/2)-170;
  • addChild(sp);
  • sp.addChild(imagearea);
  • var thumbsarea:MovieClip= new MovieClip();
  • var spth:Sprite=new Sprite();
  • spth.x = 20;
  • spth.y =stage.stageHeight - 70;
  • addChild(spth);
  • spth.addChild(thumbsarea);
  • var myXML:String="gallery100.xml";
  • var tablienimage:Array=new Array();
  • var tablienthumbs:Array=new Array();
  • var tablientitre:Array=new Array();
  • var tabliendescription:Array=new Array();
  • var tabprice:Array=new Array();
  • var c:Number=0;
  • var nbresimages:Number;
  • //preloader.x=stage.width/2;
  • //preloader.y=stage.height/2;
  • var xspace:Number = 125;
  • var xs:Number = 0;
  • thumbsarea.buttonMode=true;
  • var ds:DropShadowFilter = new DropShadowFilter();
  • ds.distance = 5;
  • ds.blurX = 10;
  • ds.blurY = 10;
  • ds.alpha = .6;
  • ds.color=0x000000;
  • loadmyxml();
  • function loadmyxml()//1
  • {
  • // load xmlfile dans myxmldata et nbre d'images dans a
  • var lxml:URLLoader= new URLLoader();
  • var rxml:URLRequest = new URLRequest(myXML);
  • lxml.load(rxml);
  • lxml.addEventListener(Event.COMPLETE,lirexml);
  • function lirexml(event:Event):void//1.1
  • {
  • var myxmldata:XML = new XML(lxml.data);
  • myxmldata.ignoreWhitespace = true;
  • /*var a:Number =myxmldata.store.length();
  • trace(a);
  • nbresimages = a;*/
  • // remplir le tableau
  • trace(myxmldata.phone[0].@ref);
  • var nbr:Number =myxmldata.info.nbre;
  • nbresimages=nbr;
  • var i:Number;
  • for( i=0 ;i<nbr;i++)
  • {
  • var ch1:String = myxmldata.phone[i].image;
  • var ch2:String =myxmldata.phone[i].thumb;
  • var letitre:String = myxmldata.phone[i].productName;
  • var desc:String =myxmldata.phone[i].description;
  • var leprix:String =myxmldata.phone[i].price;
  • tablienimage.push(ch1);
  • tablienthumbs.push(ch2);
  • tablientitre.push(letitre);
  • tabliendescription.push(desc);
  • tabprice.push(leprix);
  • }
  • // importer une seule image dans le clip avec son titre et sa discription
  • var nn:Number = Math.round(Math.random()*nbr);
  • trace(tablienimage[nn]);
  • var luneimage:Loader= new Loader();
  • var runeimage:URLRequest = new URLRequest(tablienimage[nn]);
  • luneimage.load(runeimage);
  • luneimage.contentLoaderInfo.addEventListener(Event.COMPLETE,afficheruneimage);//1.1.2
  • function afficheruneimage(event:Event):void{
  • imagearea.addChild(luneimage);
  • luneimage.filters = [ds];
  • titre.text=tablientitre[nn];
  • description.text=tabliendescription[nn];
  • price.text=tabprice[nn];
  • }
  • loadthumbs();
  • }
  • }
  • function loadthumbs(){//1
  • var lthumbs:Loader= new Loader();
  • var rthumbs:URLRequest = new URLRequest(tablienthumbs[c]);
  • lthumbs.load(rthumbs);
  • lthumbs.contentLoaderInfo.addEventListener(Event.COMPLETE,afficherlesthumbs);
  • function afficherlesthumbs(event:Event):void{//1.1
  • var thispic:String=tablienimage[c];
  • var thistitre:String=tablientitre[c];
  • var thisdescription:String=tabliendescription[c];
  • var thisprice:String=tabprice[c];
  • lthumbs.x=(xs*128);
  • xs=xs+1;
  • // fltre drop shadow sur les lthumbs
  • lthumbs.filters = [ds];
  • lthumbs.addEventListener(MouseEvent.CLICK,voirimage);
  • function voirimage(event:MouseEvent):void{//1.1.1
  • //vider les champs
  • titre.text="";
  • description.text="";
  • imagearea.removeChildAt(0);
  • var llesimages:Loader= new Loader();
  • var rlesimages:URLRequest = new URLRequest(thispic);
  • llesimages.load(rlesimages);
  • //preloader
  • llesimages.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,preloaderprogress);
  • function preloaderprogress(event:ProgressEvent):void{//1.1.1.1
  • var progkb:String = Number(event.bytesLoaded/1024).toFixed(1);
  • var tkb:String = Number(event.bytesTotal/1024).toFixed(1);
  • preloader.text="loading"+progkb+" of"+tkb+"please wait";
  • }
  • // effet sur chaque image du humbs
  • ballXTween= new Tween(lthumbs, "x", Elastic.easeOut, lthumbs.x-10,lthumbs.x, 3, true);
  • // charger l'image
  • llesimages.contentLoaderInfo.addEventListener(Event.COMPLETE,chargerimage);
  • function chargerimage(event:Event):void{
  • lthumbs.addEventListener(MouseEvent.CLICK,voirimage);
  • preloader.text="";
  • infodesc.visible=false;
  • imagearea.addChild(llesimages);
  • llesimages.filters = [ds];
  • var myTM:TransitionManager = new TransitionManager(imagearea);
  • myTM.startTransition({type:Zoom, direction:Transition.IN, duration:1, easing:Strong.easeOut});
  • titre.text=thistitre;
  • description.text=thisdescription;
  • price.text= thisprice;
  • }
  • }//end1.1.1
  • thumbsarea.addChild(lthumbs);
  • c=c+1;
  • if(c<nbresimages){
  • loadthumbs();
  • }
  • else{
  • trace("it'sdone");
  • }
  • }//end 1.1
  • }//end 1
  • //adroite.buttonMode = true;
  • //agauche.buttonMode = true;
  • descb.buttonMode = true;
  • infodesc.visible=false;
  • /*var myTMdroite:TransitionManager = new TransitionManager(adroite);
  • var myTMgauche:TransitionManager = new TransitionManager(agauche);
  • */
  • function droite(event:MouseEvent):void{
  • thumbsarea.x-=128;
  • myTMdroite.startTransition({type:Fade, duration:1, direction:Transition.OUT})
  • }adroite.addEventListener(MouseEvent.CLICK,droite);
  • function gauche(event:MouseEvent):void{
  • thumbsarea.x+=128;
  • myTMguache.startTransition({type:Fade, duration:1, direction:Transition.OUT})
  • }agauche.addEventListener(MouseEvent.CLICK,gauche);
  • function controle1(event:Event):void{
  • if(agauche.hitTestObject(thumbsarea)){
  • // agauche.visible=true;
  • }else{
  • // agauche.visible=false;
  • thumbsarea.x-=64;
  • }
  • }stage.addEventListener(Event.ENTER_FRAME,controle1);
  • function controle2(event:Event):void{
  • if(adroite.hitTestObject(thumbsarea)){
  • // adroite.visible=true;
  • }else{
  • // adroite.visible=false;
  • thumbsarea.x+=64;
  • }
  • }stage.addEventListener(Event.ENTER_FRAME,controle2);
  • function showmeinfo(event:MouseEvent):void{
  • infodesc.visible=true;
  • myTMinfo.startTransition({type:Wipe, direction:Transition.IN, duration:1, easing:Strong.easeOut, startPoint:1});
  • info.text=description.text;
  • }descb.addEventListener(MouseEvent.MOUSE_OVER,showmeinfo);
  • function hidemeinfo(event:MouseEvent):void{
  • info.text="";
  • infodesc.visible=false;
  • }descb.addEventListener(MouseEvent.MOUSE_OUT,hidemeinfo);
import fl.transitions.*;
import fl.transitions.easing.*;
import fl.transitions.TransitionManager;
import flash.display.MovieClip;
import fl.transitions.Tween;
import flash.display.Sprite;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;

var myTMinfo:TransitionManager = new TransitionManager(infodesc);
var myTMdroite:TransitionManager = new TransitionManager(adroite);
var myTMguache:TransitionManager = new TransitionManager(agauche);

var imagearea:MovieClip= new MovieClip();
var ballXTween:Tween;

var sp:Sprite=new Sprite()
sp.x=(stage.stageWidth/2)-200;
sp.y=(stage.stageHeight/2)-170;
addChild(sp);
sp.addChild(imagearea);

var thumbsarea:MovieClip= new MovieClip();
var spth:Sprite=new Sprite();
spth.x = 20;
spth.y =stage.stageHeight - 70;
addChild(spth);
spth.addChild(thumbsarea);

var myXML:String="gallery100.xml";
var tablienimage:Array=new Array();
var tablienthumbs:Array=new Array();
var tablientitre:Array=new Array();
var tabliendescription:Array=new Array();
var tabprice:Array=new Array();
var c:Number=0;
var nbresimages:Number;

//preloader.x=stage.width/2;
//preloader.y=stage.height/2;
var xspace:Number = 125;

var xs:Number = 0;



thumbsarea.buttonMode=true;
	
	
var ds:DropShadowFilter = new DropShadowFilter();
ds.distance = 5;
ds.blurX = 10;
ds.blurY = 10;
ds.alpha = .6;
ds.color=0x000000;

loadmyxml();

function loadmyxml()//1
{
// load xmlfile dans myxmldata et nbre d'images dans a
	var lxml:URLLoader= new URLLoader();
	var rxml:URLRequest = new URLRequest(myXML);
	lxml.load(rxml);
	lxml.addEventListener(Event.COMPLETE,lirexml);
	function lirexml(event:Event):void//1.1
	{
		
		
		
	
	
	
		var myxmldata:XML = new XML(lxml.data);
		myxmldata.ignoreWhitespace = true;
		/*var a:Number =myxmldata.store.length();
		trace(a);
		nbresimages = a;*/
	
// remplir le tableau


trace(myxmldata.phone[0].@ref);



var nbr:Number =myxmldata.info.nbre;
nbresimages=nbr;
var i:Number;
	
	for( i=0 ;i<nbr;i++)
	{
		var ch1:String = myxmldata.phone[i].image;
		var ch2:String =myxmldata.phone[i].thumb;
		var letitre:String = myxmldata.phone[i].productName;
		var desc:String =myxmldata.phone[i].description;
		var leprix:String =myxmldata.phone[i].price;
		tablienimage.push(ch1);
		tablienthumbs.push(ch2);
		tablientitre.push(letitre);
		tabliendescription.push(desc);
		tabprice.push(leprix);
		
	}
	
	// importer une seule image dans le clip avec son titre et sa discription
	var nn:Number = Math.round(Math.random()*nbr);
	trace(tablienimage[nn]);
	var luneimage:Loader= new Loader();
	var runeimage:URLRequest = new URLRequest(tablienimage[nn]);
	luneimage.load(runeimage);
	luneimage.contentLoaderInfo.addEventListener(Event.COMPLETE,afficheruneimage);//1.1.2
	function afficheruneimage(event:Event):void{
		imagearea.addChild(luneimage);
		luneimage.filters = [ds];
		titre.text=tablientitre[nn];
		description.text=tabliendescription[nn];
		price.text=tabprice[nn];
	}
	
	loadthumbs();
}




}


function loadthumbs(){//1
	

	var lthumbs:Loader= new Loader();
	var rthumbs:URLRequest = new URLRequest(tablienthumbs[c]);
	lthumbs.load(rthumbs);
	lthumbs.contentLoaderInfo.addEventListener(Event.COMPLETE,afficherlesthumbs);
	
	function afficherlesthumbs(event:Event):void{//1.1
	
	var thispic:String=tablienimage[c];
	var thistitre:String=tablientitre[c];
	var thisdescription:String=tabliendescription[c];
	var thisprice:String=tabprice[c];
	
	lthumbs.x=(xs*128);
	
	xs=xs+1;
	
	
	
		// fltre drop shadow sur les lthumbs
		
		lthumbs.filters = [ds];
		
	lthumbs.addEventListener(MouseEvent.CLICK,voirimage);
	function voirimage(event:MouseEvent):void{//1.1.1
	//vider les champs
	titre.text="";
	description.text="";
	imagearea.removeChildAt(0);
		
	var llesimages:Loader= new Loader();
	var rlesimages:URLRequest = new URLRequest(thispic);
	llesimages.load(rlesimages);
	//preloader
		llesimages.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,preloaderprogress);
		function preloaderprogress(event:ProgressEvent):void{//1.1.1.1
			var progkb:String = Number(event.bytesLoaded/1024).toFixed(1);
			var tkb:String = Number(event.bytesTotal/1024).toFixed(1);
			preloader.text="loading"+progkb+" of"+tkb+"please wait";
		}
		// effet sur chaque image du humbs
		ballXTween= new Tween(lthumbs, "x", Elastic.easeOut, lthumbs.x-10,lthumbs.x, 3, true);
		
		// charger l'image
		llesimages.contentLoaderInfo.addEventListener(Event.COMPLETE,chargerimage);
		function chargerimage(event:Event):void{
			lthumbs.addEventListener(MouseEvent.CLICK,voirimage);
			preloader.text="";
			infodesc.visible=false;
			imagearea.addChild(llesimages);
			llesimages.filters = [ds];
			var myTM:TransitionManager = new TransitionManager(imagearea);
			myTM.startTransition({type:Zoom, direction:Transition.IN, duration:1, easing:Strong.easeOut});
			titre.text=thistitre;
			description.text=thisdescription;
			price.text= thisprice;
		}
		
		
		
	}//end1.1.1

	thumbsarea.addChild(lthumbs);
		c=c+1;
	if(c<nbresimages){
		loadthumbs();
		
	}
	else{
		trace("it'sdone");
		
		
		}




}//end 1.1

}//end 1



//adroite.buttonMode = true;
//agauche.buttonMode = true;
descb.buttonMode = true;
infodesc.visible=false;

/*var myTMdroite:TransitionManager = new TransitionManager(adroite);
var myTMgauche:TransitionManager = new TransitionManager(agauche);
*/
function droite(event:MouseEvent):void{
	
	thumbsarea.x-=128;
	
	myTMdroite.startTransition({type:Fade, duration:1, direction:Transition.OUT})
}adroite.addEventListener(MouseEvent.CLICK,droite);

function gauche(event:MouseEvent):void{
	
	thumbsarea.x+=128;
	myTMguache.startTransition({type:Fade, duration:1, direction:Transition.OUT})
}agauche.addEventListener(MouseEvent.CLICK,gauche);



function controle1(event:Event):void{
	if(agauche.hitTestObject(thumbsarea)){
	
	  // agauche.visible=true;
	   }else{
		   
		  //  agauche.visible=false;
			thumbsarea.x-=64;
	   }
	
}stage.addEventListener(Event.ENTER_FRAME,controle1);

function controle2(event:Event):void{
	if(adroite.hitTestObject(thumbsarea)){
	  
	  // adroite.visible=true;
	   }else{
		  
		   // adroite.visible=false;
			thumbsarea.x+=64;
	   }
	
}stage.addEventListener(Event.ENTER_FRAME,controle2);





function showmeinfo(event:MouseEvent):void{
	infodesc.visible=true;
	
	myTMinfo.startTransition({type:Wipe, direction:Transition.IN, duration:1, easing:Strong.easeOut, startPoint:1});
	
	info.text=description.text;
	
}descb.addEventListener(MouseEvent.MOUSE_OVER,showmeinfo);



function hidemeinfo(event:MouseEvent):void{
	
	info.text="";
	infodesc.visible=false;
	
	
	
}descb.addEventListener(MouseEvent.MOUSE_OUT,hidemeinfo);

	
	
	
	
	
	



 Conclusion

MAIS POURQUOI CA MARCHE PAS SUR LE NET ?

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

28 juin 2011 20:47:19 :
plus de détailles
29 juin 2011 23:59:32 :
voici une mise à jour de cette galerie avec un fichier xml plus propre - mais le problème est toujours la "en local ça marche bien mais une fois sur le net les petites images en dessous (thumbs) ne s'affichent pas - pourquoi ---> aucune idée.

 Sources du même auteur

Source avec Zip LECTURE DE TEXTE "VOICE"
Source avec Zip ZOOM SUR UNE IMAGE
Source avec Zip Source avec une capture UN PEU DE MATH
Source avec Zip Source avec une capture PARTICULE SYSTEM
Source avec Zip Source avec une capture MP3 LAYER NICE &SMALL

 Sources de la même categorie

Source avec Zip Source avec une capture OUVRIR UNE ANIMATION EXTERNE DANS UN CLIP VIDE. par KcHeY
Source avec Zip ZOOM SUR UNE IMAGE par yasdar
Source avec Zip Source avec une capture UN PEU DE MATH par yasdar
Source avec Zip Source avec une capture PARTICULE SYSTEM par yasdar
Source avec Zip Source avec une capture MP3 LAYER NICE &SMALL par yasdar

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture PERSONNALISATION DE COMPOSANT ET GESTION XML par top30
Source avec Zip METTRE À JOUR UN FICHIER XML (AJOUTER UN ENREGISTREMENT) AVE... par fshwork
Source avec Zip Source avec une capture MENUS DÉROULANT XML par Speedy321
Source avec Zip Source avec une capture DÉBUT DE GALERIE DYNAMIQUE par vegetalain
Source avec Zip Source avec une capture PORTFOLIO PERSONNALISABLE AVEC XML ET SYSTEME DE TEMPLATE par cedriclomb

Commentaires et avis

Commentaire de yasdar le 28/06/2011 20:35:30

une fois sur le net les petites images en dissous disparaissent - pourquoi ?

Commentaire de aerolyte le 28/06/2011 22:55:13

  Bonjour,
même remarques que pour ta source précédente.

concernant ton pb, vérifie le CHMOD
Cordialement

Commentaire de yasdar le 29/06/2011 11:23:13

non ça ne marche toujours pas peut être que c'est un problème de publish setting du programme flash cs5.

Commentaire de yasdar le 29/06/2011 11:58:38

avec internet explorer : SecurityError: Error #2000: No active security context. c'est quoi ?

Commentaire de aerolyte le 29/06/2011 12:48:57

utilise un URLLoader et pas un Loader

Commentaire de top30 le 29/06/2011 18:29:23 1/10

SUPER !Tu nous as chier une merde...
Ca marche même pas.

Commentaire de top30 le 29/06/2011 18:37:50

En premier l'XML:

Voici au minimun à quoi il devrait ressembler au nineau de la structure:


<store>
<phone ref="79255-5">
<image type="bitmap">monChemin/monImage.png</image>
<thumb type="bitmap">monChemin/monImageThumb.png</thumb>
<productName language="fr">Le nom du téléphone</productName>
<description language="fr">Le texte que tu n'utilises même pas dans ta source</description>
<manufacturer>Black Berry</manufacturer>
<price device="¤">140</price>
</phone>
<phone ref="778459">
<image type="bitmap">monChemin/monImage.png</image>
<thumb type="bitmap">monChemin/monImageThumb.png</thumb>
<productName language="fr">Le nom du téléphone</productName>
<description language="fr">Le texte que tu n'utilises même pas dans ta source</description>
<manufacturer>Sony Erikson</manufacturer>
<price device="¤">723</price>
</phone>
etc...
</store>

Commentaire de top30 le 29/06/2011 18:39:09

Pardon,
Plus claire comme ceci:



<store>
   <phone ref="79255-5">
      <image type="bitmap">monChemin/monImage.png</image>
      <thumb type="bitmap">monChemin/monImageThumb.png</thumb>
      <productName language="fr">Le nom du téléphone</productName>
      <description language="fr">Le texte que tu n'utilises même pas dans ta source</description>
      <manufacturer>Black Berry</manufacturer>
      <price device="¤">140</price>
   </phone>
   <phone ref="778459">
      <image type="bitmap">monChemin/monImage.png</image>
      <thumb type="bitmap">monChemin/monImageThumb.png</thumb>
      <productName language="fr">Le nom du téléphone</productName>
      <description language="fr">Le texte que tu n'utilises même pas dans ta source</description>
      <manufacturer>Sony Erikson</manufacturer>
      <price device="¤">723</price>
   </phone>
</store>

Commentaire de top30 le 29/06/2011 18:40:17

Utilise pas de "tween" si tu ne sais pas.
Moi qund je test le téléphone est chaque fois plus petit !

Commentaire de yasdar le 29/06/2011 20:32:05

pourquoi ça ne marcher pas, essayer de télécharger le ZIP ça marche très bien.
aucun problème avec le fichier XML (en local )
je vais changer le fichier xml ( selon top30 )
peut être que c'est ça le problème ( non fonctionnement enligne)

Commentaire de yasdar le 30/06/2011 00:01:25

j'ai changé le fichier xml pourquoi enligne ca marche pas ?

Commentaire de aerolyte le 30/06/2011 01:23:47

Re
honnetement ta source est un exemple des nombreuses mauvaise pratiques a proscrire.

Voici une légère correction et il reste beaucoup de travail dessus, je t'invite a bien out regarder, i se peut que mes corrections entraine d'autre messages d'alertes, preuves que ton code est très mal construit.


import fl.transitions.*;
import fl.transitions.easing.*;
import fl.transitions.TransitionManager;
import flash.display.MovieClip;
import fl.transitions.Tween;
import flash.display.Sprite;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;

var myxmldata:XML;//faut le sortir de la fonction mon coco
var ballXTween:Tween;
var myTMinfo:TransitionManager=new TransitionManager(infodesc);
var myTMdroite:TransitionManager=new TransitionManager(adroite);
var myTMguache:TransitionManager=new TransitionManager(agauche);
var myXML:String="gallery100.xml";
//j'ai pas touché a tes listes de tableau, mais sans me tromper je pense que tout cette partie est très mal gérée
//tu dois pouvoir inserer toutes les infos dans un array bidimensionnel
var tablienimage:Array=new Array();
var tablienthumbs:Array=new Array();
var tablientitre:Array=new Array();
var tabliendescription:Array=new Array();
var tabprice:Array=new Array();

var c:Number=0;
var nbresimages:Number;
var xspace:Number=125;
var xs:Number=0;
var progkb:String;//faut le sortir de la fonction mon coco
var tkb:String;//faut le sortir de la fonction mon coco

var imagearea:MovieClip=new MovieClip();
var sp:Sprite=new Sprite();
sp.x=(stage.stageWidth/2)-200;
sp.y=(stage.stageHeight/2)-170;
var thumbsarea:MovieClip=new MovieClip();
thumbsarea.buttonMode=true;
var spth:Sprite=new Sprite();
spth.x=20;
spth.y=stage.stageHeight-70;

sp.addChild(imagearea);
addChild(sp);
spth.addChild(thumbsarea);
addChild(spth);

var ds:DropShadowFilter=new DropShadowFilter();
ds.distance=5;
ds.blurX=10;
ds.blurY=10;
ds.alpha=.6;
ds.color=0x000000;

descb.buttonMode=true;
descb.addEventListener(MouseEvent.MOUSE_OVER,showmeinfo);
descb.addEventListener(MouseEvent.MOUSE_OUT,hidemeinfo);

infodesc.visible=false;
adroite.addEventListener(MouseEvent.CLICK,droite);
agauche.addEventListener(MouseEvent.CLICK,gauche);

//un enterframe est a utiliser le moins possible, fuite de memoire assurée
//alors la 2 c'est pas envisageable du tout surtout sans interrupteur
stage.addEventListener(Event.ENTER_FRAME,controle1);
stage.addEventListener(Event.ENTER_FRAME,controle2);

loadmyxml();

function loadmyxml():void{
var lxml:URLLoader=new URLLoader();
var rxml:URLRequest=new URLRequest(myXML);
lxml.addEventListener(Event.COMPLETE,lirexml);//listener doit etre avnt le load
lxml.load(rxml);
}

//il est formellement interdit d'emboiter une fonction dans une autre, je sais meme pas comment tu as réussi a faire marcher a moitié ce code
function lirexml(event:Event):void{
//le removeEventlistener tu connais pas??????
lxml.removeEventListener(Event.COMPLETE,lirexml);
myxmldata=new XML(lxml.data);
myxmldata.ignoreWhitespace=true;
var nbr:Number=myxmldata.info.nbre;
nbresimages=nbr;
//pourquoi instancier des nouvelle variable dans ta boucle, il suffit juste d'attribuer de nouvelles valeurs a chaque rang
var i:int,ch1:String,ch2:String,letitre:String,desc:String,leprix:String;
for(i=0;i<nbr;i++){
ch1=myxmldata.phone[i].image;
ch2=myxmldata.phone[i].thumb;
letitre=myxmldata.phone[i].productName;
desc=myxmldata.phone[i].description;
leprix=myxmldata.phone[i].price;
//idem gestion des tableaux très mauvaise
tablienimage.push(ch1);
tablienthumbs.push(ch2);
tablientitre.push(letitre);
tabliendescription.push(desc);
tabprice.push(leprix);
}
var nn:Number=Math.round(Math.random()*nbr);
var luneimage:Loader=new Loader();
var runeimage:URLRequest=new URLRequest(tablienimage[nn]);
luneimage.contentLoaderInfo.addEventListener(Event.COMPLETE,afficheruneimage);//listener doit etre avnt le load
luneimage.load(runeimage);
loadthumbs();
}

//fautque tu reverifes ta gestion des chargement, pas sur que tu sois le plus performant.
function afficheruneimage(event:Event):void{
//le removeEventlistener tu connais pas??????
event.target.addEventListener(Event.COMPLETE,afficheruneimage);
//idem gestion des tableaux très mauvaise
imagearea.addChild(luneimage);
luneimage.filters=[ds];
titre.text=tablientitre[nn];
description.text=tabliendescription[nn];
price.text=tabprice[nn];
}

// faut pas oublier le "void"
function loadthumbs():void{
var lthumbs:Loader=new Loader();
var rthumbs:URLRequest=new URLRequest(tablienthumbs[c]);
lthumbs.contentLoaderInfo.addEventListener(Event.COMPLETE,afficherlesthumbs);//listener doit etre avnt le load
lthumbs.load(rthumbs);
}

function afficherlesthumbs(event:Event):void{
//le removeEventlistener tu connais pas??????
event.target.addEventListener(Event.COMPLETE,afficherlesthumbs);
var thispic:String=tablienimage[c];
var thistitre:String=tablientitre[c];
var thisdescription:String=tabliendescription[c];
var thisprice:String=tabprice[c];

lthumbs.x=(xs*128);
xs=xs+1;
lthumbs.filters=[ds];
lthumbs.addEventListener(MouseEvent.CLICK,voirimage);
thumbsarea.addChild(lthumbs);
c++;// c'est un petit truc en kdo
if(c<nbresimages){loadthumbs();}else{trace("it'sdone");}
}

function voirimage(event:MouseEvent):void{
titre.text=description.text="";
imagearea.removeChildAt(0);

var llesimages:Loader=new Loader();
var rlesimages:URLRequest=new URLRequest(thispic);
llesimages.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,preloaderprogress);//listener doit etre avnt le load
llesimages.contentLoaderInfo.addEventListener(Event.COMPLETE,chargerimage);//listener doit etre avnt le load
llesimages.load(rlesimages);

//alors la mon coco va falloir faire mieux car ca ne peut que planter
ballXTween=new Tween(lthumbs,"x",Elastic.easeOut,lthumbs.x-10,lthumbs.x,3,true);
}

function preloaderprogress(event:ProgressEvent):void{
progkb=Number(event.bytesLoaded/1024).toFixed(1);
tkb=Number(event.bytesTotal/1024).toFixed(1);
preloader.text="loading"+progkb+" of"+tkb+"please wait";
}

function chargerimage(event:Event):void{
//idem pour le remove
event.target.removeEventListener(ProgressEvent.PROGRESS,preloaderprogress);
event.target.removeEventListener(Event.COMPLETE,chargerimage);
lthumbs.addEventListener(MouseEvent.CLICK,voirimage);
preloader.text="";
infodesc.visible=false;
imagearea.addChild(llesimages);
llesimages.filters=[ds];
var myTM:TransitionManager=new TransitionManager(imagearea);
myTM.startTransition({type:Zoom, direction:Transition.IN, duration:1, easing:Strong.easeOut});
titre.text=thistitre;
description.text=thisdescription;
price.text=thisprice;
}

//meme commentaire que pour ton audioplayer, consulte mon poste
function droite(event:MouseEvent):void{
thumbsarea.x-=128;
myTMdroite.startTransition({type:Fade, duration:1, direction:Transition.OUT})
}

function gauche(event:MouseEvent):void{
thumbsarea.x+=128;
myTMguache.startTransition({type:Fade, duration:1, direction:Transition.OUT})
}

function controle1(event:Event):void{
//je comprend pas ton chmilblik la
if(agauche.hitTestObject(thumbsarea)){
//agauche.visible=true;
}else{
//agauche.visible=false;
thumbsarea.x-=64;
}
}

function controle2(event:Event):void{
if(adroite.hitTestObject(thumbsarea)){
//adroite.visible=true;
}else{
//adroite.visible=false;
thumbsarea.x+=64;
}
}

function showmeinfo(event:MouseEvent):void{
infodesc.visible=true;
myTMinfo.startTransition({type:Wipe, direction:Transition.IN, duration:1, easing:Strong.easeOut, startPoint:1});
info.text=description.text;
}

function hidemeinfo(event:MouseEvent):void{
info.text="";
infodesc.visible=false;
}

Commentaire de top30 le 30/06/2011 12:53:26

C'est sympa ton aide Aerolyte, mais dans tes commentaires tu  dis 2 "bétises":

1/ Il est formellement interdit d'emboiter une fonction dans une autre...
Interdit par qui par quoi ? Si je suis le roi de l'imbrication de fonction dans une autre.
De plus quelque part, les classes sont des fonctions dans des fonctions. L'imbrication de fonction A DES AVANTAGES, certes c'est pas récupérable mais justement...

2/ //le removeEventlistener tu connais pas??????
La suppression de listener n'est absolument pas obligatoire ! Loin de là ! Si est sûr que ton écoute ne contient aucune référence extérieure à son contexte, tu n'est pas obliger de la supprimer.

Tiens je vais te donner un exemple des deux d'un coup !


setDescriptionButton( 0x990000, 0xFF0000 );
//
function setDesciptionButton( $normalColor:uint, $overColor:uint ):void{
   function onMouseOver( $e:Event ):void{
      titleTextField.textColor= $overColor ;
      descTextField.visible= true ;
   }
   function onMouseOut( $e:Event ):void{
      titleTextField.textColor= $normalColor ;
      descTextField.visible= false;
   }
   descButton.addEventListener( MouseEvent.MOUSE_OVER, onMouseOver );
   descButton.addEventListener( MouseEvent.MOUSE_OUT, onMouseOut );
}

Ainsi l'écoute des fonctions onMouseOver et onMouseMove n'est pas supprimable. Et qund le clip parent du code et parent du button sera supprimé, aucun problème...

Et à mon humble avis Yasdar est trés trés newbees pour comprendre quoique ce soit à ton aide.

C'est si simple:
1/ Charger le xml
2/ Créer un clip pour chaque noeud "phone" du XML
3/ Attribuer au clip son noeud lui correspondant
3/ Au click sur le clip, afficher les données du noeud
Pas de tableaux de prix, de chemin, etc... VU QUE TOUT EST DEJA DANS LE XML !!!!

A plus !


Commentaire de yasdar le 30/06/2011 14:23:39

aerolyte essaye de m'expliquer et c'est top30 qui répond, attendez normalement ce site c'est pour aidez les autres"newbees" comme moi.
top30 je sais t le rois du actionscript, mais aussi le rois des insultes, aide moi à savoir mes fautes et à résoudre mes problèmes, enfin je suis la pour ça.
Merci aerolyte je vais essayer de comprendre ton script
top30 merci, mais si tu m'explique par un exemples les étapes:
1/ Charger le xml

2/ Créer un clip pour chaque noeud "phone" du XML

3/ Attribuer au clip son noeud lui correspondant

3/ Au click sur le clip, afficher les données du noeud
Pas de tableaux de prix, de chemin, etc... VU QUE TOUT EST DEJA DANS LE XML !!!!

Commentaire de aerolyte le 30/06/2011 15:13:28

Bonjour top 30

pour te repondre sur l'imbrication de fonction je me base sur la poa

pour ce qui est des removeeventlistener, c'est indispensable de gérer leur nombres.
Quand un event listener est inutile on le supprime. Sinon ton objet ne sera pas elisible pourle GC. Pour ce qui de ton exemple, je ne gére pas de la meme facon que toi les mouseevent.
Dans ce meme soucis de controle du nombre  d'eventlisteners (réduction du nombres de bugs et des besoins en ressources) je n'ai par defaut que le mouseover(pour la gestion souris)
c'est l'action sur le mouse-over qui va liberer les (autres mouse event), à la fin des interactions souris il ne restera que le mouse over.
Voila en quoi l'ecoute du mouse out est tout a fait supprimable.

Je ne doute pas que tu as voulu me taquiner, car si j'ai radicaliser, c'est pour faire simple
'PS: tu vera que je n'ai pas mis de removeeventlistener sur ses mouseevent dans le code
Cordialement

Commentaire de top30 le 30/06/2011 20:54:41

oui je fais aussi beaucoup ceci, créer l'écoute du mouseOut lors du mouseOver. Ce qui semble le plus logique. Et qund je dis suprimable je veux dire que l'écoute est cancelable car tu peux suppremir l¡écoute de la fonction passée. Or dans mon exemple une fois la fonction invoqué les écoutees créé ne sont plus "suprimable"...

J'ai jeté un oeil au "poa" et ce n'est qu'un concept de plus. J'ai déjà bien du mal à suivre les autres concepts !!!

Commentaire de top30 le 01/07/2011 08:00:03

Moi je veux bien t'aider, mais t'est pas obliger de l'enregister en CS5 pour des fonctionnalité qui dépasse pas le CS3. Y a encore des gens en Flash CS3 !!!

Commentaire de vendom le 04/07/2011 20:23:40

il y a régulièrement des gens qui publient des scripts foireux et merdiques !!! Ces gens là n'ont pas compris quelques principes de base de la programmation (ex: rigueur, optimisation, plusieurs tests ...) . Combien de fois faudrait-il dire à ces abrutis qu'il ne faut pas mettre en ligne des bouts de code, tout juste bon à jeter à la poubelle ?

Commentaire de pegase31 le 15/07/2011 03:51:26 administrateur CS

"Combien de fois faudrait-il dire à ces abrutis qu'il ne faut pas mettre en ligne des bouts de code, tout juste bon à jeter à la poubelle ?"

Autant de fois qu'il faudra dire aux imbéciles qui insultent sans raisons qu'ils feraient mieux de respecter les règles du site avant de venir poster tout aussi inutilement des commentaires bon à jeter à la poubelle.

Peg'
Admin Codes-Sources

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

loader et xml [ par yvonig ] Saluch cha tous !j'ai fait un site quji marche pes mal, en flash dynamique, gallerie photo xml(panda gallerie), et livre d'or xlm, que j'ai aussi trou loader XML / flash [ par bartoun ] Bonjour, Je cherche a mettre en place un module comme celui ci (tres bien fait d'ailleurs avec les sources commentées...tres interessant) J'ai tout m galerie xml/bdd/composant scrollpane [ par jahrom1 ] bonjour j'ai un pbm, je charge dans une gallerie xml des images venant d'une bdd mais pour que cette galerie  rentre dans ma page je voudrai la rendre Problème affichage dans gallerie xml [ par geraldinechx ] Bonjour,Avis aux experts du xml, j'ai une petite question &#224; vous poser. J'ai construit une petite galerie xml que j'ai plac&#233; dans une animat Gallerie xml dans flash? [ par skarladav ] Bonjour à tous.Voilà, je suis un newbie en flash, j'ai donc réalisé le nouveau site de mon groupe en flash.-&gt; www.sillysnails.beLe problème XML et flash [ par Orange73 ] Hello :)J'ai une anim flash en 3 parties....Je souhaiterai loader un xml pour chaque partie...1 partie = un 3 MC sur frames différentes sur le _rootDa xml + class tween [ par tolbiak ] bonjour,je n'ai pas un profile de développeur; je touche un peu les class je cherche desesperement un flash en xml et class tween pour mon portfolio.. Loader de XML [ par Orange73 ] Hello,Je souhaiterai savoir si quuelqu'un connait un script pour loader différents xml avec un seul load xml genre : monXML.load(uneVariable);uneVaria Preload XML + SWF [ par Orange73 ] Hello,voila, j'ai une fonction qui me permet de loader un swf externe via MovieClipLoader...Mais ce swf externe a son propre xml ... donc je souhaiter XML Loader Class ou Non ? [ par Orange73 ] Hello,En faisant des recherche je suis tombé sur une Class pour loader plusieurs XML dans la meme anim flash : http://www.pixel2life.com/forums/index.


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales