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 10/08/2006, 11h20   #1
Membre éclairé
 
Avatar de speedev
 
Développeur Web
Inscription : mai 2006
Messages : 936
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2006
Messages : 936
Points : 347
Points : 347
Par défaut [FLASH MX2004 PRO] Pas de _root?

re de nouveau.

On me dit de ne pas utiliser _root pour récupérer des variables reçues par php de cette manière:

Code :
...swf?tit="mr"&nom="speedev"&pre="bob"
Sachant que je dois conserver ces variables dans mon swf afin de les passer à un autre swf charger par : loadClip()
Comment procéder?

Je n'ai jamais eu autant de soucis pour trouver des réponses en ActionScript!
Si vous avez qlq adresses intéressantes je suis preneur! Genre une biblio des fonctions actionscript serait la bienvenue.

Merci!

Fait beau chez vous?
__________________
Développeur indépendant sur technos Web à votre service
speedev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 11h22   #2
Membre émérite
 
Avatar de thecaptain
 
Étudiant
Inscription : décembre 2003
Messages : 916
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2003
Messages : 916
Points : 898
Points : 898
Salut,

tu passes par des FlashVars donc ? De mon point de vue c'est peut-être le seul cas sensé ou on peut utiliser _root Mais la encore si tu peux utiliser le ciblage relatif, je te le conseille !

@++
thecaptain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 11h24   #3
Membre éclairé
 
Avatar de speedev
 
Développeur Web
Inscription : mai 2006
Messages : 936
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2006
Messages : 936
Points : 347
Points : 347
deuxième question....comment ne pas perdre la boule? lol
__________________
Développeur indépendant sur technos Web à votre service
speedev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 11h27   #4
Membre émérite
 
Avatar de thecaptain
 
Étudiant
Inscription : décembre 2003
Messages : 916
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2003
Messages : 916
Points : 898
Points : 898
Citation:
Envoyé par speedev
deuxième question....comment ne pas perdre la boule? lol
en progressant, en testant, en essayant, et à force de courage et d'eau fraîche c'est quelque chose qui te semblera basique

@++
thecaptain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2006, 14h10   #5
Membre confirmé
 
Avatar de aorgerit
 
Inscription : juillet 2006
Messages : 253
Détails du profil
Informations personnelles :
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : juillet 2006
Messages : 253
Points : 274
Points : 274
bonjour,

tu peux sans soucis utilser le _root. comme ciblage.

Par définition :

un objet flash , encapsulé dans un code html ou bien autre, te défini une profondeur d'objet et de niveau par défaut à 0.
Pour atteindre ton niveau ( level ) :
_levelN où N est ta profondeur de niveau.
C'est très exactement le même schéma que duplicateMovieClip, createTexteField, createEmptyMovieClip et j'en passe des vertes et des pas mures.
mais à la différence que à ce moment là , pour les levels, tu dispose de plusieurs niveaux dont le _root est séraré par la définition du niveau où est ton swf.

je vais etre plus clair avec des exemples :

tu disposes d'un objet swf initial, donc au niveau : _level0
dans cet onjet tu charge un autre objet swf en cible :
_root.createEmtptyMovieClip("macible",1);
cela te créé sur le _level0 un objet instancié "macible" sur le _root de ton swf principal à "profondeur" 1 dans un objet de "NIVEAU" 0.
Nota tu peux de toi même créer un obejt mc, que tu instancie "macible" à la mano , c'est pareil.
_root.macible.loadMovie("clip.swf");
tu charges donc à présent un swf dans l'objet que tu a créé via le code ou bien à la mano.
pour atteindre cet objet, il te suffit de dire en code AS:
trace(_root.macible._CE_QUE_TU_VEUX);

Ca c'est la première version, assez commune des chargements d'objets dans un meme NIVEAU.



Deuxième version :
tu disposes d'un objet de base , donc au niveau 0.
tu décides de charger un autre swf mais dans un autre NIVEAU :
loadMovieNum("clip.swf", AAAAA);
// AAAAA est un nombre, (touche F1 sur cette comande stp)
là ça se complique, c'est normla, c'est le dimanche :
trace(_root._CE_QUE_TU_VEUX);
pouet pouet que dale. Tu n'a rien, tu n'as pas chargé en cible mais en NIVEAU.
trace(_levelAAAAA._CE_QUE_TU_VEUX);
Youpi ça marche.

la différence entre les deux :
elle est bien basique, dans le cadre d'un objet au NIVEAU 0, le point de réference x et y du swf qui y est chargé est le point de référence x et y de l'objet dans lequel le swf est chargé.
Dans le cadre d'un objet chargé au NIVEAU AAAAA, le point de référence x et y sera TOUJOURS égal à 0 et 0.

