Accueil > > > PANNEAU D'AFFICHAGE V.2
PANNEAU D'AFFICHAGE V.2
Information sur la source
Description
Plus complet que le premier, il n'y a pas de limite dans le nombre de phrases ou leur longueur, mais ca peut ramer sur certain postes.
Source
- <HTML>
- <HEAD>
- <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 = 700 // Interval entre rangée (ms)
- var ColSpeed = 10 // Interval entre colonne (ms)
- var BlockSpeed = 1000 // 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[i].length){LenY = Blocs[i].length}
- for (j=0; j<Blocs[i].length; j++){
- for (a=0; a<Blocs[i][j].length; a++){
- var isin = 0
- for (c=0; c<CodeLetter.length; c++){
- if(CodeLetter[c] == Blocs[i][j].charAt(a)){isin = 1; break}
- }
- if(!isin){msg += Blocs[i][j][a] + " inconnu \n"}
- }
- if (LenX < Blocs[i][j].length){LenX = Blocs[i][j].length}
- }
- }
- if(msg != ""){alert(msg); return(0)}
- for (i=0; i<(LenX*LenY); 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[i].length; j++){
- diff = LenX-Blocs[i][j].length
- if (diff){Blocs[i][j] += Str(diff)} // Complete le reste de la chaine
- }
- diff = LenY-Blocs[i].length
- if (diff){ for (j=0; j<diff; j++) {Blocs[i].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[i]){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[i].length; r++){setTimeout("WriteRow("+i+", "+r+")",r*RowSpeed)}
- }
- // 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+")",l*ColSpeed)
- }
- }
- 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[(LenX*RowIndex)+(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: 14 Courier; COLOR: #FFFFCC; TABLE-LAYOUT: fixed; TEXT-ALIGN: center; BACKGROUND: #000000}
- .PanelCell {BORDER: 1 solid none; VERTICAL-ALIGN: middle; BACKGROUND: #006666}
- </STYLE>
- </HEAD>
- <BODY ONLOAD="InitPanel(dtable)">
-
- <DIV id=dtable></DIV>
-
- </BODY>
- </HTML>
<HTML>
<HEAD>
<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 = 700 // Interval entre rangée (ms)
var ColSpeed = 10 // Interval entre colonne (ms)
var BlockSpeed = 1000 // 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[i].length){LenY = Blocs[i].length}
for (j=0; j<Blocs[i].length; j++){
for (a=0; a<Blocs[i][j].length; a++){
var isin = 0
for (c=0; c<CodeLetter.length; c++){
if(CodeLetter[c] == Blocs[i][j].charAt(a)){isin = 1; break}
}
if(!isin){msg += Blocs[i][j][a] + " inconnu \n"}
}
if (LenX < Blocs[i][j].length){LenX = Blocs[i][j].length}
}
}
if(msg != ""){alert(msg); return(0)}
for (i=0; i<(LenX*LenY); 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[i].length; j++){
diff = LenX-Blocs[i][j].length
if (diff){Blocs[i][j] += Str(diff)} // Complete le reste de la chaine
}
diff = LenY-Blocs[i].length
if (diff){ for (j=0; j<diff; j++) {Blocs[i].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[i]){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[i].length; r++){setTimeout("WriteRow("+i+", "+r+")",r*RowSpeed)}
}
// 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+")",l*ColSpeed)
}
}
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[(LenX*RowIndex)+(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: 14 Courier; COLOR: #FFFFCC; TABLE-LAYOUT: fixed; TEXT-ALIGN: center; BACKGROUND: #000000}
.PanelCell {BORDER: 1 solid none; VERTICAL-ALIGN: middle; BACKGROUND: #006666}
</STYLE>
</HEAD>
<BODY ONLOAD="InitPanel(dtable)">
<DIV id=dtable></DIV>
</BODY>
</HTML>
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|