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

Flash Discussion :

[FLASH 8] passage de variable entre animations englobante et imbriquée


Sujet :

Flash

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut [FLASH 8] passage de variable entre animations englobante et imbriquée
    Bonjour,

    Dans le cadre d'une animation Flash parent (notée fParent) imbriquant une animation Flash enfant (notée fEnfant), je souhaite passer une variable / un paramètre de fParent à fEnfant.

    L'utilisation de "FlashVars" n'est pas efficace dans ce cas : FlashVars permet de spécifier des paramètres "externes" à passer à une animation Flash ; à ma connaissance, FlashVars n'est exploité qu'au sein d'une section Objet (avec Embed) incorporant une animation Flash dans une page ou une section de page HTML.

    Un approfondissement de la documentation m'a conduit à essayer trois voies :

    1- Le passage de paramètre par méthode CGI (GET / POST) :

    Elle consiste en un chargement de paramètres par spécification directe au moment de l'appel. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myMC.loadMovie("fEnfant.swf?parametre1=valeur1", [méthode]);
    où [méthode] correspond à la méthode GET ou POST, et où myMC est un objet MovieClip de l'animation fParent englobant fEnfant. Dans ce cas-ci, la méthode GET est (la seule ?) pertinente.
    La tentative de chargement de l'animation fEnfant échoue. L'erreur indique que l'animation "fEnfant.swf?parametre1=valeur1" n'est pas localisée - résultat non surprenant compte tenu du nom d'appel considéré dans son intégralité.

    2- L'invocation de méthode distante.

    Elle consiste à charger une animation Flash fEnfant distante (habituellement) et à manipuler les attributs et les méthodes de fEnfant depuis l'animation Flash appelante fParent. Concrètement on part par exemple du code suivant :

    Chez fEnfant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var uneVariable:String = "variable de fEnfant"; 
    function uneFonction() { /* ... */ }
    Chez fParent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    myMC.loadMovie("fEnfant.swf"); 
    myMC.uneVariable = "changement de contenu de la variable de fEnfant"; 
    myMC.uneFonction();
    L'essai n'est pas concluant : la variable "uneVariable" au sein de fParent est "vide" ; l'appel de la méthode "uneFonction()" n'a aucun effet.

    3- La communication de données par canal, avec LocalConnection.

    Elle consiste en l'initialisation d'un canal d'émission et d'un canal de réception. Concrètement, cela peut se traduire par le code suivant :

    Du côté de fParent, émetteur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var canalEmetteur:LocalConnection = new LocalConnection(); 
    canalEmetteur.send("nomDuCanal", "uneMethode", unArgument);
    où nomDuCanal est le nom du canal commun à l'émetteur et au récepteur, uneMethode est une méthode définie du côté du récepteur et unArgument est une variable servant d'argument pour ladite méthode.

    Du côté de fEnfant, récepteur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var canalRecepteur:LocalConnection = new LocalConnection(); 
    canalRecepteur.uneMethode = function(premierArgument:String) { /* ... */ };
    canalRecepteur.connect("nomDuCanal");
    Cette tentative n'est pas satisfaisante : le nom du canal commun doit être "connu" à l'avance ; or, dans le cas d'application, l'intérêt est de charger depuis fParent plusieurs instances de fEnfant MAIS avec des paramètres différents ; le caractère "statique" du nom empêche cette multiplicité d'instance.

    D'une manière générale, je cherche à faire passer une variable ou une série de variables à une animation Flash fEnfant chargée au sein d'une animation Flash fParent. Je précise que, au-delà de la documentation, une recherche sur les posts de ce forum (par ailleurs fort remarquable) n'a pas abouti. Les résultats concernaient au mieux la résolution de problème de passage de paramètre d'une application tierce à une animation Flash.

    Merci pour votre attention et vos suggestions.

    Cordialement,
    nha de Lyon.

  2. #2
    Membre émérite
    Avatar de jean philippe
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 062
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 062
    Points : 2 313
    Points
    2 313
    Par défaut
    salut
    Utilise les SharedObject

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Merci pour la suggestion des SharedObject-s. ;-)

    Je vais tenter le coup et indiquerai l'effet obtenu ici.

    Bonne fin de journée.
    nha de Lyon.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    J'ai essayé d'utiliser la classe SharedObject comme cela a été suggéré.

    A titre d'initiation, j'ai extrait un code donné dans une section de la documentation officielle. Ce code est sensé récupérer un objet partagé - appelé ici "savedText" - ou, à défaut, en créer un si celui qui est demandé - donc : "savedText" - n'existe pas - c'est le cas par défaut : inexistence de "savedText" - ; la référence dudit objet est passée à une variable locale de type SharedObject - appelée ici "my_so". Une commande - trace() - affiche la valeur de cette variable.

    Le code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var my_so:SharedObject = SharedObject.getLocal("savedText", "/");
    trace("my_so=:"+my_so+":post-loading");
    Je l'ai testé dans deux animations Flash :
    1) une animation neutre (ne contenant que le code ci-dessus et du code relatif à la manipulation de propriétés de l'objet partagé si celui-ci est effectivement initialisé) ;
    2) une animation de production (au sein de laquelle à terme le passage de paramètre doit intervenir).

    Dans le cas (1), la sortie d'exécution affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my_so=:[object Object]:post-loading
    Dans le cas (2), la sortie d'exécution affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my_so=:undefined:post-loading
    (extrait relatif à l'objet partagé ciblé).

    L'environnement de développement et de test présente les caractéristiques suivantes pour les deux animations :
    -IDE : Macromedia Flash Professional 8 ;
    -Les fichiers FLA de chaque animation sont situés dans le *même* dossier ;
    -Le test des animations est effectué directement au sein de l'IDE, en tant qu'animation Flash "pure".

    Merci pour des (idées d')explications sur cette différence de sortie et des (idées de) solutions pour ce problème.

    Cordialement, nha de Lyon.

Discussions similaires

  1. Passage de variable entre deux animation chargées
    Par ranell dans le forum ActionScript 1 & ActionScript 2
    Réponses: 3
    Dernier message: 05/07/2010, 16h16
  2. Réponses: 2
    Dernier message: 15/12/2005, 08h43
  3. [C#] Passage de variables entre 2 forms
    Par Tips dans le forum C#
    Réponses: 6
    Dernier message: 06/12/2005, 16h48
  4. [FLASH MX] Transmission de variables entre 2 swf
    Par totoche dans le forum Flash
    Réponses: 3
    Dernier message: 12/10/2005, 15h54
  5. [langage] Probleme passage de variables entre modules
    Par Ludo167 dans le forum Langage
    Réponses: 4
    Dernier message: 13/08/2004, 12h25

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