CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Flash] Les variables dans les fonctions

fil_razorback
fil_razorback
Niveau 10
23 juin 2007 à 16:53:16

https://www.jeuxvideo.com/forums/1-31-8548146-1-0-0-0-0.htm
| Citation de : archipel
| Une autre question, un peu HS, lorsqu´on appelle une fonction, j´ai l´impression que Flash appelle les arguments en commencant par le dernier :
|
| a = [1,2]
| test(a.shift(),a.shift())
| function test(a1,a2)
| {
| trace a1->2
| trace a2->1
| }
| C´est bizarre non ?? "

C´est comme avec un for...in, Flash fait ça dans l´ordre qui lui convient. Tu pourrais régler le probleme en faisant :
a = [1,2];
a1 = a.shift();
a2 = a.shift();
test(a1, a2);
(et ensuite la fonction)

Archipel
Archipel
Niveau 5
23 juin 2007 à 19:23:24

Flash fait ça dans l´ordre qui lui convient.
-> ca c´est le truc que je n´aime pas entendre, je suis sur que ca va me causer des problemes un jour.

Sinon, je ne demandais pas la solution, je l´aurai trouvé tout seul :)

Samir62300
Samir62300
Niveau 6
23 juin 2007 à 19:45:35

Non flash il est gentil , tu le dresses avec un bon coup de for et c´est bon :D.

luxregina
luxregina
Niveau 10
24 juin 2007 à 18:08:31

J;avoue ne pas trop savoir pourquoi ca passe dans cet ordre la - ceci dit, passer par un array pour deux elements me semble pas la meilleur idee - si maintenant tu as plus d´elements, alors, extraire "a la main" tes elements n´est pas non plus la meilleure idee > ce qui veut dire que dans un cas "reel" tu passerai automatiquement par un for loop pour extraire tes donnees, et la , plus de problemes :)

LPTheKiller_3
LPTheKiller_3
Niveau 5
17 juillet 2007 à 18:12:50

:salut: Ca fait longtemps que je suis pas passé.
Je vois que notre ami archipel a encore des problèmes ^^

Bon déjà je voudrais mettre quelque chose au clair :
Si tu DECLARES une variable dans une fonction avec var (en définissant le type ou pas), cette variable sera "jetable" : elle n´existera que dans la fonction et sera supprimée à la fin de celle-ci. Par exemple :

function fct() {
var a:String = "ok";
trace(a); // trace ok car a existe encore
}
fct();
trace(a); // trace undefined car a a cessé d´exister

Bien sûr il n´y a pas de problème si tu définis a en dehors de la fonction.

var a:String
function fct() {
a = "ok";
trace(a); // trace ok car a existe partout
}
fct();
trace(a); // trace ok

Si tu écris juste ça :

function fct() {
a = "ok";
trace(a);
}
fct();
trace(a);

Ca marchera aussi car je crois que lorsque tu compiles le swf, Flash sans te le dire rajoute automatiquement les déclarations de toutes les variables que tu utilises. Mais si tu utilises a dans la fonction fct, dans le doute, Flash va la définir en dehors de celle-ci, ce qui va nous ramener à la même situation que dans le cas précédent.

Une dernière choses : Souvent tes questions sont beaucoup trop incomplètes ou floues pour qu´on puisse y répondre. Poste un exemple de code ou tu as le problème, ça sera plus facile pour tout le monde :ok:

Archipel
Archipel
Niveau 5
17 juillet 2007 à 22:48:37

Ce probleme la est résolu depuis le temps :)

Mais merci quand meme pour les precisions, je vais noter ca dans un coin.

function fct() {
a = "ok";
trace(a);
}
fct();
trace(a);
-> Oui ca fonctionne

en tout cas :merci:
Je vais essayer d´être plus clair pour mes prochaines questions, mais bon, j´espere que j´aurai plus de problemes :oui:

LPTheKiller_3
LPTheKiller_3
Niveau 5
18 juillet 2007 à 14:05:47

De rien... en tout cas
je sais que ce problème a été résolu, mais il faut comprendre pourquoi ça marchait pas sinon c´est inutile tu vas te reconfronter à ce problème plus tard !

function fct() {
a = "ok";
trace(a);
}
fct();
trace(a);
-> Oui ca fonctionne -> Oui bah oui j´ai pas dit le contraire ^^

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment