Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS1/AS2
AS1/AS2 Questions relatives à la programmation ActionScript 1 et 2 (Cours AS2)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/12/2006, 18h01   #1
Invité de passage
 
Inscription : décembre 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 21
Points : 2
Points : 2
Par défaut prob avec timeline.currentframe

bonjour,
voila, j'aimerai recuperer un bout de clip avec un bouton et le le rejouer.
donc j'ai mon scénario et sur la 1ere image d'un calque1, mon clip imbriqué : rotation (interpolation de mouvement de rotation toute bete de 137 images(base 0))
j'y ai mis un rollover qui le fait stopper et apparaitre un menu de boutons (situés sur un autre calque). Ceux ci (avant autre chose) devraient aller renifler la position de la tete de lecture sur mon clip rotation pour, a partir de cet endroit en jouer un bout afin de lamener sur l'image que je souhaite.

Pour l'instant j'essaie juste de voir si la commande de "reniflage" fonctionne et d'avoir en sortie la position de la tete de lecture sur mon clip rotation.

les conditions (if, else if et else) me permettent de savoir l'intervalle d'arret de la tete pour apres lui donner le sens et son futur point darret.

j'ai placé sur la 1ére image de rotation, ;

Code :
var curframe:Number = 0;
puis sur le 1er bouton;

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
on (release){
var curframe:Number = _root.rotation.getTimeline().currentFrame;
             if (0 < curframe < 17){
		trace(curframe);
		trace("1");
	} else if (18 < curframe < 52){
		trace(curframe);
		trace("2");
	} else if (curframe == 52){
		trace("52");
	} else if (53 < curframe < 85){
		trace("3");
	} else if (86 < curframe < 120){
		trace("4");
	} else if (curframe == 120){
		trace("120");
	} else (121 < curframe  < 136){
		trace("5");
};
}
Mais la, les trace ne me renvoient rien en sortie
Alors je me demande si le chemin pour la variable est bien nommé, si c'est elle qui est mal formulée, ou si ma structures de conditions est bien tournée pour etre remarquée.
Je sais que certaines conditions peuvent etre reunies, mais je débute et je ne connais pas tous les opérateurs.
Merci d'avance, car c pas marrant de passer 1 journée sur chaque petit soucis qui une fois compris prennent 2 min :/
freecs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2006, 07h27   #2
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
bonjour,

déjà à priori tu as une erreur à la fin de ton algo :
Code :
1
2
 
