Petit effet de texte

Contenu du snippet

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 / Exemple :


;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 ;)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.