Aller au contenu

flash AS2 et AS3 et variable


Messages recommandés

salut tout le monde, après de longue vacances me revoilou!

voila histoire de changer un peut j'ai decider de me mettre a flash et son fameux AS, et j'ai donc telecharger la version de CS4.

au premier abord je trouve la syntaxe de l'AS relativement proche du C ( :) )

mais voila,

d'une part seule une absence de déclaration ou cette methode fonctionent

var nombre = new int (666);

pour le autres que nenni !!!

d'autre part,

nombre = nombre+1; // j'ai meme essayer avec ++ 
trace(nombre)

me renvoie toujours en sortie

~out
NaN

je precise que (a priori) je compile en AS2, docteur,... le probleme peut il venir de la et necessité un compilation en AS 3 ?

Lien vers le commentaire
Partager sur d’autres sites

l'AS2 ne propose qu'un seul datatype numérique : Number qui est une implémentation de Double IEEE-754.

Donc en AS2 tu dois faire :

var nombre:Number = 666;
nombre++;
trace(nombre);

Tandis qu'en AS3 ce code marche :

var nombre:int = 666;
nombre++;
trace(nombre);

PS : pense bien à typer tes déclarations avec la syntaxe "identifier:type"

Lien vers le commentaire
Partager sur d’autres sites

....

Tu type mal ta variable :

var nombre:int = new int(666);

[code]

Mais normalement c'est une erreur qui devrait être indique par ton éditeur (enfin je crois j'utilise pas flash pour faire du flash...)

Arf grilled et en plus ma réponse est incomplète avec gourage de balise inside :francais:

Lien vers le commentaire
Partager sur d’autres sites

Arf grilled et en plus ma réponse est incomplète avec gourage de balise inside :dd:

bouhhh...... :dd: lol

bon avec l'ecriture

var monnombre:Number=0;

j'ai plus d'erreur de sortie.

maintenant le probleme c'est que :

var calcul:Number=0;
stop();
bouton1.onRelease = function()
{
	if(play()!=0)
	{
		calcul=calcul+1;
		trace(calcul);
	};
};

j'ai ce bout de code qui compte le nombre de fois que je clique sur le "bouton1" (un simple rectangle rouge) et si l'action play() est valide il incremente de 1 la valeur de "calcul"

probleme:

1- lorsque je click plusieurs fois d'affiler sur le bouton lors d'un meme lecture d'une scéquence le compteur s'incremente ce qui n'est pas logique puisque l'action play a deja été lancéeen image 10 et qu'ensuite le bouton ne devrait plus reagir puor les image 11 et suivantes ?

2- vu qu'a chaque tours ont repasse a l'image 1, le compteur se remet a 0 alors qu'a la base l'objectif etait qu'il comptent le nombre de tours

donc comment faire ?

[EDIT] bref y a t'il un moyen de declarer un genre de variable globale comme en C par exemple au niveau de la premiere diapo et qui pourrait etre modifier plus loins dans la scéquence ??

Lien vers le commentaire
Partager sur d’autres sites

j'ai ce bout de code qui compte le nombre de fois que je clique sur le "bouton1" (un simple rectangle rouge) et si l'action play() est valide il incremente de 1 la valeur de "calcul"

probleme:

1- lorsque je click plusieurs fois d'affiler sur le bouton lors d'un meme lecture d'une scéquence le compteur s'incremente ce qui n'est pas logique puisque l'action play a deja été lancéeen image 10 et qu'ensuitee le bouton ne devrait plus reagir puor les image 11 et suivantes ?

Pourquoi cela ne devrait plus réagir ? La doc dit "play() : Void".

Hors bien que l'AS2 soit un langage à typage faible, et donc à cast implicite, null est falsy mais différent de false (oui c'est très bizarre, mais de toute facon à la base tu ne devrais jamais te reposer sur le cast implicite).

2- vu qu'a chaque tours ont repasse a l'image 1, le compteur se remet a 0 alors qu'a la base l'objectif etait qu'il comptent le nombre de tours

donc comment faire ?

Ne pas programmer sur la timeline.

Lien vers le commentaire
Partager sur d’autres sites

Pourquoi cela ne devrait plus réagir ? La doc dit "play() : Void".

Hors bien que l'AS2 soit un langage à typage faible, et donc à cast implicite, null est falsy mais différent de false (oui c'est très bizarre, mais de toute facon à la base tu ne devrais jamais te reposer sur le cast implicite).

j'ai test avec :

if {play()!=false) }

mais c'est pareil

Ne pas programmer sur la timeline.

heu la timeline ? la scéquence j'imagine ?

j'ai suivi les tuto du SDZ et ils disent de ce creer un calque action, c'est la dsu que je code...

tu pense au codage direct sur la scene ?

Lien vers le commentaire
Partager sur d’autres sites

j'ai test avec :

if {play()!=false) }

mais c'est pareil

Comme je l'ai dit null est falsy, mais différent de false.

De toute façon même si null se castait en false ton code ne marcherai pas car play() ne renvoit jamais rien, quelque soit le résultat de son execution, donc ta logique est fausse à la base.

Dans ta réflexion tu fais l'assertion que play() te renvoit une valeur truthy si elle enclenche la lecture et une valeur falsy si la lecture est déjà en cours... hors ce n'est pas le cas.

heu la timeline ? la scéquence j'imagine ?

j'ai suivi les tuto du SDZ et ils disent de ce creer un calque action, c'est la dsu que je code...

tu pense au codage direct sur la scene ?

timeline = séquence, et la séquence inclut tes calques.

Tu ne dois pas utiliser la séquence principale car quand elle boucle tu réévalue tout ton code. Ta séquence doit comporter UNE SEULE image clé avec ton code et tu dois manipuler des movieclip dont tu pourra utiliser la timeline si éventuellement tu en as besoin. Et dans l'idéal tu fais tout ça en POO et AS3.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...