Trouver une ressource (Nouvelle version du moteur, plus rapide & pertinent, essayez le !)
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
PETIT EFFET DE TEXTE
Information sur la source
Description
Voici un snippet qui vous permettra de faire un petit effet de texte. Les lettres partent a tour de rôle de N espaces du bord, et se déplacent vers la gauche d'espace en espace. Le nombre d'espaces est configurable. En fait, c'est assez délicat a expliquer, je vous laisse regarder ;)
Source
- ;Alias
-
- alias dtext {
- if ($1 != $null && $2 isnum) {
- var %m 1- $+ $calc($len($1) * $2)
- if ($3 isnum %m) {
- var %l $int($calc($3 / $2)) , %k $calc($3 - %l * $2)
- return $+($left($1,%l),$str($chr(160),$iif($calc($2 - %k) == $2,0,$calc($ifmatch -1))),$mid($1,$calc(%l +1),1))
- }
- elseif (!$3) { return $gettok(%m,2,45) }
- }
- }
-
- ;Exemples d'utilisation
-
- alias dtext_editbox { var %i 1 , %t $1- | while ($dtext(%t,40,%i)) { editbox -a $ifmatch | inc %i } }
- ;En tapant /dtext_editbox <texte>, le texte apparaitra en défilant dans l'éditbox de la fenêtre active. Peut être utile pour créer un effet au démarrage d'un script.
-
- dialog dtext {
- title "Exemples pour /dtext"
- size -1 -1 140 26
- option dbu
- text "Cliquez sur <Faire défiler le texte> pour commencer ;)", 1, 2 3 139 8
- button "Faire défiler le texte", 2, 11 13 56 10
- button "Faire défiler le titre", 3, 69 13 56 10
- }
- on *:DIALOG:dtext:sclick:2,3:{
- if ($did == 2) { var %i 1 , %t $did(1) | while ($dtext(%t,20,%i)) { did -ra $dname 1 $ifmatch | inc %i } }
- elseif ($did == 3) { var %i 1 , %t $dialog($dname).title | while ($dtext(%t,30,%i)) { dialog -t $dname $ifmatch | inc %i } }
- }
- ;Tapez "/dialog -m dtext dtext" et testez les 2 boutons, l'un fait défiler le texte d'un ID, l'autre fait défiler la barre de titre du dialog :)
;Alias
alias dtext {
if ($1 != $null && $2 isnum) {
var %m 1- $+ $calc($len($1) * $2)
if ($3 isnum %m) {
var %l $int($calc($3 / $2)) , %k $calc($3 - %l * $2)
return $+($left($1,%l),$str($chr(160),$iif($calc($2 - %k) == $2,0,$calc($ifmatch -1))),$mid($1,$calc(%l +1),1))
}
elseif (!$3) { return $gettok(%m,2,45) }
}
}
;Exemples d'utilisation
alias dtext_editbox { var %i 1 , %t $1- | while ($dtext(%t,40,%i)) { editbox -a $ifmatch | inc %i } }
;En tapant /dtext_editbox <texte>, le texte apparaitra en défilant dans l'éditbox de la fenêtre active. Peut être utile pour créer un effet au démarrage d'un script.
dialog dtext {
title "Exemples pour /dtext"
size -1 -1 140 26
option dbu
text "Cliquez sur <Faire défiler le texte> pour commencer ;)", 1, 2 3 139 8
button "Faire défiler le texte", 2, 11 13 56 10
button "Faire défiler le titre", 3, 69 13 56 10
}
on *:DIALOG:dtext:sclick:2,3:{
if ($did == 2) { var %i 1 , %t $did(1) | while ($dtext(%t,20,%i)) { did -ra $dname 1 $ifmatch | inc %i } }
elseif ($did == 3) { var %i 1 , %t $dialog($dname).title | while ($dtext(%t,30,%i)) { dialog -t $dname $ifmatch | inc %i } }
}
;Tapez "/dialog -m dtext dtext" et testez les 2 boutons, l'un fait défiler le texte d'un ID, l'autre fait défiler la barre de titre du dialog :)
Conclusion
Utilisation :
$dtext(<texte>,<nombre>,<N>)
<texte> est le texte a faire défiler. <nombre> est le nombre d'espaces que devront parcourir les lettres avant d'arriver a leur place normale. <N> sert a retourner la Nième étape dans le déroulement de l'animation. Si <N> vaut zéro ou n'est pas spécifié, retourne le nombre total d'étapes.
Comme vous l'avez compris, cet alias seul ne sert a rien, car il ne retourne qu'une seule étape de l'animation. Il faut donc l'adapter à l'aide d'une boucle. Je vous ai donc fourni 2 exemples d'utilisation avec le code ;)
Historique
- 04 juin 2005 17:25:32 :
- - Erreur lors du copier/coller :p
- 04 juin 2005 17:28:26 :
- Erreur (bis)
Sources de la même categorie
Commentaires
|
CalendriCode
| | | L | M | M | J | V | S | D |
| | | | | 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 |
|
|