else (121 < curframe < 136){
il manque un if
Code :
1
2
else if (121 < curframe < 136){
et puis curframe n'est pas défini alors ça peut pas marcher...

Le plus simple est d'envoyer le source ce sera plus facile pour nous...
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2006, 17h06   #3
Invité de passage
 
Inscription : décembre 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 21
Points : 2
Points : 2
Par défaut rien, meme en redefinissant la timeline active

merci, par contre je ne peux pas ajouter le fla, car meme en supprimant tous les trucs inutiles pour ce probleme, j'arrive à 580ko, et le site me dit que j'ai dépassé mon quota de 79, alors que la limite est de 1mo :/

j'ai corrigé mon oubli (if). Sinon suite à ta remarque, j'ai potassé l'aide de flash, et j'ai donc vu qu'il fallait redéfinir la timeline actuelle d'abord. J'utilise la comparaison des longeurs comme condition pour que la var i en position 0soit "rotation", si c bien ça. J'ai copié les 7 premières lignes dans l'aide en modifiant name == myscene pour mon clip evidemment et j'y ai rajouté ma variable de référence pour les conditions d'apres :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
on (release){ 
	var i = 0;
	var curTimelines = fl.getDocumentDOM().timelines;
	while(i < fl.getDocumentDOM().timelines.length){
    	if(curTimelines[i].name == "rotation"){
        	fl.getDocumentDOM().currentTimeline = i;
    	}
    	++i;
	var curframe = i;
	if (0 < curframe < 17){
		trace(curframe);
		trace("1");
	} else if (18 < curframe < 52){
		trace(curframe);
		trace("2");
	} else if (curframe == 52){
		trace("52");
	} else if (53 < curframe < 85){
		trace("3");
	} else if (86 < curframe < 120){
		trace("4");
	} else if (curframe == 120){
		trace("120");
	} else if(121 < curframe  < 136){
		trace("5");
             };
};
}
mais il sa passe toujours rien ;( toujours pas de trace en sortie.
j'ai supprimé la variable placée sur la 1ère image de rotation, ca ne me paraissait pas utile en fait.
je précise que je travaille avec flash 8.
freecs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2006, 17h52   #4
Invité de passage
 
Inscription : décembre 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 21
Points : 2
Points : 2
bon, je corrige une petite erreur que j'avais fait dans mon message précedent
Code :
1
2
3
4
5
6
7
8
9
10
 
on (release){ 
	var i = 0;
	var curTimelines = fl.getDocumentDOM().timelines;
	while(i < fl.getDocumentDOM().timelines.length){
    	     if(curTimelines[i].name == "rotation"){
        	          fl.getDocumentDOM().currentTimeline = i;
    	}
    	++i;
	var curframe = fl.getDocumentDOM().getTimeline().currentFrame;
mais la aussi, ca ne change pas le problème
freecs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2006, 20h40   #5
Membre Expert
 
Avatar de jean philippe
 
Inscription : septembre 2006
Messages : 2 062
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 2 062
Points : 2 075
Points : 2 075
Envoyer un message via MSN à jean philippe Envoyer un message via Skype™ à jean philippe
désolé de m'imicer, mais tu souhaites vraiment creer un script JSFL dans l'IDE de flash ou tu confonds AS et JSFL ?
rassures moi
__________________
mon Blog
jean philippe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2006, 21h42   #6
Invité de passage
 
Inscription : décembre 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 21
Points : 2
Points : 2
salut,

Pas de problèmes, j'ai besoin d'aide ^^
oui, j'ai vu qu'il y avait une différence mais comme je ne connais pas encore flash vraiment bien, je ne connais pas les conséquences. Ca a pas l'air bien apparemment. Mais je ne trouve pas la solution pour affecter la variable a la timeline que je souhaite
Si tu sais solutionner mon problème, ca m'aiderai grandement
freecs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2006, 15h14   #7
Invité de passage
 
Inscription : décembre 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 21
Points : 2
Points : 2
Par défaut frame detectée dans la timeline que je veux!

Alors j'ai trouvé comment avoir la position de la tête de lecture dan sla timeline que je souhaite. Visiblement c'etait une erreur de syntaxe par rapport a mon premier essai. Et donc je pense qu'elle etait déclarée, mais mal formulée. voila la bone variable :
Code :
1
2
var image = _root.rotation._currentframe
var curframe:Number = image
sinon ça, ça marche aussi
Code :
1
2
 
var curframe = _root.rotation._currentframe
Finalement je vais garder la 2ème, j'ai l'impression que la 1ère complique les choses.
Maintenant il reste que les conditions trace (trace "1", trace "2"...) ne s'appliquent pas, je continue mes recherches de mon coté.
freecs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2006, 17h40   #8
Invité de passage
 
Inscription : décembre 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 21
Points : 2
Points : 2
Par défaut reussi!

il fallait juste simplifier les choses. Apparemment, ja n'ai pas la même logique que flash... ça me fait peur pour la suite. Voila pourquoi : il me semblait que pour remplir une condition et ignorer les précedentes il fallait definir les valeurs minimales et maximales pour l'intervalle de prise en compte comme suit :
Code :
1
2
3
4
5
6
7
if (0 < curframe < 17){
		trace(curframe);
		trace("1");
	} else if (18 < curframe < 52){
		trace(curframe);
		trace("2");
                          }
Ben en fait non... il faut en fait donner la valeur supérieur jusqu'a laquelle la condition est remplie, il la remplit et ignore la précedente. Ca me parait moins précis et litigieux pour des algos plus complexes mais j'en suis pas encore là . donc voici le bon code en entier
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
on (release){ 
	var curframe:Number = _root.rotation._currentframe
		 if (curframe < 17) {
			trace(curframe);
			trace("1");
		} else if (curframe < 52) {
			trace(curframe);
			trace("2");
		} else if (curframe == 52) {
			trace(curframe);
			trace("52");
		} else if (curframe < 85) {
			trace(curframe);
			trace("3");
		} else if (curframe < 120) {
			trace(curframe);
			trace("4");
		} else if (curframe == 120) {
			trace(curframe);
			trace("120");
		} else if (curframe  < 136) {
			trace(curframe);
			trace("5")};
		}
freecs est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h58.


 
 
 
 
Partenaires

Hébergement Web