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 :

Chemins relatifs [Débutant(e)]


Sujet :

Flash

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 12
    Points
    12
    Par défaut Chemins relatifs
    Bonjour,

    J'aimerais integrer une animation flash en plusieurs parties à une page web, la page et l'anim n'étant pas dans le même repertoire (l'arborescence pourra changer, en tout cas je veux garder cette possibilité).

    L'anim index.swf est appellée avec son chemin relatif par une page web, puis elle appelle (en chemin relatif toujours) les autres fichiers swf qui sont dans le même répertoire.
    Mon problème est que le fichier index.swf qui fait appel aux autres anims secondaires (swf aussi) prend visiblement comme référence le chemin de la page qui l'appelle au lieu de son chemin à elle.
    Y a t-il une façon d'appeller les anims swf en prenant l'anim source comme référence où est-ce définitivement impossible ?

    Si ça n'est pas possible, comment faire pour garder une arborescence propre dans ces cas là ? (la même anim peut-être appellée par plusieurs pages qui ne sont pas au même endroit).

    Merci

    Lulu

  2. #2
    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
    bonjour,
    malgré le soin que tu as pris à nous expliquer ça de façon détaillée c'est cependant pas très clair, peux tu donner un autre "éclairage" à ton problème ?
    Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
    Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
    MERCI

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Ok alors je recommence :

    Un exemple de l'animation dont je parle ici.
    Il s'agit d'une illustration des lois de physique énoncées par Galilée.

    Cette animation est destinée à être integrée dans une page HTML (par une balise <object>) générée dynamiquement à partir d'une base de données.
    Cette anim étant relativement lourde, elle est morcelée en 5 fichiers swf.

    Le repertoire de ma page appellante est celui là : /site/
    Mes fichiers swf sont dans ce répertoire : /medias/pedago_15/
    Donc l'intégration de l'animation à ma page se fait comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0">
    <param name="movie" value="../medias/pedago_15/index.swf">
    <param name="quality" value="high">
    <embed src="../medias/pedago_15/index.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>
    </object>
    Au clic sur un bouton, l'anim "index.swf" va charger une autre anim comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    on (release) {
    loadMovieNum("boat2.swf", 0);
    }
    Pour que ça marche, il faut que le fichier "boat2.swf" soit placé dans le repertoire de la page appelante (/site/) , et pas dans celui des médias (/medias/pedago_15/). Et c'est là qu'est tout le problème !
    Ce que j'aimerais savoir c'est s'il existe une fonction identique à loadMovieNum() qui prendrait comme référence le repertoire de l'animation appellante au lieu de celui de la page.

    Histoire de compliquer les choses, n'importe qui (avec un mot de passe) peut poser ce genre d'anim flash par l'interface d'admin. Donc je ne peux pas toucher au code ActionScript (dommage pour le passage de paramètres). Mais si la fonction que je cherche existe je peux la communiquer dans l'aide.


    Sinon pour info, j'ai trouvé une solution bricolage sans toucher au code ActionScript, il s'agit de poser une page html dans le même repertoire que les anims flash :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title></title>
    </head>
    <body style="width: 700px; height: 500px; margin: 0; padding: 0;">
     
    	<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="700" height="500">
    		<param name="movie" value="scene.swf" />
    		<param name="quality" value="high" />
    		<embed src="scene.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="700" height="500" />
     
    	</object>
     
    </body>
    </html>
    et d'intégrer cette page à ma page appellante par une <iframe> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <iframe src="../medias/pedago_15/index.html" frameborder="0" width="700" height="500"></iframe>


    Voilà, ça ressemble plus à un roman que le message d'avant, mais j'espère avoir été claire.

    Lulu

  4. #4
    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
    hi,
    quelle patience, bravo.
    Ce qui semble un peu tordu dans ton histoire c'est vouloir répartir tes animations dans différents répertoires (pourquoi pas) mais sans toucher l'url du loadMovie.
    Citation Envoyé par lulublu
    Pour que ça marche, il faut que le fichier "boat2.swf" soit placé dans le repertoire de la page appelante (/site/) , et pas dans celui des médias (/medias/pedago_15/).
    Ben non, tu peux très bien écrire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    on (release) {
    loadMovieNum("/medias/pedago_15/boat2.swf", 0);
    }
    En complément tu pourrais mettre à jour un fichier importé par ton application à son démarrage qui contiendrait les différentes URL complétes nécessaires.

    Je ne suis hélas pas certains d'avoir répondu clairement à ton problème ?
    Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
    Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
    MERCI

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Merci de répondre aussi vite, mais je n'ai visiblement pas encore été assez claire.

    Ce qui semble un peu tordu dans ton histoire c'est vouloir répartir tes animations dans différents répertoires (pourquoi pas) mais sans toucher l'url du loadMovie.
    Non, je souhaite au contraire qu'ils soient tous dans le même répertoire.

    Ben non, tu peux très bien écrire ceci :
    Code :

    on (release) { loadMovieNum("/medias/pedago_15/boat2.swf", 0); }
    Je ne peux pas non plus, le repertoire dans lequel vont se placer les medias est créé dynamiquement lorsqu'ils sont posés sur le serveur. Normalement la personne qui s'en occupe n'a aucune idée du chemin qu'auront ses fichiers.

    Comme je le disait dans mon précédent message, je pourrais fournir un basepath en paramètre à l'anim, mais je souhaite que la seule chose dont les concepteurs d'anim devraient avoir à s'occuper soit que leurs anims s'appellent en chemin relatif, en étant toutes dans le même répertoire.

    Autre chose : l'appli en question existe déja, mais elle est en phase de test, et intégrée temporairement à un portail. Ca pourrait changer d'ici juin, d'où l'importance d'une arborescence carrée et de l'utilisation des chemins relatifs.

    En complément tu pourrais mettre à jour un fichier importé par ton application à son démarrage qui contiendrait les différentes URL complétes nécessaires.
    ??? Je ne vois pas ce que tu veux dire.

    J'ai oublié de préciser 2 choses :
    - je ne suis pas l'auteur de cette animation, elle vient d'un collègue graphiste (totalement non développeur) qui ne fait presque pas d'actionscript
    - c'est moi qui ai développé l'appli qui va autour, j'essaie de la faire évoluer en gardant une structure carrée (pas facile quand les collègues veulent faire des choses qui n'étaient pas prévues à la conception)


    J'espère que les nuages s'estompent doucement ...


    Lulu

  6. #6
    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
    bon...
    Je vais passer pour le plus lourdaud de la planête (voir même au delà) mais je ne comprends plus rien ??

    Citation Envoyé par lulublu
    Non, je souhaite au contraire qu'ils soient tous dans le même répertoire.
    tu rajoutes :
    le repertoire dans lequel vont se placer les medias est créé dynamiquement
    Alors, ils sont ou ces .swf ????

    Pour ce qui est d'un fichier externe (exemple config.xml) qui décrirait éventuellement la structure de ton architecture je parle d'un fichier xml qui ressemblerait à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <ItemList>
       <item nom="bateau" path="/medias/pedago_15/boat2.swf"/>
       <item nom="avion" path="/medias/pedago_15/plane5.swf"/>
       ...
    </ItemList>
    Ensuite tu charges ce fichier avec un objet XML et tu peux récupérer tous les chemins de chaque animations.
    Bien sur tout cela nécessite de revoir la programmation du fichier index.swf
    Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
    Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
    MERCI

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Quelle ténacité ! Je n'aurais pas tenu aussi longtemps à ta place.
    Du coup j'en profite pour essayer encore un coup de t'expliquer.


    Lorsque l'utilisateur lambda uploade ses fichiers swf par l'interface administrateur, le repertoire pedago_xx est créé, et tous les fichiers swf vont dedans. Donc ils restent tous dans le même répertoire.

    Ma page media.php qui doit appeller ces fichiers est à un tout autre endroit de l'arborescence.
    Ca ne pose aucun problème de récupérer le premier de ces fichiers, comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <param name="movie" value="../medias/pedago_15/index.swf" />
    Lorsqu'on clique sur un des boutons dans cette anim, on charge un autre fichier comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    on (release) { 
    loadMovieNum("boat2.swf", 0); 
    }
    Par cette instruction, il comprend "va chercher le fichier boat2.swf qui est dans le même répertoire que ta page media.php", alors que le fichier est dans le même répertoire que "index.swf".


    Je cherche une fonction qui si elle s'appellait loadMovieLaOuOnEst(), pourrait s'utiliser comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    on (release) { 
    loadMovieLaOuOnEst("boat2.swf", 0); 
    }
    et comprendrait ça : "va chercher le fichier boat2.swf qui est dans le même répertoire que le fichier index.swf".

    Ce genre de fonction n'existe sûrement pas, mais peut-être que par un code simple on peut récupérer le path du fichier courant pour le concaténer au nom du fichier à charger.

    Je ne veux pas me lancer dans des histoires de fichiers XML parce que je risque d'avoir ce problème plusieurs fois, même quand je ne travaillerais plus ici, et que les animations peuvent être faites par plusieurs personnes différentes que je ne connais pas.
    Je voudrais pouvoir simplement leur donner un bout de code (remplacez loadMovieNum() par loadMovieLaOuOnEst()) pour que ça se passe bien à tous les coups.


    Je sens que ça va venir...

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Après décorticage minutieux de l'aide, voilà ce que j'ai fini par faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    /** Charge un movie dans le même repertoire que ce fichier .swf
     *    par la fonction loadMovieNum()
     */
    function loadMovieRelatif(url:String, level:Number) {
        var tableau_path = _url.split("/");
        tableau_path.pop();
        var path = tableau_path.join("/")+"/";
     
        loadMovieNum(path+url, level);
    }
    puis dans les fichiers qui en appellent d'autres au clic, on remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    loadMovieNum("boat2.swf", 0);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    loadMovieRelatif("boat2.swf", 0);
    Cette fonction préfixe l'url du movie à charger avec le chemin du swf courant, donc si index.swf contient ce code, il chargera le fichier boat2.swf qui est dans le même répertoire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Raccourci Chemin relatif pour la cible
    Par rabobsky dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 07/11/2005, 13h57
  2. Prb de chemin relatif
    Par hitchie dans le forum MFC
    Réponses: 4
    Dernier message: 10/05/2005, 15h46
  3. [Plugin Tomcat] Chemin relatif
    Par cloogy dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 01/03/2005, 16h26
  4. [XSL-FO] Chemin relatif d'une image
    Par JustAGphy dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 04/08/2004, 13h25
  5. [JSP] Include, problème de chemin relatif
    Par dafly dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 15/04/2004, 14h11

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