begin process at 2012 05 27 19:41:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

Problème d'arguments de fonction et de boucle en AS3


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

Problème d'arguments de fonction et de boucle en AS3

mardi 29 décembre 2009 à 22:52:08 | Problème d'arguments de fonction et de boucle en AS3

mzelleflash

Bonsoir à tous!
Voilà plusieurs jours que je me creuse la tête sur ce petit problème... Peut-être quelqu'un pourra-t-il m'aider?

Voici mon code:
Code ActionScript :
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFieldAutoSize;
import fl.transitions.Tween;
import fl.transitions.easing.*;

var list:Array=["A","B","C","D","E","F","G","H","I","J","K","L","M"];
var txt:Array=[];

for (var i:uint = 0; i<list.length; i++) {
	var rX:Number=Math.random()*stage.stageWidth/1.2;
	var rY:Number=Math.random()*stage.stageHeight/1.2;
 
	txt[i]=creationmots(Math.round(Math.random()*72),list[i]);
	addChild(txt[i]);
 
	//Position initiale du champ de texte
	txt[i].x=Math.random()*stage.stageWidth;
	txt[i].y=Math.random()*stage.stageHeight;
 
	//Propriétés de la fonction movemt
	var tmps:Number=Math.random()*6;
	movemt(txt[i], tmps, rX, rY);
	
	//Propriétés de la fonction transp
	var transpa:Number=(Math.floor(Math.random()*100))/100;
	var transpa2:Number=(Math.floor(Math.random()*100))/400;
	transp(txt[i],tmps,transpa,transpa2);

	
}

function creationmots(taille:uint, mot:String):TextField {
	//Champ de texte
	var montexte:TextField = new TextField();
	montexte.autoSize=TextFieldAutoSize.LEFT;
	montexte.selectable=false;
	


	//Mise en forme du texte
	var format:TextFormat=new TextFormat();
	format.font="Arial";
	format.size=taille;
	format.color=0xFF33CC;

	

	montexte.defaultTextFormat=format;
	//Contenu du champ de texte en fonction du contenu du tableau list
	montexte.text=mot;
	montexte.blendMode=BlendMode.LAYER;
	//montexte.alpha=alea;
	return montexte;
}


//Mouvement des champs de texte
function movemt(target:TextField, duree:Number, posx:uint, posy:uint):void {
	new Tween(target,"x",Elastic.easeOut,target.x,posx,duree,true);
	new Tween(target,"y",Elastic.easeOut,target.y,posy,duree,true);
}

//transparence des champs de texte
function transp(target1:TextField, duree:Number, tralu:Number, tralu2:Number):void{
	new Tween (target1,"alpha",Strong.easeIn,tralu2,tralu,duree,true);
}


Mon problème c'est que maintenant je voudrais ajouter un écouteur d'événement sur la scène (jusque là, pas de problème), et quand on clique, ça relance ma fonction movemt et ma fonction transp, donc les lettres se remettent à bouger. J'ai tout essayé, je ne vois pas comment mettre mon e:MouseEvent dans mes deux fonctions, et si je crée une fonction qui englobe ces deux fonctions, évidemment mes paramètres, définis dans la boucle ne sont plus reconnus...
Et si je mets mes variables en dehors de la boucle, j'ai toujours un problème pour appliquer mes tweens aux txt[i]... :(

Je ne sais plus quoi faire!

Quelqu'un a-t-il une idée?

J'espère avoir été claire...
Merci de votre aide ;)

M'zelle Flash
mercredi 30 décembre 2009 à 09:09:50 | Re : Problème d'arguments de fonction et de boucle en AS3

pegase31

Membre Club Administrateur CodeS-SourceS
Bonjour,

il suffit de stocker les données de chaque lettre dans un objet que tu placeras dans un nouveau tableau, puis d'exécuter tes deux fonction avec ces propriétés.

Peg'
mercredi 30 décembre 2009 à 09:22:16 | Re : Problème d'arguments de fonction et de boucle en AS3

mzelleflash

