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 :

Aide pour faire fonctionner entre eux 2 fichier flash différents


Sujet :

Flash

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 62
    Points : 35
    Points
    35
    Par défaut Aide pour faire fonctionner entre eux 2 fichier flash différents
    kikouu c'est re moi , je suis toujours sur le projet de site web pour lequel j'avais deja posé quelques questions

    Pour résumé je travaille sur un fichier flash faisant que lorsque l'on passe sur un bouton le "thème" où amenant ce bouton est donné dans un globe situé a coté .
    Pour l'instant mes boutons et mon globe sont dans le même fichier flash mais pour pouvoir placer ces boutons à ma convenance dans la page web il faut (je pense :p) que mes boutons soient chacun dans un .fla différent sauf que voilà.... le problème est là ... comment puis-je donner l'instruction à mon globe qui donne le thème des boutons d'aller à telle ou telle image lorsque je passe sur un bouton si les fichiers flash ne sont pas liés
    (c'est peut-etre une question bête pour certain mais je ne vois vraiment pas comment faire )

    je remercie d'avance ceux qui me répondront et se pencheront sur mon problème

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 213
    Points : 103
    Points
    103
    Par défaut
    Bon sa fait un moment que j'ai pas touché a flash.
    Mais je me rappelle de LocalConnection qui m'avait bien aidé j'ai pas l'aide flash sous les yeux mais essaye de voir si sa peut t'aider.

    voila!

  3. #3
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    salut,
    tu peux aussi utiliser les "SharedObject".

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Points : 74
    Points
    74
    Par défaut
    Bonsoir,

    LocalConnection permet de faire communiquer deux animations (swf) chargées indépandamments comme par exemple dans deux navigateurs différents, mais c'est un peu lourd.
    Si les animations sont chargées depuis un swf d'amorçage, le mieux est d'implémenter la communication dans une classe dérivée de MovieClip et d'associer les différents movieClip devant communiquer entre eux à cette classe.

    Goofyt

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    merci pour ces reponses =) (je vais tester ces differentes solutions )
    mais n'etant pas un pro de flash je ne comprend pas tout ce que tu viens d'ecrire goofyt si tu pouvais être un peu plus clair dans tes explications pour le débutant que je suis se serait sympa

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    Ok, Je vais essayer de rédiger une note sur une façon de faire que j'ai péché dans un ouvrage incontournable que nous devons à Colin Moock: Essential ActionScript 2.0 (O'reilly).
    Il me faut un peu de temps, ce WE me semble propice :-)

    A suivre...
    Goofyt

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    re encore ^^
    j'ai testé pas mal de truc avec le local connection mais rien ne se passe entre les 2 animations flash et pourtant aucune erreur dans les .fla , ceux ci s'affiche bien dans ma page web de test mais ne communique pas entre eux

    voici ce que j'ai ecrit :
    -- dans le fichier d'envoi :
    on(rollOver){
    gotoAndPlay(1);
    var sending_lc:LocalConnection = new LocalConnection();
    sending_lc.send("lc_name", "methodToExecute", 2);
    }

    -- dans le fichier de réception :
    var frame;
    var receiving_lc:LocalConnection = new LocalConnection();
    receiving_lc.methodToExecute = function(param1:Number) {
    frame = "param1";
    };
    receiving_lc.connect("lc_name");
    gotoAndStop("frame");

    donc voilà si vous voyez la cause de mon problème n'hesitez pas à m'engueuler ... mici d'avance

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Points : 74
    Points
    74
    Par défaut
    Bonjour,
    Je vais regarder le code sur LocalConnection, j'utilise beaucoup cette classe et il y a quelques trucs à savoir. Je rédondrais demain.
    Pour l'instant voici le petit résumé promis sur l'une des nombreuse façon de s'y prendre avec Flash et AS2 pour réaliser des applications basées sur de ultiples animations se chargeant mutuellement.

    Sur l'environnement auteur
    -------------------------
    Le premier réflexe consiste à ne plus rien tracer dans la scène directement,
    mais répartir ses ressources graphiques dans des movieclip créés en librairie (ctrl-F8).

    Il est nécessaire de saisir un identifier dans la section 'linkage' de la boite de
    propriété du movieclip. Il est pour cela futé de reprendre le nom du MC à l'identique.
    Sous le champ identifier il y a une editbox permettant de saisir un nom de classe AS2.
    Si on ne met rien dans ce champ la classe MovieClip est associée par défaut au movieclip.

    Par exemple je crée une première animation que j'appelle starter.fla. Mon premier geste:
    faire un ctrl-F8 et créer un MC comme suit:
    name: mc_starter
    linkage id: mc_starter
    AS2 class: (rien)

    avec les options de linkage suivantes positionnées je crois par défaut :
    - Export for ActionScript
    - Export in first frame

    La liste des MCs ainsi créés est accessible par un ctrl-L et l'auteur peut alors
    les glisser a volonté vers la scène. Il doit alors nommer ces instances dans l'onglet de
    propriété. Du genre mc_starter1, mc_starter2, etc…
    Dans notre cas je n'en glisse qu'un seul et le nomme mc_starter.
    Tous les MCs de la librairie peuvent être aussi instanciés par code avec la méthode
    MovieClip.attachMovie, à partir d'un movieClip déjà instancié évidemment.


    A ce stade rien d'exceptionnel, mais où les choses deviennent excitantes c'est lorsque
    nous dérivons la classe MovieClip pour y ajouter notre grain de sel. Par exemple:

    class MyClip extends MovieClip
    {
    public function MyClip()
    {
    stop();
    }

    }

    D'une pratique héritée de java, une classe AS2 doit être créée dans un fichier portant
    le même nom, casse comprise, comme dans mon exemple: MyClip.as.

    Si maintenant je tape MyClip dans le champ AS2 class des propriétés de linkage de mon
    clip 'mc_starter' et que l'environnement auteur arrive à localiser mon fichier lors de
    la génération du swf, je vais associé ma classe MyClip à toutes les instances créées à
    partir de mc_starter et donc bénéficier d'un stop(); en première frame lors de
    l'initialisation de mon mc_starter.

    Maintenant j'ajoute une méthode setRgba à ma classe:

    class MyClip extends MovieClip
    {
    public function MyClip(){
    stop();
    }


    public function setRgba(rgba:Number):Void{
    trfrm:Object = new Object;
    color:Color = new Color(this);
    trfrm.ra = (rgba >>> 24) & 0xff;
    trfrm.ga = (rgba >>> 16) & 0xff;
    trfrm.ba = (rgba >>> 8) & 0xff;
    trfrm.aa = rgba & 0xff;
    color.setTransform(trfrm);
    }
    }

    Cette méthode modifie bêtement la couleur et l'alpha des MC associés à ma classe MyClip
    à partir d'un simple code rgba.
    Le propos de notre démonstration est de montrer comment appeler cette méthode depuis une
    autre animation, cela marche évidemment aussi depuis un autre movieClip de l'animation
    starter elle même.

    Assemblons tout cela, tout commence par une page starter.html qui charge l'animation
    starter.swf. Dans notre exemple :
    starter.swf contient un 'movieClip' mc_starter, associé à la classe MyClip et instanciés
    à la main dans la scène sous le même nom de 'mc_starter'. On a tracé dans mc_starter un
    rectangle plein en gris moyen pour visualiser notre démonstration. Donc au chargement de
    la page starter.html nous devons voir notre carré gris.


    Dés l'initialisation mc_starter lance le chargement de la deuxième animation.
    Sur ce point une remarque s'impose, une animation se charge sur un MC et du même coup
    efface toutes les variables qui y étaient allouées, donc mc_starter commence par créer un
    MC vide pour y charger l'animation avec un code du genre:

    var mc_empty:MovieClip = this.createEmptyMovieClip("mc_empty", 1);

    Puis pour charger l'animation on utilise la classe MovieClipLoader.

    var mc_loader:MovieClipLoader = new MovieClipLoader();
    var lstrn:Object = new Object();
    var mc_starter:MyClip = this; // cette ligne est indispensable pour que 'this' soit
    dans le scope du listener

    lstrn.onLoadInit = function (mc_target)
    {
    // C'est ici que mc_starter peut se référencer auprès de l'animation chargée
    mc_target.mc_starter = mc_starter;
    }
    .
    // autres méthodes implémentées sur le listener
    .

    mc_loader.addListener(lstrn);
    mc_loader.loadClip('monbouton.swf', mc_empty);


    Une fois l'animation chargée la méthode onLoadInit est invoquée par le player et
    nous en profitons pour lui donner une référence sur notre mc_starter.

    A partir de là tout est simple, notre deuxième animation doit juste répondre à
    quelques exigences:
    1- Elle doit être construite de la même manière que la première, c'est à dire avec un MC
    associé à une classe dérivée de la super classe MovieClip, déposé dans la scène et nommée.

    2- Elle doit déclarer une propriété: public var mc_starter:MyClip; afin de recevoir la
    référence sur le starter à l'initialisation.

    Après c'est selon, on peut implémenter un MC avec un listener pour obtenir un grand
    bouton dans la deuxième animation. Exemple de classe:

    class MyClip2 extends MovieClip
    {
    public var mc_starter:MyClip; // référence sur le starter

    public function MyClip2()
    {
    }


    public function onPress():Void
    {
    var rgba:Number = fonctionQuiCalculUnCodeRgba();
    if(undefined != mc_starter){
    mc_starter.setRgba(rgba);
    }
    else{
    // faire un truc lorsque l'animation est lancée seule
    }
    }
    }


    Bon, c'est long mon truc, mais je n'ai que survolé un peu sommairement
    une technique d'utilisation des classes AS2 sous Flash, le sujet est vaste.
    Une remarque cependant s'impose à propos de l'exemple développé
    si dessus:
    Toutes les lignes de codes sont extraites de classes existantes,
    arrachées à leur contexte original et modifiées à la main.
    N'ayant pas le temps de ré-assembler tout cela pour tester, des
    erreurs peuvent donc s'être glissées dedans. N'hésitez donc pas
    à me poser des questions si des difficultés surgissent, ce sera
    sûrement de ma faute ;-)

    Goofyt

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par jeanfly
    re encore ^^
    -- dans le fichier de réception :
    var frame;
    var receiving_lc:LocalConnection = new LocalConnection();
    receiving_lc.methodToExecute = function(param1:Number) {
    frame = "param1";
    };
    receiving_lc.connect("lc_name");
    gotoAndStop("frame");
    Déjà il y a un problème avec cette méthode:
    receiving_lc.methodToExecute = function(param1:Number) {
    ==>frame = "param1"; <=== ici la chaîne "param1" est une constante
    frame = param1; <=== il fallait écrire ça, pour obtenir l'affectation frame = 2
    };


    A suivre,
    Goofyt

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    t'assure goofyt c bien sympa je vais m'atteler à tout comprendre et à continuer mon projet (et à donne des news )
    THX!!!!!!!!!!!

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    j'ai pas tout compris à ce que tu avait post ... mais bon
    je commence à peter les plombs sur le problème du LocalConnection() j'ai testé toute les possibilitées qui me venaient mais rien a faire j'ai esssayé en mettant la commande directement sur le calque puis sur le MC mais rien à faire ca ne fonctionne pas
    n'ayant pas envi de devenir chauve à force de m'arracher les cheveux la dessus si quelqu'un pouvait m'aider je vous en serait très reconnaissant
    merci =)

Discussions similaires

  1. [SDL 1.2] Aide pour faire fonctionner un jeu
    Par fabiin dans le forum SDL
    Réponses: 3
    Dernier message: 03/02/2015, 16h13
  2. Besoin d'aide pour faire fonctionner un script Perl pour un photomaton sous Linux.
    Par loran42o dans le forum Programmation et administration système
    Réponses: 1
    Dernier message: 29/05/2013, 09h31
  3. Réponses: 6
    Dernier message: 07/05/2010, 10h48
  4. Aide pour visualiser différences entre 2 fichiers
    Par Choupinou dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 11/05/2007, 09h35
  5. Besoin d'aide pour faire fonctionner un Script d'upload d'images
    Par PaoOo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 15/06/2006, 21h24

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