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

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

Afficher progressivement des clips


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

Afficher progressivement des clips

vendredi 26 mars 2010 à 10:19:11 | Afficher progressivement des clips

FRH

Membre Club
Flash CS4 / AS3.

Bonjour,

Je charge dans un tableau des cartes de visites (clip CarteVisite) généré après lecture d'un fichier XML. je désire afficher ces cartes sur deux colonnes. Je voudrais que chaque carte de visite apparaisse progressivement à l'écran (en jouant sur l'alpha du clip de 0 à 1, durée de l'apparition : 1s (soit 24 images)).

Code ActionScript :
stop();

//Déclaration des variables
var chargeurURL:URLLoader;
var requete:URLRequest;
var visiteurs:XML;
var lesCartes:Array = new Array();
var time:Timer = new Timer(500,0);
var compteur:uint = 0;

//Emplacement de départ des cartes de visite
var startP:Point = new Point(20,130);
var pasP:Point = new Point(6,15);

//*****************************************************************************
//Chargement du fichier de données et mise en place de l'écouteur de chargement
//*****************************************************************************
//Emplacement du fichier de données
requete = new URLRequest("visiteurs.xml");

chargeurURL = new URLLoader();
chargeurURL.addEventListener(Event.COMPLETE,donneesChargees);
chargeurURL.addEventListener(IOErrorEvent.IO_ERROR,erreurChargementDonnees);

time.addEventListener(TimerEvent.TIMER, nouvelleCarte);

chargeurURL.load(requete);

//Déclaration des écouteurs pour le chargeur
function erreurChargementDonnees(e:Event):void
{
	trace("erreur de chargement");
}

function donneesChargees(e:Event):void
{
	visiteurs = new XML(chargeurURL.data);
	visiteurs.ignoreWhitespace = true;

	chargerCartes();
	
	time.start();
}

function chargerCartes():void
{
	//Créer les cartes de visites et les ajoute à la liste lesCartes
	var newCarte:CarteVisite;
	var visiteur:XMLList;

	for (var i:uint=0; i<visiteurs.children().length(); i++)
	{
		//Création d'une carte de visite
		newCarte = new CarteVisite();

		//Récupère les données du visiteur
		visiteur = visiteurs.child(i);

		//Affecte les données à la carte de visite
		newCarte.txtNom.text = String(visiteur.@Nom).toUpperCase() + " " + String(visiteur. @ prenom).toLowerCase();
		newCarte.txtSociete.text = visiteur.@societe;
		newCarte.txtFonction.text = visiteur.@fonction;

		//Ajoute la carte de visite à la liste
		lesCartes.push(newCarte);
	}
}

function nouvelleCarte(e:Event):void
{
	time.stop();
	if (compteur < lesCartes.length)
	{
		afficherCartes(compteur);
		compteur++;
		time.start();
	}
}

function afficherCartes(i:uint):void
{
	//Défini la position de la carte
	var laCarte:CarteVisite;

	laCarte = lesCartes[i];
	//laCarte.scaleX=1;
	//laCarte.scaleY=1;
	laCarte.x = startP.x + (i%2) * (laCarte.width + pasP.x) ;
	laCarte.y = startP.y + int(i/2) * (laCarte.height+ pasP.y);
	laCarte.alpha = 1;

	addChild(laCarte);
	apparitionCarte(laCarte);

}

Pour l'effet d'apparition, j'ai tenté d'utiliser la classe AnimatorFactory et MotionBase, mais le résultat n'est pas convainquant, les fondus semblant apparaitre en boucle "désynchronisée", bref, pas génial.
Code ActionScript :
function apparitionCarte(target:MovieClip):void
{
	import fl.motion.AnimatorFactory;
	import fl.motion.MotionBase;
	import flash.filters.*;
	import flash.geom.Point;

	var mov_apparaitre:MotionBase;

	if (mov_apparaitre == null)
	{
		import fl.motion.Motion;
		mov_apparaitre = new Motion();
		mov_apparaitre.duration = 24;
		mov_apparaitre.overrideTargetTransform();
		mov_apparaitre.addPropertyArray("alphaMultiplier", [0.000000,0.043478,0.086956,0.130435,0.173913,0.217391,0.260869,0.304348,0.347826,0.391304,0.434782,0.478261,0.521739,0.565217,0.608695,0.652174,0.695652,0.739130,0.782609,0.826087,0.869565,0.913043,0.956522,1.000000]);
		var af_apparaitre:AnimatorFactory = new AnimatorFactory(mov_apparaitre);
		af_apparaitre.addTarget(target,1);
	}

}