Merci de ta réponse Pégase.
J'ai bien pensé à créer des objets avec mes lettres mais je ne sais pas trop comment m'y prendre... (c'est ce qui arrive quand on délaisse l'AS3 pendant un moment...)

Est-ce que tu pourrais illustrer ta solution avec un petit bout de code?

ça serait vraiment gentil...

Merci encore pour ta réponse.

M'zelle Flash
mercredi 30 décembre 2009 à 21:56:35 | Re : Problème d'arguments de fonction et de boucle en AS3

pegase31

Membre Club Administrateur CodeS-SourceS
un objet contient des variables, donc place tes variables dans un objet que tu place lui-même dans un array ou un Vector.<Object>.

C'est basique.

Peg'
jeudi 31 décembre 2009 à 15:46:05 | Re : Problème d'arguments de fonction et de boucle en AS3

mzelleflash

Euh...
Je n'ai jamais utilisé de classe Object encore (chacun ses méthodes), et j'avoue que je patauge complètement.
J'ai tourné en rond sur Flash toute la nuit, rien à faire. Il y a toujours des erreurs de sortie.
Vraiment, un petit bout de code serait le bienvenu pour illustrer (même s'il n'a pas de rapport direct avec mon problème, c'est juste pour comprendre le principe), parce que celui de la doc Adobe est trop complexe pour moi... Désolée.

Et merci encore de ton aide Peg'

M'zelle flash
vendredi 1 janvier 2010 à 03:24:02 | Re : Problème d'arguments de fonction et de boucle en AS3

pegase31

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
var tableau:Array = new Array();
var monObject:Object = {variable1:128, variable2:"toto"}
tableau.push(monObject);
trace(tableau[0].variable1); //128
trace(tableau[0].variable2); //toto

voilà, rien de plus simple.
Bonne année 2010

Peg'
vendredi 1 janvier 2010 à 10:19:36 | Re : Problème d'arguments de fonction et de boucle en AS3

mzelleflash

Euh... J'avais demandé la science infuse en AS3 comme cadeau de Noël, mais apparemment ma commande s'est égarée en route...

Voilà ce que j'ai refait:
Code ActionScript :
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFieldAutoSize;
import fl.transitions.Tween;
import fl.transitions.easing.*;


addEventListener(Event.ENTER_FRAME, movemt);
addEventListener(Event.ENTER_FRAME, transp);

var list:Array=["A","B","C","D","E","F","G","H","I","J","K","L","M"];
var txt:Array=[];
var posx:Number=Math.random()*stage.stageWidth/1.2;
var posy:Number=Math.random()*stage.stageHeight/1.2;
var duree:Number=Math.random()*6;
var transpa:Number=(Math.floor(Math.random()*100))/100;
var transpa2:Number=(Math.floor(Math.random()*100))/400;

for (var i:uint = 0; i<list.length; i++) {
	
 
	txt[i]=creationmots(12+Math.round(Math.random()*60),list[i]);
	addChild(txt[i]);
	
 
	//Position initiale du champ de texte
	txt[i].x=Math.random()*stage.stageWidth;
	txt[i].y=Math.random()*stage.stageHeight;
	

	
	var target:Array= new Array();
	var contenu:Object={cible:txt[i]};
	target.push(contenu);
	
}



function creationmots(taille:uint, mot:String):TextField {
	//Champ de texte
	var montexte:TextField = new TextField();
	montexte.autoSize=TextFieldAutoSize.LEFT;
	montexte.selectable=false;
	


	//Mise en forme du texte
	var format:TextFormat=new TextFormat();
	format.font="Arial";
	format.size=taille;
	format.color=0xFF33CC;

	

	montexte.defaultTextFormat=format;
	//Contenu du champ de texte en fonction du contenu du tableau list
	montexte.text=mot;
	montexte.blendMode=BlendMode.LAYER;
	//montexte.alpha=alea;
	return montexte;
}




for (var k:uint=0; k<target.length; k++){
	//trace(target[k].cible);
	
	//Mouvement des champs de texte
function movemt(e:Event):void {
	new Tween(target[k].cible,"x",Elastic.easeOut,target[k].cible.x,posx,duree,true);
	new Tween(target[k].cible,"y",Elastic.easeOut,target[k].cible.y,posy,duree,true);
}

//transparence des champs de texte
function transp(e:Event):void{
	new Tween (target[k].cible,"alpha",Strong.easeIn,transpa2,transpa,duree,true);
}
}


Mais ça ne marche toujours pas... c'est vraiment le fait d'appliquer le Tween aux champs de texte txt[i] qui me pose problème...

Bonne Année à toi aussi.
Et merci encore Peg' !

M'zelle Flash
vendredi 1 janvier 2010 à 10:46:27 | Re : Problème d'arguments de fonction et de boucle en AS3

mzelleflash

Ce que je ne comprends pas, c'est que quand je fais un
Code ActionScript :
 trace(contenu.cible)
(contenu étant mon Object et cible ma variable avec mes txt[i])en sortie, j'ai bien [object TextField] qui apparait 13 fois de suite; mais quand je fais
Code ActionScript :
trace (target.length);
Il me dit que la longueur du tableau est de 1, donc il n'a pas stocké mes différents txt[i] ???

Je l'avoue, là, je suis perplexe...

M'zelle Flash
vendredi 1 janvier 2010 à 16:21:53 | Re : Problème d'arguments de fonction et de boucle en AS3

mzelleflash

C'est bon! J'ai trouvé!
Il suffisait que je remette une boucle dans ma fonction.
Rien de plus simple, en effet

En tout cas, merci encore pour ton coup de pouce Peg'. Tout marche comme je veux maintenant.

M'zelle Flash


Cette discussion est classée dans : fonction, txt, var, math, number


Répondre à ce message

Sujets en rapport avec ce message

movie clip [ par nahlaone ] Bonjour,Je déboute en action script et j'avoue que je nage un peu !!!!Alors voila j'ai recupere une super source pour un menu en caroussel. Le problem stopper un carrousel sur un angle prédéfini [ par neuronezero ] Alors voilà mon problème...J'ai fais un carrousel tout simple en AS2, mais je désirerais faire en sorte que quand je clik sur l'un des objets le carro probleme lien vers chaque image du swf [ par micking ] j'ai un problème mon SWF contient plusieurs image je suis enfin arrivé a rendre les images redirigeables mais sous le même lien cela m'embête!!! car j Carrousel en as2 [ par dwah6767 ] Hello les Flasheurs ;) Bon, je post pour la première fois je vais donc faire une présentation rapide, Sonderer Axel 24 ans, issus des beaux arts + é ajouter un clip qui pointe vers le centre de la scène [ par alxanimation ] Je suis un peu nul avec l'AS2. Ma scène à 5 boutons qui tournent autour d'un movie clip central. Quand le curseur passe au dessus d'un bouton, je voud pb positionnement [ par nicodogs ] Bonjour à tous, J'aimerais avoir vos lumières car je suis un peu perdu. J'ai une galerie style slideshow et j'ai quelques pb pour la paramètrer. Ce probleme avec une fonction et les occurences [ par PetiteNonne ] Bonjour, j'ai un problème avec une fonction que je suis en train de concevoir La fonction est placée dans un calque(action2) sur un symbole graphiqu boucle for et instanciation dynamique as3 [ par Ariranha ] Bonjour, Je souhaite rajouter par l'intermédiaire d'une boucle for des copies d'un MovieClip que se situe dans la bibliothèque. En as2 j'aurais fait Flash sous IE.... soucis !! [ par Inccube ] Bonjour à tous ! J'ai créé un fichier Flash pour la présentation de quelques produits. Il se lit tranquillement sous Mozilla et l'ensemble des naviga faire une espece de slide interactive [ par djmcphylo ] Bonjour, je suis un étudiant en informatique réseau multimedia je réalise en ce moment une animation flash comme celle de www.mels.gouv.qc.ca mais je


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

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