IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 1 & ActionScript 2 Discussion :

[FLASH MX2004 PRO] Pas de _root?


Sujet :

ActionScript 1 & ActionScript 2

  1. #1
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    ...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 Web sénior (2005) spécialisé Symfony2 - Je tiens mon petit blog tranquillement, viens faire un tour http://www.ikonenn.com

  2. #2
    Membre éprouvé
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Points : 1 210
    Points
    1 210
    Par défaut
    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 !

    @++
    Libzippp (C++)
    Lost in AStorm

  3. #3
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut
    deuxième question....comment ne pas perdre la boule? lol
    Développeur Web sénior (2005) spécialisé Symfony2 - Je tiens mon petit blog tranquillement, viens faire un tour http://www.ikonenn.com

  4. #4
    Membre éprouvé
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Points : 1 210
    Points
    1 210
    Par défaut
    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

    @++
    Libzippp (C++)
    Lost in AStorm

  5. #5
    Membre averti Avatar de aorgerit
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 257
    Points : 301
    Points
    301
    Par défaut
    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.

  6. #6
    Membre éprouvé
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Points : 1 210
    Points
    1 210
    Par défaut
    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.

    @++
    Libzippp (C++)
    Lost in AStorm

  7. #7
    Membre averti Avatar de aorgerit
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 257
    Points : 301
    Points
    301
    Par défaut
    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

  8. #8
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut
    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 Web sénior (2005) spécialisé Symfony2 - Je tiens mon petit blog tranquillement, viens faire un tour http://www.ikonenn.com

  9. #9
    Membre éprouvé
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Points : 1 210
    Points
    1 210
    Par défaut
    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 !

    @++
    Libzippp (C++)
    Lost in AStorm

  10. #10
    Membre averti Avatar de aorgerit
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 257
    Points : 301
    Points
    301
    Par défaut
    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

  11. #11
    Membre éprouvé
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Points : 1 210
    Points
    1 210
    Par défaut
    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 !

    @++
    Libzippp (C++)
    Lost in AStorm

  12. #12
    Membre averti Avatar de sourivore
    Homme Profil pro
    Lead Tech Front-End
    Inscrit en
    Juin 2005
    Messages
    451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lead Tech Front-End

    Informations forums :
    Inscription : Juin 2005
    Messages : 451
    Points : 334
    Points
    334
    Par défaut
    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/

  13. #13
    Membre averti Avatar de aorgerit
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 257
    Points : 301
    Points
    301
    Par défaut
    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.

Discussions similaires

  1. Réponses: 13
    Dernier message: 06/03/2006, 15h25
  2. [FLASH MX2004 PRO] Ouverture flash mais pas navigateur ?
    Par Machjaghjolu dans le forum Flash
    Réponses: 7
    Dernier message: 28/10/2004, 17h55
  3. Réponses: 18
    Dernier message: 19/08/2004, 15h11
  4. [FLASH MX2004 PRO] Problème étrange avec LoadClip...
    Par josemoroide dans le forum Flash
    Réponses: 6
    Dernier message: 04/08/2004, 15h41
  5. [FLASH MX2004 PRO] Bug scrollPane
    Par dens63 dans le forum Flash
    Réponses: 16
    Dernier message: 26/07/2004, 10h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo