bonjour à tous, voilà depuis quelque temps je cherche à faire un affichage d'aéroport comme [url=http://www.utr-online.com/Software.asp?page=5]celui-ci[/url], c'est du flash et mes connaissance sont inexistante, snif dommage. donc j'ai trouvé autre chose, c'est moin bien mais bon c'est une base. [code]

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title></title><script>
// 29-10-2003 - francktfr@systeme-d.net
// écrit pour http://www.systeme-d.net

var CodeLetter = new Array() // Tableau des symboles HTML
for (i=32; i<255; i++){ if (i<127 || i>160){CodeLetter.push(String.fromCharCode(i))} } // Remplissage du tableau

var OrgLetter = new Array() // Tableau des lettres du texte
var CurDone = new Array() // Tableau des lettres déja remplacées

function Texte(obj, Text){
OrgLetter = Text.split("")
CurDone = new Array()
for (i=0; i<OrgLetter.length; i++){CurDone.push(0)}
LoopText(0, obj)
}
function LoopText(i, Obj){
if (i >= (CodeLetter.length-1)){return} // cas ou certain symboles ne sont pas trouvés
if (ShowText(CodeLetter*, Obj) >= OrgLetter.length){return}
setTimeout("LoopText(" + (i+1) + ","+Obj.id+")",30)
}
function ShowText(sLetter, Obj){ // Ecrit le texte en cours
var txt = ""
for (a=0; a<OrgLetter.length; a++){
if (CurDone[a])
{txt += OrgLetter[a]}
else
{
if(sLetter==OrgLetter[a]){CurDone[a]=1;}
txt += sLetter
}
}
Obj.innerText = txt
var Dones = 0
for (a=0; a<CurDone.length; a++){if(CurDone[a])Dones++}
return(Dones)
}
</script>[/code] en ligne 44 j'ai essayer de lancé une seconde ligne avec un magnifique .... j'ai honte. Cela ne marche pas, comment puis je faire pour lui faire faire autant de ligne que je veux? merci d'avance flo

9 réponses


flo3376
Auteur
Réponse acceptée

bon histoire de couper court à ce script au problème sans solution, j'en ai trouvé un autre, beaucoup plus sympa [code]

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title></title><script>
// 31-10-2003 - francktfr@systeme-d.net
// écrit pour http://www.systeme-d.net

var Blocs = new Array()
var Sentence = new Array()

Sentence.push("Un panneau d'affichage")
Sentence.push("comme ceux qu'on trouve")
Sentence.push("dans les garres ... :o)")
Blocs.push(Sentence)
Sentence = new Array()
Sentence.push("Vous y marquez ce que")
Sentence.push("vous voulez, il n'y a")
Sentence.push("pas de limites ...")
Blocs.push(Sentence)
Sentence = new Array()
Sentence.push("Ça pourrait faire un")
Sentence.push("bon lecteur de news")
Blocs.push(Sentence)

