Petit effet de texte

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 024 fois - Téléchargée 27 fois

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

Ajouter un commentaire

Commentaires

cs_Exagone
Messages postés
22
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
21 avril 2009
-
je trouve sa bien , meme remarque que kindermaxi :)
cs_KiNdErMaXi
Messages postés
1052
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
30 novembre 2009
2 -
en tout cas, ca va vite :x et ca clignote :(
MaX_62
Messages postés
883
Date d'inscription
vendredi 22 octobre 2004
Statut
Membre
Dernière intervention
29 juin 2007
-
wims > if ($1 != $null) et if ($1) c'est pas le même...
Si $1 == 0, alors "if ($1 != $null)" est faux alors que "if ($1)" est vrai... Compris ? :]
tofu > merci, pas bête j'vais y réfléchir...
cs_wims
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1 -
J'aime bien cependant juste une remarque :
if ($1 != $null && $2 isnum) {
>>
if ($1 && $2 isnum) {

:)
cs_tofu
Messages postés
1726
Date d'inscription
vendredi 12 septembre 2003
Statut
Membre
Dernière intervention
13 juin 2009
1 -
ça pourrait être sympa à combiner ça ek ton truc de texte défilant ds une picture window

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.