et pour pointer sur tes fonctions ou bien tes objets, soit dans le premier temps , tu cibles toujours sur le _root, soit dans un deuxième temps, tu cibles sur le _levelAAAAA pou ateindre ce que tu veux.

Pour le ciblage en level, je pense personnellement qu'il te faut un site très "gros" en contenu pour t'offrir ce luxe.

Dans le cas du premier exemple, _root est parfaitement adapté à tes besoins et reste une référence absolue pour tes objets comme pour ta programmation, ( bien qu'en ce qui concerne mon cas, toutes mes fonctions AS sont disponibles sur le _root, ce qui permet, dans le cas d'un échange de travail, d'avoir à pondre un document d'aide pour qu'un autre programmeur n'ai pas à chercher où j'aurais pu bien planquer telle ou telle fonction).


Bien à toi.
aorgerit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 12h01   #6
Membre émérite
 
Avatar de thecaptain
 
Étudiant
Inscription : décembre 2003
Messages : 916
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2003
Messages : 916
Points : 898
Points : 898
Salut,

aorgerit je ne suis pas d'accord avec toi ! Le _root ne doit être utilisé qu'en cas de nécessité et est forte,ent deconseillé dans le ciblage. C'est comme si tu montes un site en html et que tous tes liens sont en absolu ! Le jour ou tu changes de nom de site, bonjour les degats !!! Pour avoir tes fonctions accessibles partout, utilise plutot le _global ou passe par les classes. Pour eviter le _root, il y a le this et _parent
J'ajoute encore a cela que tout ce qui concerne les _level c'est du flash 5 et c'est depasse.

@++
thecaptain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 12h08   #7
Membre confirmé
 
Avatar de aorgerit
 
Inscription : juillet 2006
Messages : 253
Détails du profil
Informations personnelles :
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : juillet 2006
Messages : 253
Points : 274
Points : 274
bonjour,

je ne suis pas d'accord à ce sujet, _root est la référence absolue.
et dans le cadre d'un gros projet est très souple d'emploi.
Cela ne veut aucunement dire qu'il faut toujours passer par lui.
Il suffit de l'utiliser à bon escient.

et les levels ne sont pas dépassés, meme si c'est du f4 et non du f5 à la base.


Bien à toi
aorgerit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 12h11   #8
Membre éclairé
 
Avatar de speedev
 
Développeur Web
Inscription : mai 2006
Messages : 936
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2006
Messages : 936
Points : 347
Points : 347
Salut...

Après qlq petites missions de recherche , je constate que le _root peut être encore utilisé dans certains cas, le mien en l'occurence car je passais mes variables en GET depuis l'html (php...). Seulement...
Je suis passé à une autre méthode à savoir "pas de variables dans flash"!! Flash est selon moi un outil d'interfaçage destiné uniquement à l'aspect "ludique" de sa page web et non pas pour manipuler des données concernant l'utilisateur à moins que toute l'application ne soit développée en flash et moyennant une alternative html. Tel est je pense le bon principe

Et tant qu'à vous demander:
Je viens de passer au flash 8 à titre personnel et je cherche des tutoriels pour manipuler les effets de flous etc.... que l'on voit se propager de plus en plus sur le web. Si vous avez des adresses je suis preneur!

Merci bonne journée à vous!
__________________
Développeur indépendant sur technos Web à votre service
speedev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2006, 21h19   #9
Membre émérite
 
Avatar de thecaptain
 
Étudiant
Inscription : décembre 2003
Messages : 916
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2003
Messages : 916
Points : 898
Points : 898
Salut,

Citation:
Envoyé par aorgerit
je ne suis pas d'accord à ce sujet, _root est la référence absolue.
exact ! C'est ce pourquoi il ne faut l'utiliser qu'en dernier recours ou dans des cas très précis

Citation:
Envoyé par aorgerit
et dans le cadre d'un gros projet est très souple d'emploi.
non la je suis pas d'accord du tout Justement dans un gros projet, on doit bannir les _root et utiliser les _global (ou des classes) qui sont fait spécifiquement pour l'accès aux propriétés pouvant être accessibles de partout. En aucun cas _root ne doit être utilisé pour cela. C'est à la base, conceptuellement faux

Citation:
Envoyé par aorgerit
Cela ne veut aucunement dire qu'il faut toujours passer par lui.
Il suffit de l'utiliser à bon escient.
oui la je suis entièrement d'accord, mais il y a très peu de cas ou le _root est justifiable (FlashVars par exemple).

Citation:
Envoyé par aorgerit
et les levels ne sont pas dépassés, meme si c'est du f4 et non du f5 à la base.
Ce n'est pas que les _level sont dépassés, c'est qu'ils doivent être considérés comme dépréciés ! Maintenant, pour la gestion des _level, on utilise la profondeur des clips. C'est bien plus efficace et clair pour le développeur qui doit relire le code d'un autre Cela fait partie des bonnes pratiques de flash !

@++
thecaptain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2006, 02h15   #10
Membre confirmé
 
Avatar de aorgerit
 
Inscription : juillet 2006
Messages : 253
Détails du profil
Informations personnelles :
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : juillet 2006
Messages : 253
Points : 274
Points : 274
Bonjour,

nous tombons d'accord pour root et global, mais pour les levels....

Citation:
Envoyé par thecaptain
Salut,
Ce n'est pas que les _level sont dépassés, c'est qu'ils doivent être considérés comme dépréciés ! Maintenant, pour la gestion des _level, on utilise la profondeur des clips. C'est bien plus efficace et clair pour le développeur qui doit relire le code d'un autre Cela fait partie des bonnes pratiques de flash !
@++

les levels dépréciés par qui ? par Macromedia, maitenant Adobe, ou bien les utilisateurs que cela éreinte de les utiliser ?

Quand je parle d'un projet c'est un projet utilisant 20 000 lignes de codes AS ( et je ne plaisante pas on est au dessus des 20 000, record absolu pour moi), et utilisation des levels qui ont bien été utiles dans ce projet, utilisation unique en ce cas bien précis.

J'aurais bien aimé en ce cas n'utiliser que la scène de base , mais là, je ne dis pas "impossible", mais "difficile" et surtout perte de temps en prog.

Bien à toi
aorgerit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2006, 09h45   #11
Membre émérite
 
Avatar de thecaptain
 
Étudiant
Inscription : décembre 2003
Messages : 916
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2003
Messages : 916
Points : 898
Points : 898
Salut,

en ce qui concerne les _level, tout comme les _root, les on etc, ce sont des méthodes qui sont considérées comme à éviter par la communauté flash. Malheureusement, on trouve encore beaucoup de code qui utilisent ces propriétés, ce qui fait qu'on peut avoir un doute la dessus. De plus, rien de signaler à cet égard dans la doc. Toutefois, pense que les mécanisme _level et autre n'existent plus en AS3 Donc si tu ne les a jamais utilisé, tu t'y retrouveras bien plus vite !

@++
thecaptain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2006, 15h04   #12
Membre confirmé
 
Avatar de sourivore
 
Développeur Java
Inscription : juin 2005
Messages : 443
Détails du profil
Informations personnelles :
Localisation : France, Somme (Picardie)

Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : juin 2005
Messages : 443
Points : 278
Points : 278
Ma signature le confirme.

Un petit exemple de mauvais usage parmi tant d'autres:

Tu te créés un petit jeu en Flash avec des _roots à outrance et en appelant tes frames par leur numéro et non en mettant des étiquettes (mais ça c'est un autre problème).
Ton petit jeu est impec'. Il marche du feu de dieu.
Suite à ce succès, tu te crées d'autres jeux et tu décide de faire un "portail" vers tous tes jeux.
Tu charges chaque jeu à partir de ce portail.
Et là tu lances ton Portail tu choisis ton jeu. Et rien ne marche comme il le faut!

Pourquoi?
En ajoutant ton Portail tu as ajouté un niveau de profondeur et donc il faut que tu te retapes tout le code pour tout indexer comme il faut.
Une variable dans ton _root ne sera plus accessible par _root mais par _root.Portail
En gros une grosse prise de tête.

Pour faire simple c'est un peu le même problème que pour les chemins relatifs ou absolus.
En absolu si tu rajoutes un niveau d'arborescence tous tes liens ne seront plus valides.
__________________
Toi aussi, crée ton armée de soldat de plomb :
http://souris-bleues.minitroopers.fr/
sourivore est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2006, 23h38   #13
Membre confirmé
 
Avatar de aorgerit
 
Inscription : juillet 2006
Messages : 253
Détails du profil
Informations personnelles :
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : juillet 2006
Messages : 253
Points : 274
Points : 274
bonjour messieurs,

si je puis me permettre :

_root sur un objet chargé en level.... déprécié par ailleurs par une communauté flash que je connais bien et qui l'a peu utilise.

si nous pouvions continuer cette conversation aen privée, cela serait avec plaisir.

Bien à vous.
aorgerit est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h36.


 
 
 
 
Partenaires

Hébergement Web