begin process at 2012 05 26 15:59:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Base de données

 > 

XML

 > 

AS3 Supprimer une fonction via intéraction de la timeline


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

AS3 Supprimer une fonction via intéraction de la timeline

lundi 2 mai 2011 à 11:36:29 | AS3 Supprimer une fonction via intéraction de la timeline

dieudesdieu

Salut a tous!

Bon alors voila je viens car j'ai un script que je n'arrive pas à arrêter.
C'est un visualisateur d'image que je voudrais mettre sur une image de ma timeline avec un contenu différent.
Le problème c'est que j'arrive à le charger mais quand je clique sur mes boutons le suivant se charge aussi, mais par dessus l'autre et impossible de faire que le premier disparaisse.

J'ai essayé avec removeEventListener et avec un ecouteur (currentFrame) mais c'est pas folichons puisque ca ne fait rien...

Code ActionScript :
//ce type d'interaction je l'avais trouvé sur un site mais je ne retrouve plus. Bien entendu j'ai eu pas mal de choses à adapté pour mon site.

import flash.net.URLLoader;
import flash.net.URLRequest;
import fl.containers.UILoader;
import fl.controls.ProgressBar;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
import flash.events.*;
import flash.text.*;
import flash.filters.*;



if(currentFrame == 18) {


var dossierImage:String = 'images/';// On déclare les variable du dossier images...
var dossierImageMini:String = 'images/min/';//... Et des miniatures


var chargeur:URLLoader = new URLLoader ();//On crée une varaiable qui vas charger notre fichier xml
var adresse:URLRequest = new URLRequest("galerie.xml");//Voila le fichier

chargeur.load(adresse);//On charge le fichier
chargeur.addEventListener(Event.COMPLETE, finDuChargementXML);// Quand le téléchargement est fini on initialise la fonction finDuChargementXML

var alt:String;// On initialise la variable qui contient un texte

var formatTitre:TextFormat = new TextFormat  ;//On définit le style de notre texte pour les titres
formatTitre.color = 0xFFFFFF;
formatTitre.size = 17;
formatTitre.font = 'Orator Std';
formatTitre.align = 'center';

var texteAlt:TextField = new TextField();//On place le texte alternatif
texteAlt.text = '';//On incrémente la variable du texte de rien pour l'instant
texteAlt.x = 625;
texteAlt.y = 765;
texteAlt.width = 400;
this.addChild(texteAlt);//On ajoute le texte alternatif


var chargement:TextField = new TextField();//On initialise la variable de chargement
this.addChild(chargement);//Et on l'ajoute

function finDuChargementXML(evt:Event):void//On déclenche la réaction pour quand notre fichier xml est chargé
{
	var monXML:XML = new XML(evt.target.data);// On initialise le fichier xml
	var photoPrincipale:UILoader = new UILoader();// On crée un objet de la classe UILoader pour qu'il contienne notre grande image
	photoPrincipale.source = dossierImage + monXML.image[1].attribute("src");
	/*Pour pouvoir charger toutes les images du fichier on décris la source du fichier
	en ciblant le dossier image plus haut, puis notre xml, et enfin la premiere
	image de la premiere ligne de notre fichier xml.
	*/
	
	photoPrincipale.x = 375;
	photoPrincipale.y = 175;
	photoPrincipale.scaleContent = false;//On ne n'adapte pas le contenu afin d'être sur que je doive adapté mes photo en amont et ainsi optimiser leurs chargements

	var translation:Array = [photoPrincipale.x,photoPrincipale.x + 30]; //On initialise le tableau en ajoutant 30 pixel à la premiere photo.

	var select:String;// On prépare une variable à recevoir une image


	texteAlt.text = monXML.image[1].attribute("alt");// De la meme facon qu'on à recupérer l'image, on récupère le texte
	texteAlt.setTextFormat(formatTitre);// On applique la police etc au titre

	this.addChild(photoPrincipale);// On affiche le loader

	for (var i:String in monXML.image)// Maitenant on s'occupe des miniatures
	{
		var uil:UILoader = new UILoader();
		uil.source = dossierImageMini + monXML.image[i].attribute("src");
		uil.buttonMode = true;// On déclare que ce sont des boutons
		uil.name = i;//On leurs donne une lettre pour pouvoir toutes les charger par la suite
		uil.x = 75;
		uil.y = 175;
		uil.y += int((int(i)/3))*90;// On les places avec les écarts necessaires 
		if (int(i) % 3 != 0)
		{
			uil.x += (int(i)%3)*90;
		}

		uil.width = uil.height = 70; // comme on à des carrés c'est plus facile
		uil.alpha = 0.5;//on baisse leur opacité de moitié
		uil.scaleContent = true;// On peut se permettre un sacleContent car de toute facon on doit les cropper en carré
		uil.autoLoad = true;// et on les charges tout de suite

		uil.addEventListener(MouseEvent.CLICK,clicImage);
		uil.addEventListener(MouseEvent.MOUSE_OVER,overImage);
		uil.addEventListener(MouseEvent.MOUSE_OUT,outImage);
		this.addChild(uil);
	}

	function clicImage(e:Event):void
	{
		
		if (select == monXML.image[e.currentTarget.name].attribute("src"))
		{
			return;// si on clique sur l'image que l'on utilise il ne se passe rien
		}

		select = monXML.image[e.currentTarget.name].attribute("src"); //on incrémente nos variables
		alt = monXML.image[e.currentTarget.name].attribute("alt"); //Idem


		var myTweentText:Tween = new Tween(texteAlt,"alpha",Strong.easeOut,1,0,1,true);// on utilise la classetweens pour que ca soit SULBIME... 
		/*Pour les tweens on à dabord l'objet sur lequel on veut agir, sur quel parametre on agit,
		ensuite le "easing" CF: tt en haut, ensuite on dis d'ou il part et ou il arrive.
		Ici il passe de visible à invisible. Et enfin la durée (en seconde)*/
		
		var myTweenA:Tween = new Tween(photoPrincipale,"alpha",Strong.easeOut,1,0,1,true);
		var myTweenPPW:Tween = new Tween(photoPrincipale,"x",Strong.easeIn,translation[0],translation[1],1,true);
		var myTweenPPA:Tween = new Tween(photoPrincipale,"alpha",Strong.easeIn,1,0,1,true);
		myTweenA.addEventListener(TweenEvent.MOTION_FINISH, changeImage);

	}

	function changeImage(e:Event):void//On s'attaque au changement d'image
	{
		photoPrincipale.source = dossierImage + select;// On reprend donc la variable select en fonction de là ou on clique
		texteAlt.text = alt;//pareil pour le texte
		texteAlt.setTextFormat(formatTitre);//et on applique le texte

		var myTweenPPA2:Tween = new Tween(photoPrincipale,"alpha",Strong.easeOut,0,1,1,true);//pour la photo toujours les tweens
		var myTweenPPW2:Tween = new Tween(photoPrincipale,"x",Strong.easeOut,translation[1],translation[0],1,true);
		var myTweentText2:Tween = new Tween(texteAlt,"alpha",Strong.easeOut,0,1,1,true);
	}

	function overImage(e:Event):void//maintenant pour que ca soit encore plus joli on vas changer l'effet au RollOver
	{
		var monOmbre:DropShadowFilter = new DropShadowFilter();//avec une ombre
		monOmbre.distance = 3;
		monOmbre.color = 0xAAAAAA;
		monOmbre.blurX = 5;
		monOmbre.blurY = 5;
		monOmbre.quality = 3;
		e.currentTarget.filters = [monOmbre];//qu'on applique...
		
		var myTweenMA2:Tween = new Tween(e.currentTarget,"alpha",Strong.easeOut,0.5,1,1,true);//....joliement
		var myTweenMW2:Tween = new Tween(e.currentTarget,"width",Elastic.easeOut,e.currentTarget.width,75,1,true);
		var myTweenMH2:Tween = new Tween(e.currentTarget,"height",Elastic.easeOut,e.currentTarget.height,75,1,true);
	}

	function outImage(e:Event):void//Quand on sors du survol
	{
		var monOmbre:DropShadowFilter = new DropShadowFilter();
		monOmbre.distance = 0;
		monOmbre.color = 0x888888;
		monOmbre.blurX = 0;
		monOmbre.blurY = 0;
		monOmbre.quality = 3;
		e.currentTarget.filters = [monOmbre];
		var myTweenMA:Tween = new Tween(e.currentTarget,"alpha",Strong.easeOut,1,0.5,1,true);
		var myTweenMW:Tween = new Tween(e.currentTarget,"width",Elastic.easeOut,e.currentTarget.width,70,1,true);
		var myTweenMH:Tween = new Tween(e.currentTarget,"height",Elastic.easeOut,e.currentTarget.height,70,1,true);
	}
}
}
else {
	chargeur.removeEventListener(Event.COMPLETE, finDuChargementXML);
}




