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

JavaScript Discussion :

script pour bannières image ET flash.


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 15
    Points
    15
    Par défaut script pour bannières image ET flash.
    Bonjour,
    j'ai récupéré un vieux script ("banniere pub") de défilement de bannières en format image que j'ai essayé d'adapter dans un premier temps uniquement pour des bannières flash

    en gros j'ai fait ça :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    ejs_banurl = new Array;
    ejs_banimageUrl=new Array;
     
    ejs_banimageUrl[0] = "http://www.site.com/images/anim1.swf";
    ejs_banurl[0] = "http://www.site.com";
     
    affiche = false;
     
    function AffichePub()
    {
    if(!affiche)
    {
    numimage = 0;
    document.write('<object><param name="movie" value="' + ejs_banimageUrl[numimage] + '"><param name="menu" value="true"><param name="quality" value="high"><embed src="' + ejs_banimageUrl[numimage] + '" loop="1" menu="false" quality="high" width="468" height="60" ></embed></object>');
    affiche = true;
    }
    else
    {
    if(numimage == (ejs_banurl.length-1))
    numimage = 0;
    else
    numimage++;
    document.ejs_banpub.src=ejs_banimageUrl[numimage];
    }
    setTimeout("AffichePub()",20000);
    }
    AffichePub();
    ...et mon anim s'affiche effectivement(pour bien faire il aurait fallu que je mette deux anims, je sais.)

    Ceci dit, et première chose, j'ai lu que les "document.write" n'étaient pas recommandés. Par quoi et comment les remplacer ?

    par ailleurs je ne comprends pas trop ce que représente dans la première condition, et pourquoi on donner à affiche la valeur true.

    Je ne comprends pas non plus ce que fait exactement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.ejs_banpub.src=ejs_banimageUrl[numimage];
    là où ça se complique, c'est que j'ai besoin d'afficher aussi bien des bannières au format image (gif, jpeg...) qu'au format flash swf.

    j'ai donc essayé de faire comme ceci :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    ejs_banurl = new Array;
    ejs_banimageUrl=new Array;
    ejs_swf = new Array;
     
    ejs_banimageUrl[0] = "http://www.site.com/images/anim.swf";
    ejs_banurl[0] = "http://www.site1.com";
    ejs_swf = true;
     
    ejs_banimageUrl[1] = "http://www.site.com/images/anim.gif";
    ejs_banurl[1] = "http://www.site2.fr";
    ejs_swf[1] = false;
     
    affiche = false;
     
    function AffichePub()
    {
    if(!affiche)
    {
     
    numimage = 0;
    if(ejs_swf[numimage]==true)
    {
    document.write('<OBJECT><PARAM NAME=movie VALUE="' + ejs_banimageUrl[numimage] + '"><PARAM NAME="menu" VALUE="true"><PARAM NAME="quality" VALUE="high"><EMBED href="' + ejs_banimageUrl[numimage] + '" TYPE="application/x-shockwave-flash" loop="1" menu="false" quality="high" width="695" height="90" ></EMBED></OBJECT>')
    affiche = true;
    }
    else
    {
    document.write ('<A HREF="#" onClick="window.open(ejs_banurl[numimage],\'_blank\')"><IMG SRC="' + ejs_banimageUrl[numimage] + '" BORDER=0 NAME=ejs_banpub></A>')
    affiche = true;
    }
    }
    else
    {
    if(numimage == (ejs_banurl.length-1))
    numimage = 0;
    else
    numimage++;
    document.ejs_banpub.src=ejs_banimageUrl[numimage];
    }
    setTimeout("AffichePub()",2000);
    }
    AffichePub();
    Vous allez sans doute trouver le code maladroit et plein d'erreurs, mais c'est un peu pour ça que je poste

    Là ça alterne effectivement les bannières sur IE, mais seule la bannière gif s'affiche, le flash est vide.

    sur firefox, rien ne s'affiche.

    Comme ça fait un moment que je patauge, si une bonne âme voulait bien m'aider un peu... !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    par ailleurs je ne comprends pas trop ce que représente
    Code :

    (!affiche)

    dans la première condition, et pourquoi on donner à affiche la valeur true.
    La variable "affiche" est initialisée à "false", puis lors du premier passage dans la fonction "AfficherPub()", "affiche" étant égale à "false", on insert l'élément "<object>" ou "<a>" dans la page, puis on passe "affiche" à "true". Ainsi, lors des appels suivants (via setTimeout) de la fonction "AfficherPub()", "affiche" étant égale à "true", pas d'insertion de l'élément "<object>" ou "<a>" puisqu'il est déjà présent.

    A+

  3. #3
    Invité
    Invité(e)
    Par défaut
    Re

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.ejs_banpub.src=ejs_banimageUrl[numimage];
    Modifie la propriété "src" de l'objet "ejs_banpub" en lui assignant surement le lien vers la nouvelle image à visualiser.

    A+

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Salut.

    Il y a beaucoup de choses dans ta demande, ce qui peut expliquer le peu de réponses. D'autre part, certains éléments de réponse vont manifestement au-delà de tes connaissances et impliquent donc quasiment de faire un cours pour te les expliquer (ce qui n'est pas le but du forum).

    Sinon, pour reprendre certains points :
    Ceci dit, et première chose, j'ai lu que les "document.write" n'étaient pas recommandés. Par quoi et comment les remplacer ?
    Effectivement, document.write est fortement déconseillé pour diverses raisons. Une des principales à mes yeux est que la tendance actuelle du Web est la séparation du contenu (HTML), de la présentation (CSS) et du comportement (JavaScript). Or la méthode write() empêche absolument cette séparation.
    De plus, actuellement et tant que ce genre de méthodes existeront, cela signifie que contrairement aux autres ressources d'une page, JavaScript est obligé de se charger de façon synchrone (blocage du chargement du reste de la page), ce qui nuit aux performances. Pour le remplacer, il existe des méthodes comme innerHTML (là aussi déconseillé car propriétaire IE à l'origine et non confirmé par le W3C) ou les méthodes dites du DOM (createElement, appendChild, insertBefore etc.)

    Je ne comprends pas non plus ce que fait exactement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.ejs_banpub.src=ejs_banimageUrl[numimage];
    Ce code se contente de modifier la source de l'image affichée, donc de changer d'image.

    là où ça se complique, c'est que j'ai besoin d'afficher aussi bien des bannières au format image (gif, jpeg...) qu'au format flash swf.
    Oui, c'est bien là où ça se complique, car un objet flash et une image ne correspondent pas aux mêmes éléments HTML, il faut donc à chaque passage dans la fonction recréer la portion HTML correspondante (tout en sachant que si tu fais un document.write sur une page qui a fini de se charger, l'ensemble de la page sera remplacé, tu n'auras donc plus que ta bannière sur ta page).

    Je te conseille donc de te pencher sur la programmation JavaScript (nous avons pas mal de tutos) et bien sûr, nous seront là pour t'aider et te guider dans l'apprentissage !

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    bonjour, merci pour vos réponses,
    je n'ai pas encore eu le temps de les analyser parce que j'ai des soucis d'ordinateur (je ne poste pas de chez moi là), mais je le ferai sans faute à partir de mercredi pour tester vos suggestions.
    désolé si ma demande a pu paraître insistante.
    bien entendu je posterai pour dire si c'est résolu ou pas pour moi.

    merci de votre aide.

Discussions similaires

  1. Script pour décaler image dans une zone SVG
    Par Pitus dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 16/05/2011, 19h13
  2. [POO] script pour remplacer un fichier image par un fichier flash
    Par tomguiss dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/12/2008, 13h03
  3. script pour déplacer image avec souris, pb avec Netscape
    Par jejerome dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/11/2006, 17h59
  4. script pour redimmensnionner image et taille maxi image
    Par fabien14 dans le forum Langage
    Réponses: 21
    Dernier message: 15/09/2006, 17h21
  5. [FLASH MX] Problème pour défilement images
    Par Buzhug dans le forum Flash
    Réponses: 10
    Dernier message: 22/10/2004, 21h09

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