var iDones = new Array() // Tableau des caracteres placés
var TotalDone = 0 // Total des caracteres placés
var RowSpeed = 1400 // Interval entre rangée (ms)
var ColSpeed = 100 // Interval entre colonne (ms)
var BlockSpeed = 2000 // Temps d'affichage de bloc de texte (ms)
var LenX = 0 // Nombre de colonnes
var LenY = 0 // Nombre de rangées
var CodeLetter = new Array() // Tableau des symboles HTML
for (i=32; i<255; i++){ if (i<127 || i>160) CodeLetter.push(String.fromCharCode(i))} // Remplissage du tableau
// Cree un chaine avec que des " "
function Str(Len){
var Result = ""
for (s=1; s<=Len; s++){Result += " "}
return(Result)
}
// verification des phrases + mise a la bonne dimension et dimensions du tableau
function CheckLetters(){
var msg = ""
for (i=0; i<Blocs.length; i++){
if (LenY < Blocs.length){LenY = Blocs.length}
for (j=0; j<Blocs.length; j++){
for (a=0; a<Blocs
[j].length; a++){
var isin = 0
for (c=0; c<CodeLetter.length; c++){
if(CodeLetter[c] == Blocs[j].charAt(a)){isin = 1; break}
}
if(!isin){msg += Blocs
[j][a] + " inconnu \n"}
}
if (LenX < Blocs[j].length){LenX = Blocs[j].length}
}
}
if(msg != ""){alert(msg); return(0)}
for (i=0; i<(LenXLenY); i++){iDones.push(0)}
// Remplissage des lignes et caracteres manquants
var diff = 0
for (i=0; i<Blocs.length; i++){
for (j=0; j<Blocs
.length; j++){
diff = LenX-Blocs[j].length
if (diff){Blocs
[j] += Str(diff)} // Complete le reste de la chaine
}
diff = LenY-Blocs.length
if (diff){ for (j=0; j<diff; j++) {Blocs
.push(Str(LenX))} } // creation d'une nouvelle chaine
}
return(1)
}
function InitPanel(Container){
if (!CheckLetters()){return(0)}
// Création du tableau HTML
var table = "<TABLE CELLPADDING=0 CELLSPACING=1 CLASS=Panel>\n"
for (j=0; j<LenX; j++){table += "<COL WIDTH=13>"}
for (i=0; i<LenY; i++){
table += "<TR>"
for (j=0; j<LenX; j++){table += "<TD HEIGHT=18 ID=AF"+i+""+j+" CLASS=PanelCell> </TD>"}
table += "</TR>"
}
table += "</TABLE>"
Container.innerHTML = table
WriteBlock(0)
}
// Retourne L'index du caractere
function CodeIndex(car){
var res = CodeLetter.length
for (i=0; i<CodeLetter.length; i++){if (car == CodeLetter){return(i)}}
return(0)
}
// Passage au prochain bloc de phrases ou au premier
function NextBlock(BlockIndex){
BlockIndex < (Blocs.length-1) ? BlockIndex++ : BlockIndex=0
WriteBlock(BlockIndex)
}
// Lance l'ecriture des phrases
function WriteBlock(i){
for (a=0; a<(LenX
LenY); a++){iDones[a]=0}
TotalDone = 0
for (r=0; r<Blocs.length; r++){setTimeout("WriteRow("+i+", "+r+")",rRowSpeed)}
}
// Lance l'ecriture des lettres
function WriteRow(BlockIndex, RowIndex){
for (l=0; l<Blocs[BlockIndex][RowIndex].length; l++){
eval("var start = CodeIndex(AF"+RowIndex+""+l+".innerText)")
setTimeout("WriteLetter("+BlockIndex+", "+RowIndex+","+l+","+start+")",lColSpeed)
}
}
function WriteLetter(BlockIndex, RowIndex, LetterIndex, CodeIndex){
if (!iDones[(LenX
RowIndex)+(LetterIndex)])
{
eval("var Cel = AF"+RowIndex+""+LetterIndex)
if (Blocs[BlockIndex][RowIndex].charAt(LetterIndex) == CodeLetter[CodeIndex]){
iDones[(LenXRowIndex)+(LetterIndex)]++
TotalDone++
if (TotalDone >= (LenX
LenY)){setTimeout("NextBlock("+BlockIndex+")",BlockSpeed)}
}
Cel.innerText = CodeLetter[CodeIndex]
CodeIndex < CodeLetter.length-1 ? CodeIndex++ : CodeIndex = 0
setTimeout("WriteLetter("+BlockIndex+", "+RowIndex+", "+LetterIndex+","+CodeIndex+")",10)
}
}
</script><style>
.Panel
{
font:monospace;
font-size: 30px ;
color: #FED401;
table-layout: fixed;
text-align: center;
background: #494949;

}

.PanelCell
{
width:30px;
height:35px;
border: 1 solid none;
vertical-align: middle;
background: #000000;
}
</style>

[/code] merci de votre aide

Bonsoir,
tu penses pouvoir mettre ton texte dans une variable pour ne pas avoir a mettre tout ce texte dans ta balise body?
Visiblement c'est la fonction texte qui est chargée aussi tu devrai approfondir sur celle ci peut etre!!
ton LoopText est à 0 tu as essayé de mettre un autre chiffre ?
Je dis ça comme ça pour le coup le javascript n'est pas mon fort :/

flo3376
Auteur

pour moi connaissance: aucune donc je ne sais même pas ce que fait ce code, enfin je suppose
mais le soucis je souhaiterai faire

afficher avec ça

$ligne1
$ligne2
...

En Jquery tu as ce petit effet sympa mais ça revient pas au même que le tiens mais je pense que si tu fais cette affichage dans un tableau c'est peut être faisable je sais pas trop!!
Affichage comme les aéroport

flo3376
Auteur

je l'ai aperçu mais je n'ai pas de notion de JS

flo3376
Auteur

résultat voilà ou j'en suis manque juste cette histoire de saut de ligne

Le br n'est pas bon pour le coup ça devrait etre <br/> et non l'inverse après c'est pas du code html que tu écrit mais bien du texte!
Je n'ai pas testé mais les deux choses que j'essaierai c'est mettre ton texte dans une variable de façon à "gérer" les retour à la ligne ou voir ce qui se passe au niveau de ton line qui a l'air d t'indiquer une ligne et en gros essayer ça :

