国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison interface Web js tutoriel After Effects?:?l'opérateur Modulo (%)

After Effects?:?l'opérateur Modulo (%)

Jan 20, 2025 pm 08:40 PM

Explication détaillée de l'opérateur modulo (%) dans les expressions After Effects

L'opérateur modulo (%), également connu sous le nom d'opérateur reste, est un outil très utile dans la construction d'expressions, mais il peut ne pas être facile à comprendre pour les débutants. Cet article explique ses fonctionnalités et ses utilisations.

% est utilisé pour calculer le reste d'une équation. Par exemple?:

<code>10 % 3</code>

Cette expression renvoie 1 car le quotient de 10 divisé par 3 est 3, le reste est 1.

Ceci est utile pour créer des boucles lorsque vous travaillez avec des variables temporelles.

Expression de boucle

La plupart des concepteurs qui découvrent les expressions After Effects connaissent l'expression loopOut(). Cela nous permet d'utiliser "cycle" (cycle du début à la fin), "pingpong" (cycle du début à la fin et retour au début), "offset" (répéter les images clés mais à chaque fois avec un offset de valeur pour construire l'animation) ou "continuer" (pour continuer le mouvement en utilisant la vitesse de la dernière image clé) pour parcourir les propriétés de l'image clé. Ceci est très complet et couvre tout ce dont vous avez besoin pour l’animation d’images clés.

Cependant, si vous souhaitez boucler une expression, loopOut n'est pas une solution viable. Il peut y avoir de nombreuses raisons de ne pas vouloir utiliser d'images clés, mais la principale est si une valeur doit être mise à jour de manière dynamique et constante. Il est beaucoup plus facile de mettre à jour une expression attachée à un curseur que de mettre à jour un ensemble d'images clés.

Si le mouvement est continu, alors Linéaire ou Ease suffiront. Mais pour les animations complexes nécessitant une boucle, nous pouvons utiliser l'opérateur modulo temporel pour implémenter la boucle.

Pour voir comment cela fonctionne, copiez et collez l'expression suivante dans la propriété Texte source du calque de texte?:

<code>Math.floor(time % 5)</code>

Vous verrez le nombre de couches passer de 0 à 4 chaque seconde, revenant à 0 toutes les 5 secondes. En effet, le reste de l'expression change chaque seconde au fil du temps?:

隨時間變化的余數(shù)
1 % 5 = 1
2 % 5 = 2
3 % 5 = 3
4 % 5 = 4
5 % 5 = 0
La fonction Math.floor arrondit l'argument à un nombre entier.

After Effects: The Modulo Operator (%)

à partir de là, il est facile de voir comment l'utiliser lorsque vous devez animer des nombres entre des paramètres spécifiques.

Exemple?: Horloge numérique

Utilisons % pour créer une horloge numérique.

Les secondes doivent compter entre 0 et 60, et les minutes doivent être incrémentées tous les 60 intervalles. Collons à nouveau ceci dans la propriété Texte source du calque de texte?:

<code>10 % 3</code>

En divisant l'expression, notre variable sec comptera de 0 à 60, et la variable minute sera incrémentée à chaque multiple de 60 (encore une fois, nous utilisons Math.floor pour arrondir les nombres). L'instruction if qui suit ajoute un 0 devant la variable sec si elle est inférieure à 10, garantissant que notre variable secondes comporte toujours deux chiffres (vous pouvez également répéter cela pour les minutes, si vous le souhaitez). Ensuite, utilisez simplement des séparateurs de temps pour les combiner.

After Effects: The Modulo Operator (%)

Si vous souhaitez que le compteur fonctionne indépendamment du temps, vous pouvez obtenir le même effet en rempla?ant l'heure par un curseur et en réglant sa valeur.

Vous pouvez également faire clignoter le séparateur de temps à l'aide de l'opérateur modulo et du sélecteur d'expression de texte After Effects.

Accédez au calque de texte et ajoutez l'option d'animation Opacité au calque de texte (si vous ne savez pas comment procéder, vous pouvez tout savoir à ce sujet dans cet article). Ajoutez ensuite un sélecteur d'expression et supprimez le sélecteur de plage.

After Effects: The Modulo Operator (%)

Définissez l'opacité dans l'animateur sur 0 et ajoutez cette expression à la propriété Amount?:

//Le séparateur d'horloge numérique clignote //Ajouter au sélecteur d'expression

minute = Math.floor(time / 60);

minute = 10 && textIndex == 3 ? Math.floor(time2 % 1.5) 100?: 0;

J'ai écrit une instruction conditionnelle basée sur le fait que le nombre de chiffres dans la variable minutes n'est pas fixe. Tout d’abord, je copie la variable minutes de la propriété du texte source. J'utilise ensuite ceci pour calculer la valeur textIndex du séparateur de temps. Lorsqu’il n’y a qu’un seul chiffre dans l’affichage des minutes, il sera égal à 2. Lorsque l’affichage des minutes dépasse 10, il sera 3. Les instructions conditionnelles peuvent également être écrites comme des instructions, comme indiqué ci-dessous, pour expliquer davantage ce qu'elles font?:

if (minute = 10 && textIndex == 3) Math.floor(time2 % 1.5) 100 sinon 0

Si minutes est inférieur à 10 et textIndex est égal à 2, alors Math.floor(time2 % 1.5) 100 affecte le deuxième caractère du calque de texte. Cela fera clignoter les lettres (rapport on/off 2:1) grace à l'opérateur modulo. La fonction Math.floor arrondit le nombre et l'expression entière est finalement multipliée par 100 pour basculer entre 0 et 100, qui correspond à la plage du sélecteur d'expression.

Cependant, si les minutes sont égales ou supérieures à 10 et que textIndex est égal à 3, l'effet sera appliqué au troisième caractère du calque de texte. Ceci explique les chiffres supplémentaires dans l'affichage des minutes. Si l'affichage de vos minutes doit être supérieur à 99, vous devrez ajouter un autre paramètre pour affecter l'affichage du séparateur de temps lorsqu'il est en quatrième position.

Cependant, si l'affichage de vos minutes est réglé sur un nombre constant de chiffres, cette affirmation devient beaucoup plus simple?:

dividerIndex = 3; textIndex == DividerIndex ? Math.floor(time2 % 1.5) 100?: 0

After Effects: The Modulo Operator (%)

?a y est, vous obtenez une horloge numérique !

Après avoir montré comment l'opérateur modulo permet de créer des boucles, nous pouvons maintenant considérer comment il peut être appliqué à d'autres propriétés.

Exemple?: horloge analogique

Créons maintenant une horloge analogique. Lorsque le pointeur fait un tic-tac, il ne s'agit généralement pas d'un mouvement continu mais d'un mouvement qui s'arrête et redémarre soudainement. C’est le type de boucle que l’opérateur modulo peut aider à résoudre.

Jetons un coup d'?il à l'expression suivante qui peut être collée dans la propriété de rotation du calque des aiguilles de l'horloge?:

//La trotteuse tourne frames = thisComp.frameDuration;

loopTime = 1; dur = images * 6?; force = 6;

counter = Math.floor(time/loopTime); t = temps % loopTime;

facilité(t, 0, dur, force compteur, force (compteur 1))

Tout d’abord, nous définissons quelques variables. frames est la durée d’une image dans la composition, ce qui lui permet de fonctionner sur plusieurs fréquences d’images.

Réglez loopTime sur l'heure à laquelle vous souhaitez boucler. Je veux que la boucle dure une seconde, donc je la mets à 1. dur est la durée de l'animation dans la boucle, je l'ai donc définie sur images * 6, ce qui la fait durer 6 images. la force est le changement de valeur d'animation, puisque j'anime les aiguilles de l'horloge, je la règle sur 6 pour que les aiguilles de l'horloge effectuent une rotation en 60 ticks.

Ensuite, je crée une variable compteur qui aidera à compenser ma valeur. Je l'ai créé en utilisant Math.floor(time/loopTime) , en utilisant Math.floor pour arrondir les nombres et en réglant la vitesse du compteur pour qu'elle corresponde à la boucle. Enfin, t est une variable que nous pouvons utiliser pour chronométrer des animations basées sur des expressions. Il s'agit du temps % loopTime, donc lorsque le temps atteint le nombre stocké dans loopTime, le temps boucle.

Après cela, nous pouvons animer. Dans cet exemple, j'utilise l'expression de facilité. En définissant le premier paramètre sur t, nous remappons la valeur de rotation sur notre variable de temps de boucle. Les deux paramètres suivants sont 0 et dur, les points de début et de fin de l'animation. Les deux derniers paramètres sont la force compteur et la force (compteur 1), qui est la valeur de la propriété rotation. En multipliant la force par le compteur, on peut compenser la valeur de chaque boucle, se terminant à la force* (compteur 1), prête pour la boucle suivante.

After Effects: The Modulo Operator (%)

L'avantage de piloter le mouvement via des expressions plut?t que des images clés dans ce cas est si vous devez créer un modèle d'horloge pour changer les heures. La valeur statique de l'expression peut être connectée au curseur, ce qui facilite la mise à jour continue.

Vous pouvez utiliser des expressions plus avancées ou créer vos propres fonctions pour créer des animations plus personnalisées?:

//La trotteuse tourne frames = thisComp.frameDuration;

loopTime = 1; dur = images * 6?; changement = 6;

counter = Math.floor(time/loopTime); t = temps % loopTime;

fonction easyInOutBack (t, b, c, d, s) { si (s == non défini) s = 1,70158?; if ((t/=d/2) < 1) return c/2(tt(((s=(1.525))) 1)t - s ))b; return c/2((t-=2)t(((s=(1.525)) 1)t s) 2) b; >

easeInOutBack(t, 0, change, dur, 1.70158)

After Effects: The Modulo Operator (%)

Enfin, vous pouvez créer une variable pour définir la valeur de départ et utiliser une instruction if pour ignorer la première itération de l'animation de l'aiguille des minutes (et éventuellement de l'aiguille des heures)?:

//Rotation de l'aiguille des minutes frames = thisComp.frameDuration;

loopTime = 60?; dur = images * 6?; force = 6?; startValue = 180;

counter = Math.floor(time/loopTime); t = temps % loopTime;

fonction easyInOutBack (t, b, c, d, s) { si (s == non défini) s = 1,70158?; if ((t/=d/2) < 1) return c/2(tt(((s=(1.525))) 1)t - s ))b; return c/2((t-=2)t(((s=(1.525)) 1)t s) 2) b; >

if (compteur > 0) { easyInOutBack (t, startValue force * compteur, force, dur, 1,70158) } autre { valeur de départ >

After Effects: The Modulo Operator (%)

à partir de là, connectez simplement le curseur à notre variable startValue. De cette fa?on, vous disposez d’une horloge analogique qui peut être mise à jour en modifiant simplement la valeur dans le curseur.

Conclusion

L'opérateur modulo est utile pour créer des boucles afin de faciliter les expressions dynamiques là où d'autres méthodes ne conviennent pas aux besoins du projet.

Essayez de le tester dans votre propre projet?!

Des commentaires ? Y a-t-il quelque chose de flou ? Veuillez laisser un commentaire ci-dessous.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276
Comment faire une demande HTTP dans Node.js? Comment faire une demande HTTP dans Node.js? Jul 13, 2025 am 02:18 AM

Il existe trois fa?ons courantes d'initier des demandes HTTP dans Node.js: utilisez des modules intégrés, Axios et Node-Fetch. 1. Utilisez le module HTTP / HTTPS intégré sans dépendances, ce qui convient aux scénarios de base, mais nécessite un traitement manuel de la couture des données et de la surveillance des erreurs, tels que l'utilisation de https.get () pour obtenir des données ou envoyer des demandes de post via .write (); 2.AXIOS est une bibliothèque tierce basée sur la promesse. Il a une syntaxe concise et des fonctions puissantes, prend en charge l'async / attendre, la conversion JSON automatique, l'intercepteur, etc. Il est recommandé de simplifier les opérations de demande asynchrones; 3.Node-Fetch fournit un style similaire à la récupération du navigateur, basé sur la promesse et la syntaxe simple

Types de données JavaScript: référence primitive vs Types de données JavaScript: référence primitive vs Jul 13, 2025 am 02:43 AM

Les types de données JavaScript sont divisés en types primitifs et types de référence. Les types primitifs incluent la cha?ne, le nombre, le booléen, le nul, un non défini et le symbole. Les valeurs sont immuables et les copies sont copiées lors de l'attribution des valeurs, de sorte qu'elles ne se affectent pas; Les types de référence tels que les objets, les tableaux et les fonctions stockent les adresses de mémoire, et les variables pointant vers le même objet s'afferchent mutuellement. Le typeof et l'instance de OFF peuvent être utilisés pour déterminer les types, mais prêtent attention aux problèmes historiques de typeofnull. Comprendre ces deux types de différences peut aider à écrire un code plus stable et fiable.

Objet JavaScript Time, quelqu'un construit un site Web Eactexe, plus rapide sur Google Chrome, etc. Objet JavaScript Time, quelqu'un construit un site Web Eactexe, plus rapide sur Google Chrome, etc. Jul 08, 2025 pm 02:27 PM

Bonjour, développeurs JavaScript! Bienvenue dans JavaScript News de cette semaine! Cette semaine, nous nous concentrerons sur: le différend de marque d'Oracle avec Deno, les nouveaux objets Time JavaScript sont pris en charge par les navigateurs, les mises à jour Google Chrome et certains outils de développeurs puissants. Commen?ons! Le différend de marque d'Oracle avec la tentative de Deno Oracle d'enregistrer une marque "JavaScript" a provoqué la controverse. Ryan Dahl, le créateur de Node.js et Deno, a déposé une pétition pour annuler la marque, et il pense que JavaScript est un niveau ouvert et ne devrait pas être utilisé par Oracle

Gestion des promesses: cha?nage, gestion des erreurs et combinateurs de promesses en javascript Gestion des promesses: cha?nage, gestion des erreurs et combinateurs de promesses en javascript Jul 08, 2025 am 02:40 AM

La promesse est le mécanisme central pour gérer les opérations asynchrones en JavaScript. Comprendre les appels de cha?ne, la gestion des erreurs et les combinants est la clé pour ma?triser leurs applications. 1. L'appel de la cha?ne renvoie une nouvelle promesse à travers. Puis () pour réaliser la concaténation des processus asynchrones. Chaque .then () re?oit le résultat précédent et peut renvoyer une valeur ou une promesse; 2. La gestion des erreurs doit utiliser .catch () pour attraper des exceptions pour éviter les défaillances silencieuses, et peut renvoyer la valeur par défaut dans Catch pour continuer le processus; 3. Combinateurs tels que promesse.all () (réussi avec succès uniquement après tout succès), promesse.race () (le premier achèvement est retourné) et promesse.allsetTled () (en attente de toutes les achèvements)

Qu'est-ce que l'API Cache et comment est-elle utilisée avec les travailleurs du service? Qu'est-ce que l'API Cache et comment est-elle utilisée avec les travailleurs du service? Jul 08, 2025 am 02:43 AM

Cacheapi est un outil fourni par le navigateur pour mettre en cache les demandes de réseau, qui est souvent utilisée en conjonction avec travailleur de service pour améliorer les performances du site Web et l'expérience hors ligne. 1. Il permet aux développeurs de stocker manuellement des ressources telles que des scripts, des feuilles de style, des photos, etc.; 2. Il peut faire correspondre les réponses du cache en fonction des demandes; 3. Il prend en charge la suppression des caches spécifiques ou la nettoyage du cache entier; 4. Il peut mettre en ?uvre des stratégies de priorité de cache ou de priorité de réseau grace à l'écoute des événements Fetch; 5. Il est souvent utilisé pour le support hors ligne, accélérez la vitesse d'accès répétée, préchargement des ressources clés et du contenu de mise à jour des antécédents; 6. Lorsque vous l'utilisez, vous devez faire attention au contr?le de la version du cache, aux restrictions de stockage et à la différence entre le mécanisme de mise en cache HTTP.

JS Roundup: une plongée profonde dans la boucle d'événement JavaScript JS Roundup: une plongée profonde dans la boucle d'événement JavaScript Jul 08, 2025 am 02:24 AM

La boucle d'événement de JavaScript gère les opérations asynchrones en coordonnant les piles d'appels, les webapis et les files d'attente de taches. 1. La pile d'appels exécute du code synchrone, et lors de la rencontre de taches asynchrones, il est remis à WebAPI pour le traitement; 2. Une fois que le WebAPI a terminé la tache en arrière-plan, il met le rappel dans la file d'attente correspondante (macro tache ou micro tache); 3. La boucle d'événement vérifie si la pile d'appels est vide. S'il est vide, le rappel est retiré de la file d'attente et poussé dans la pile d'appels pour l'exécution; 4. Micro taches (comme Promise. puis) ??prendre la priorité sur les taches macro (telles que Settimeout); 5. Comprendre la boucle d'événements permet d'éviter de bloquer le thread principal et d'optimiser l'ordre d'exécution du code.

Comprendre l'événement bouillonnant et capturer dans les événements JavaScript DOM Comprendre l'événement bouillonnant et capturer dans les événements JavaScript DOM Jul 08, 2025 am 02:36 AM

Les bulles d'événements se propagent de l'élément cible vers l'extérieur vers le n?ud d'ancêtre, tandis que la capture d'événements se propage de la couche externe vers l'intérieur vers l'élément cible. 1. événements Bubbles: Après avoir cliqué sur l'élément enfant, l'événement déclenche l'auditeur de l'élément parent vers le haut. Par exemple, après avoir cliqué sur le bouton, il sortira d'abord cliqué sur l'enfant, puis parent. 2. Capture d'événement: définissez le troisième paramètre sur true, afin que l'auditeur soit exécuté dans l'étape de capture, tels que le déclenchement de l'écouteur de capture de l'élément parent avant de cliquer sur le bouton. 3. Les utilisations pratiques incluent la gestion unifiée des événements d'éléments enfants, le prétraitement d'interception et l'optimisation des performances. 4. Le flux d'événements DOM est divisé en trois étapes: capture, cible et bulle, et l'écouteur par défaut est exécuté dans l'étape de la bulle.

Un tour d'horizon des fonctions d'ordre supérieur au-delà de la carte et du filtre Un tour d'horizon des fonctions d'ordre supérieur au-delà de la carte et du filtre Jul 10, 2025 am 11:41 AM

Dans les tableaux JavaScript, en plus de la carte et du filtre, il existe d'autres méthodes puissantes et rarement utilisées. 1. La réduction peut non seulement résumer, mais également compter, se regrouper, aplatir les tableaux et construire de nouvelles structures; 2. Find et FindIndex sont utilisés pour trouver des éléments ou des index individuels; 3.Il et tout sont utilisés pour déterminer si les conditions existent ou que toutes les personnes se rencontrent; 4.Sort peut être trié mais changera le tableau d'origine; 5. Faites attention à la copie du tableau lorsque vous l'utilisez pour éviter les effets secondaires. Ces méthodes rendent le code plus concis et efficace.

See all articles