Voila donc si quelqu'un pouvais me donner un petit coup de main. Je suis sur que c'est facile mais impossible d'arriver à passer ce problème!!!

Merci beaucoup
jeudi 5 mai 2011 à 06:32:56 | Re : AS3 Supprimer une fonction via intéraction de la timeline

BBFUNK01

Hello,

à mon avis tu n'envisages pas la bonne méthode : plutôt que de placer ce même script sur différentes images clés, tu aurais à mon avis meilleur compte de ne le placer que sur une seule image clé (programmation procédurale), ainsi tu auras une fonction à créer pour gérer le changement d'album et faire les removeChild qui vont bien pour initialiser l'affichage de ton nouvel album. Dans cette optique tu peux envisager de n'avoir qu'un seul fichier .xml, qu'un seul dossier où sont rangées tes images (avec d'éventuels sous-dossiers), donc une plus grande souplesse quand à la maintenance.

A plus ,

BBFUNK01

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

musichrono
jeudi 5 mai 2011 à 10:16:47 | Re : AS3 Supprimer une fonction via intéraction de la timeline

dieudesdieu

effectivement maintenant que tu le dis ca me semble un peu plus judicieux...
Même si je maitrise surement pas encore assez ca m'apprendra bien :)

Merci pour ta réponse!


Cette discussion est classée dans : image, var, tween, true, uil


Répondre à ce message

Sujets en rapport avec ce message

Récupérer width d'un MovieClip dynamique [ par HekThor ] Bonjour !Je poste ici pour relancer un petit problème sur lequel je bloquais et que je suis sur le point de résoudre.Je cherche en fait à récupérer la Problème tween sous AS3 [ par biguiz ] Bonjour à tous et à toutes, Je cherche des solutions sur le web depuis un moment déjà mais sans réponses. Voici mon problème : je crée un cdrom dans l Problème de gestion d'un fichier xml dans un site [ par ximeng ] Bonsoir ! Je suis débutant en AS, je n'utilise jamais le xml et j'ai intégré un code dans mon site qui me rend un peu fou depuis quelques jour, j'ai t Probleme chargement image [ par jobe06 ] Bonjour, J'ai créer une animation en flash avec une fonction qui fait apparaitre l'image charger avec une transition et du texte... Jaimerai que te carrousel et appel aléatoire [ par seth1 ] Bonjour à tous et à toutes,je réalise actuellement un carrousel (vous savez, ces menus rotatifs) en flash et as2 avec appel XML.Ce dernier fonctionne probleme entre 2 movieClipLoader et 1 onEnterFrame [ par Flothi27 ] Mon code permet d'afficher des images avec un effet de fondu mais seulle la première image est jouée.Voici mon code :importmx.transitions.Tween;<font repositionné movieclip [ par nicodogs ] Bonjour à tous,Il y a quelques jours Girou m'avais donné un bon coup de main pour mon animation style "caroussel", l'anim marche très bien. Mais j'ai Galerie xml attachmovie [ par ceddeg ] bonjour à tous,Je débute en flash (ceci explique surement cela).Pour la création de mon futur site, j'ai emprunter le code  suivant :Image 1 :this.gal Utilisation des boucles ? [ par fanatikx ] Bonjour, Voila, j'ai un petit soucis au niveau des boucles. Disons que j'ai 2 clip sur ma scène qui contiennent chacuns une image. Je veux que lorsque reorganisation automatique de clip [ par fanatikx ] Bonjour,voila je travail en ce moment sur la création d'un site internet qui contient plusieurs images/vignette (30px par 30). Ces images peuvent être


Nos sponsors


Sondage...

Comparez les prix

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,374 sec (3)

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