<BODY onload="Texte(line,'FFS2 FFSL En Montée dep:14.58 ARR 15.45',line,' FFS2 FFSL En Montée dep:14.58 ARR 15.45')"">

après vraiment j'ai pas regarder mais ça serait les choses que j'essaierai au début avec aussi dans ton loop text

function Texte(obj, Text){
    OrgLetter = Text.split("")
    CurDone = new Array()
    for (i=0; i<OrgLetter.length; i++){CurDone.push(0)}
    LoopText(2, obj)

j'ai mis un 2 au lieu du zéro sachant que je comprend que c'est une boucle et que du coup il faut peut etre mettre le nombre de boucle je ne sais pas désolé!
Je te dis peut être que des bêtises mais essaie t'as rien à perdre ^^

J'ai un peu bosser sur ton soucis et le problème c'est pour ta fonction en js il te faut charger plusieur fonction à chaque fis u alors faire en sorte que la première face un texte plus grand je sais pas trop!
Bref j'ai fait ç et pour l'affichage ça marche comme tu veux du moins je pense et tu devrais avoir l'affichage que tu désire!
Après je pense qu'il ya plus simple et surtout moins MOCHE mais la ça dépasse mes compétences désolé!
je t'ai fais ça à rajouté juste à la fin de ton script!

window.onload = function() { Texte(); Texte();}; // fonction qui te permet de mettre plusieurs fonction dans ton onload 
</SCRIPT>
</HEAD>
<BODY onload="Texte(linue,'FFS2 FFSL En Montée dep:14.58 ARR 15.45');Texte(line,'FFS2 FFSL En Montée dep:14.58 ARR 15.45');Texte(lin,'FFS2 FFSL En Montée dep:14.58 ARR 15.45');Texte(li,'FFS2 FFSL En Montée dep:14.58 ARR 15.45')">
<!-- Dans ton body je change a chaque foid le line car c'est le nom de l'id de la span en dessous et forcément s'ils ont le même id il ya conflit! Voilà l'affichage que tu veux mais encore uen fois c'est très moche pas optimisé et je pense qu'il y a mieux ça t'aidera peut être de ton côté!! -->    
<SPAN ID="linue" STYLE="padding: 2; border: 2 outset; font: 40px monospace ; letter-spacing:1px; background: BLACK; color: WHITE; display:block;float:left;background:#444;"></SPAN>
<SPAN ID="line" STYLE="padding: 2; border: 2 outset; font: 40px monospace ; letter-spacing:1px; background: BLACK; color: WHITE; display:block;float:left;background:#444;"></SPAN>
<SPAN ID="lin" STYLE="padding: 2; border: 2 outset; font: 40px monospace ; letter-spacing:1px; background: BLACK; color: WHITE; display:block;float:left;background:#444;"></SPAN>
<SPAN ID="li" STYLE="padding: 2; border: 2 outset; font: 40px monospace ; letter-spacing:1px; background: BLACK; color: WHITE; display:block;float:left;background:#444;"></SPAN>
</BODY>

Après pour ton style je te conseille de faire autrement mais je suppose que c'est pour tes test ! :)
Courage!!

flo3376
Auteur

bon histoire de couper court à ce script au problème sans solution, j'en ai trouvé un autre, beaucoup plus sympa [code]

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title></title><script>
// 31-10-2003 - francktfr@systeme-d.net
// écrit pour http://www.systeme-d.net

var Blocs = new Array()
var Sentence = new Array()

Sentence.push("Un panneau d'affichage")
Sentence.push("comme ceux qu'on trouve")
Sentence.push("dans les garres ... :o)")
Blocs.push(Sentence)
Sentence = new Array()
Sentence.push("Vous y marquez ce que")
Sentence.push("vous voulez, il n'y a")
Sentence.push("pas de limites ...")
Blocs.push(Sentence)
Sentence = new Array()
Sentence.push("Ça pourrait faire un")
Sentence.push("bon lecteur de news")
Blocs.push(Sentence)

var iDones = new Array() // Tableau des caracteres placés
var TotalDone = 0 // Total des caracteres placés
var RowSpeed = 1400 // Interval entre rangée (ms)
var ColSpeed = 100 // Interval entre colonne (ms)
var BlockSpeed = 2000 // Temps d'affichage de bloc de texte (ms)
var LenX = 0 // Nombre de colonnes
var LenY = 0 // Nombre de rangées
var CodeLetter = new Array() // Tableau des symboles HTML
for (i=32; i<255; i++){ if (i<127 || i>160) CodeLetter.push(String.fromCharCode(i))} // Remplissage du tableau
// Cree un chaine avec que des " "
function Str(Len){
var Result = ""
for (s=1; s<=Len; s++){Result += " "}
return(Result)
}
// verification des phrases + mise a la bonne dimension et dimensions du tableau
function CheckLetters(){
var msg = ""
for (i=0; i<Blocs.length; i++){
if (LenY < Blocs.length){LenY = Blocs.length}
for (j=0; j<Blocs.length; j++){
for (a=0; a<Blocs
[j].length; a++){
var isin = 0
for (c=0; c<CodeLetter.length; c++){
if(CodeLetter[c] == Blocs[j].charAt(a)){isin = 1; break}
}
if(!isin){msg += Blocs
[j][a] + " inconnu \n"}
}
if (LenX < Blocs[j].length){LenX = Blocs[j].length}
}
}
if(msg != ""){alert(msg); return(0)}
for (i=0; i<(LenXLenY); i++){iDones.push(0)}
// Remplissage des lignes et caracteres manquants
var diff = 0
for (i=0; i<Blocs.length; i++){
for (j=0; j<Blocs
.length; j++){
diff = LenX-Blocs[j].length
if (diff){Blocs
[j] += Str(diff)} // Complete le reste de la chaine
}
diff = LenY-Blocs.length
if (diff){ for (j=0; j<diff; j++) {Blocs
.push(Str(LenX))} } // creation d'une nouvelle chaine
}
return(1)
}
function InitPanel(Container){
if (!CheckLetters()){return(0)}
// Création du tableau HTML
var table = "<TABLE CELLPADDING=0 CELLSPACING=1 CLASS=Panel>\n"
for (j=0; j<LenX; j++){table += "<COL WIDTH=13>"}
for (i=0; i<LenY; i++){
table += "<TR>"
for (j=0; j<LenX; j++){table += "<TD HEIGHT=18 ID=AF"+i+""+j+" CLASS=PanelCell> </TD>"}
table += "</TR>"
}
table += "</TABLE>"
Container.innerHTML = table
WriteBlock(0)
}
// Retourne L'index du caractere
function CodeIndex(car){
var res = CodeLetter.length
for (i=0; i<CodeLetter.length; i++){if (car == CodeLetter){return(i)}}
return(0)
}
// Passage au prochain bloc de phrases ou au premier
function NextBlock(BlockIndex){
BlockIndex < (Blocs.length-1) ? BlockIndex++ : BlockIndex=0
WriteBlock(BlockIndex)
}
// Lance l'ecriture des phrases
function WriteBlock(i){
for (a=0; a<(LenX
LenY); a++){iDones[a]=0}
TotalDone = 0
for (r=0; r<Blocs.length; r++){setTimeout("WriteRow("+i+", "+r+")",rRowSpeed)}
}
// Lance l'ecriture des lettres
function WriteRow(BlockIndex, RowIndex){
for (l=0; l<Blocs[BlockIndex][RowIndex].length; l++){
eval("var start = CodeIndex(AF"+RowIndex+""+l+".innerText)")
setTimeout("WriteLetter("+BlockIndex+", "+RowIndex+","+l+","+start+")",lColSpeed)
}
}
function WriteLetter(BlockIndex, RowIndex, LetterIndex, CodeIndex){
if (!iDones[(LenX
RowIndex)+(LetterIndex)])
{
eval("var Cel = AF"+RowIndex+""+LetterIndex)
if (Blocs[BlockIndex][RowIndex].charAt(LetterIndex) == CodeLetter[CodeIndex]){
iDones[(LenXRowIndex)+(LetterIndex)]++
TotalDone++
if (TotalDone >= (LenX
LenY)){setTimeout("NextBlock("+BlockIndex+")",BlockSpeed)}
}
Cel.innerText = CodeLetter[CodeIndex]
CodeIndex < CodeLetter.length-1 ? CodeIndex++ : CodeIndex = 0
setTimeout("WriteLetter("+BlockIndex+", "+RowIndex+", "+LetterIndex+","+CodeIndex+")",10)
}
}
</script><style>
.Panel
{
font:monospace;
font-size: 30px ;
color: #FED401;
table-layout: fixed;
text-align: center;
background: #494949;

}

.PanelCell
{
width:30px;
height:35px;
border: 1 solid none;
vertical-align: middle;
background: #000000;
}
</style>

[/code] merci de votre aide