Gallerie photo avec xml

Soyez le premier à donner votre avis sur cette source.

Vue 9 228 fois - Téléchargée 1 287 fois

Description

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 / Exemple :

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 ?

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
8
"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
Messages postés
1
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
4 juillet 2011

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 ?
Messages postés
1158
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
6 août 2010

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 !!!
Messages postés
1158
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
6 août 2010

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 !!!
Messages postés
465
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
4 mai 2013
1
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
Afficher les 19 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.