Auriez-vous une astuce pour résoudre mon problème ?

Tant que j'y suis, est-il possible de spécifier sur quel calque de mon animation je veux charger mes Cartes. Si j'ai créé un Calque "Les cartes", comment indiquer addChild que celles-ci doivent se charger sur le calque "Les cartes" ?
-----------------
PsychO
vendredi 26 mars 2010 à 10:30:34 | Re : Afficher progressivement des clips

Orange73

Membre Club
Hello,

Pour l'apparition en fondu, utilise plutôt les Tweens, soit avec les classe native de Flash, soit avec la classe TweenLite ou TweenMax. Les Tweens native devraient suffire.

Sinon, pour tu ne peut pas spécifier de calques pour les addChild.

A+

-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
vendredi 26 mars 2010 à 10:44:31 | Re : Afficher progressivement des clips

FRH

Membre Club

Fabuleux ces Tween!
C'est la première fois que j'en utilise, et ça fonctionne parfaitement!

Code ActionScript :
function apparitionCarte(target:MovieClip):void
{
	import fl.transitions.*;
	import fl.transitions.easing.*; 
	var effetAlpha:Tween = new Tween(target,"alpha",Regular.easeInOut,0,1,24);


}


Merci pour l'astuce, et je suis preneur pour toute astuce quant à leur utilisation!

-----------------
PsychO


Cette discussion est classée dans : apparaitre, var, visiteur, cartes, lacarte


Répondre à ce message

Sujets en rapport avec ce message

Faire apparaitre des texte aléatoirement [ par VooDooS ] Il s'agit vraiment d'un truc basique, mais que je ne parvient pas à réaliser, et ce même avec maintes recherches googliennes... Je veux faire apparai diaporama [ par nackdawa ] Bonjour,J'ai recupéré une source ici, qui est un diaporama avec un fichier xml.Ce diaporama marche niquel, mais comme j'importe ce diaporama (fichier [F8] action sur évènements [ par cefar ] Bonjour à tous et toutes,J'ai un soucis avec les écouteurs sur des composants.Voici mon code de mon fichier.as :import mx.controls.RadioButton;import appel javascript dans 1 clip dans 1 swf [ par victormelba ] Bonjour ce script marche très bien lorsque les boutons sont directement sur le swf. Mais quand j'essaie de mettre les boutons dans un clip (menu par problemes de codes AS2 [ par alexgr ] J'ai acheté un site mais il a qque petit problemes: voici le code complet et tout en dessous se trouve les messages d'erreurs, comme l'aide est en ang generer un movie clip à partir de plusieurs jpg [ par fixeurman ] Bonjour , comment faire pour générer un mc à partir d' une liste de noms d'images ? (elles font toutes moins de 10ko) dois-je faire une boucle avec u probleme de code [ par ghostkill77 ] Bonjour a tout le monde, en fait j'ai un souci avec mon codevar largeur:Number = Stage.width ;var hauteur:Number = Stage.height ;var btnJouer:MovieCli arrêt de déplacement d'un clip et explication de code [ par _tony ] Bonjour,Jeune Padawan de Flash j'ai quelques question à vous poser, concernant ce test:test-navig.swfAlors voilà trois qu swf externe omniprésent.... [ par nicodogs ] bonjour à tous,J'ai un soucis avec un swf externe... dans mon anim principale, je charge un swf externe. tout se passe bien (préload % + anim) mais le Animation lente a cause d'un effet de texte [ par Hercule_Babeuf ] Bonjour,J'ai codé une fonction permettant d'afficher un texte  en y appliquant des effets puis de l'animer (effet de vague) La fonction prend en entré


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,811 sec (4)

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