js 递归产生数组 笔记

等差

function makeArr(max){

    if(max==0){

        return [0];

    }else{

        result=makeArr(max-1);

        result.push(max);...


【原创js】把马赛克到svg,提取成用来做拼图或者十字绣之类到数字

先把图片在ai创建马赛克,存成svg以后,用chrome打开svg,然后在console粘贴下面这段:

var R=document.getElementsByTagName("rect");

//获取矩形

var C={name:[],x:[],y:[]};


var brNum=0;


for(var i=0;i<R.length;i++){

//开始循环,从第一个到最后一个方格


    C.name[i]=R[i].className.animVal;...


@LeiZingyiu  

5月8日 13:30來自微博 weibo.com

一些整数才能循环的效果,譬如波形变形的速度,写个

Math.round(value)/thisComp.duration

就可以在合成里面循环了。,


记住是合成而不是工作区域。


【AE表达式】三角波与锯齿波函数 #AE表达式#

 三角波函数:

function triWave(t,cycle){

return 1-Math.abs(( t%(cycle)+cycle)%(cycle)-cycle/2)/(cycle/2);   //by leizingyiu

}

triWave(time,1);

其中t相当于sin函数的x,cycle为周期,一个周期相当于sin函数的2π


锯齿波函数:

function sawWave(t,cycle){

return ((t)%cycle+cycle)%cycle/cycle;  ...

【AE表达式】指定位数的整数(也就是前面加0)——滑块控制指定整数位数的文本图层

指定3位整数

e=effect("e")("滑块").value;

e=Math.round(e);

if(e<0){
    i=-1;
}else{
    i=1;
}

e=Math.abs(e);

if(e<10){
    e="00"+e;
}else if(e<100){
    e="0"+e;
}else{
    e=e;
}...

【AE教程】propertyGroup()快速上手!形状层编组不再报错!

教程作者:@leizingyiu
原文链接: https://uiiiuiii.com/aftereffects/121245045.html

yiu_propPath下载:链接:https://pan.baidu.com/s/1kVVLrvT 密码:5hi9
rd_GimmePropPath下载:http://redefinery.com/ae/view.php?item=rd_GimmePropPath


hello大家好,这次给大家分享的是propertyGroup()的快速上手方法。

很多小伙伴在使用表达式的时候,总是因为在形状层里面进行编组,而出现...

yiu_springHose —— 一个基于RubberHose的AE预设,可在一个Hose层中并排排列数个相同参数的“RH”。只需几步,轻松让每个小RH单双侧排列,统一控制描边颜色、描边粗细,以及修剪路径。
快速生成二维弹簧,只需一个hose层,以及yiu_springHose.ffx。

本预设采用知识共享署名-相同方式共享 4.0 (CC BY-SA 4.0) 国际许可协议授权。

预设作者/ @leizingyiu
英文版译者/ @岩鹽芝士奶蓋的岩鹽


中文版下载: http://www.zcool.com.cn/work/ZMjQ5MTIyNjA=.html...

【AE表达式】时间重映射里循环的两个表达式

方法1

loopOut();


方法2

(time+value)%source.duration;


方法1没啥好说的,就是循环两个关键帧,默认里面就是cycle,没啥好说的。。


方法2是刚想到的小办法,是什么鬼呢?


time,就是现在合成的当前时间;

value就是当前属性值,所以用这个办法的话,只保留一个关键帧就可以了;

time+value,就是以当前时间加上属性值,得到比现在时间更早或者更迟的时间;


问题来了,

假如time+value超过了预合成里面的总时长之后,怎么办呢?

不用if else,让time+value...

一瓶红花油 提问:

想问问,如何获取某个关键帧的值,比如某个图层在位置上有三个关键帧,如何获取图层第一个关键帧的值

leizingjiu 回答:

先贴Adobe官方文档:

https://helpx.adobe.com/cn/after-effects/using/expression-language-reference.html#key_attributes_and_methods_expression_reference  


然后是说人话的解释:


第一个关键帧的值: key(1).value;

第n个关键帧的值: key(n).value;

最后一个关键帧的值: a.key(a.numKeys).value;


容错一下变成:


a=你要获取的属性;

if(a.numKeys>0){...

【AE表达式】旋转一个矢量

function rotate(vec,angle){var vx=vec[0],vy=vec[1],cosVal=Math.cos(angle),sinVal=Math.sin(angle),Vec=new Array();Vec[0]=vx*cosVal-vy*sinVal;Vec[1]=vx*sinVal+vy*cosVal;return Vec}


来源已经忘记了。。。

【AE表达式】循环的wiggle (随时更新

freq = 1;

amp = 100;

loopTime = 3;

t = time % loopTime;

wiggle1 = wiggle(freq, amp, 1, 0.5, t);

wiggle2 = wiggle(freq, amp, 1, 0.5, t - loopTime);

linear(t, 0,  loopTime, wiggle1, wiggle2)


loopTime可以直接等于thisComp.duration,只可以在合成内循环了。


freq 频率,一秒内次数

amp 幅度,每次大概偏移多少

loopTime...

【AE表达式】跟随父级图层相同效果相同属性值

父图层和现在这层的值相加:

try{

upperName=thisProperty.propertyGroup(1).name;

thisIndex=thisProperty.propertyIndex;

hasParent?parent.effect(upperName)(thisIndex)+value:value;

}catch(err){value;}


直接获取父图层的值

try{

upperName=thisProperty.propertyGroup(1).name;

thisIndex=thisProperty.propertyIndex;...

又做了个组件[doge]

【AE表达式】inOut()——自动根据图层出入点进行淡入淡出

2018年3月30日更新


K=inOut(Duration="layer",keys=t,func=ease,oneWay=true);


function inOut(Duration,keys,func,oneWay){dura=Duration=="layer"?(outPoint-inPoint):thisComp.duration;mid=Duration=="layer"?(dura/2+inPoint):dura/2;func=func==undefined?ease:func;oneWay=oneWay...

【AE表达式】父子级透明度自动跟随(2017年9月7日.更新)

直接填以下表达式,自动跟随父级透明度

k=100; 

result=hasParent?parent.transform.opacity/k*value:value; 

解释: 

设置k为父级透明度的最大值; 

结果等于( 

层有爸爸的话,结果等于 爸爸的透明度 除以 k 乘以 这个属性值; 

层没有爸爸的话,结果等于 当前属性值; 

) 

应用:

https://uiiiuiii.com/aftereffects/121212834.html...

【AE表达式】speedK(prop)根据速度判断对应正负方向(2017年9月7日.更新)

关键表达式:

property.speed%(Math.abs(property.speed)-1)


应用:

位置根据透明度变化,移动相应距离(在位置上黏贴此表达式后在透明度上打关键帧):

t=transform.opacity;

ts=transform.opacity.speed;

result=value+[(t-100)*(ts%(Math.abs(ts)-1)),0];

详细应用:https://uiiiuiii.com/aftereffects/121212834.html

注释:

t=transform.opacity; ...

loop()

后续在这更新。

【AE表达式】 形状图层路径属性可用的 loopOut()

start=key(1).time; end=key(numKeys).time;

keyDura=Math.abs(start-end);

result=value; /*by leizingjiu*/

if(time>end){result=valueAtTime((time-end)%keyDura+start);

}else if(time<start){result=valueAtTime(keyDura-(start-time)%keyDura);}

在形状图层里面,做路径变形动画的时候,loop系列表达式不让使用,于是写了这个。

来源以及预设下载: UiiiUiii.com 

作者/预设作者/教程作者:@leizingyiu 欢迎到微博交作业~


这个是滚滚↑

 

这个是弹弹↑


教程中使用的overshot的弹性表达式,直接复制黏贴就可以使用(来源):

freq=3;

decay=5;

n=0;if(numKeys>0){n=nearestKey(time).index;if(key(n).time>time){n–}}if(n>0){t=time-key(n).time;amp=velocityAtTime(key...

【教程】微博教程汇总

【AE 教程!手把手教你无关键帧循环动画】 http://weibo.com/2438286757/F8XwD65Ph


 【XD批量填充文本】 http://weibo.com/2438286757/F3bWThbC1


 【AE教程!简单Loading动效小教程】 http://weibo.com/2438286757/EsaxQpJW8


【Ae教程】通过小球乱飘的字体动效学习Ae表达式 http://weibo.com/2438286757/Elb4K7OCo


【AE教程】 循环的环


AE表达式小教程, 0关键帧动画,并且了解表达式基本概念。

 前往微博收藏:  http://weibo.com/2438286757/F8XwD65Ph


by leizingyiu   on 2017-06-20


形状图层1~椭圆路径1~大小


      

v=value;k=60; sin=Math.sin(time/thisComp.duration*Math...

利用图层标记文本换行,但是感觉直接想办法用lrc比较方便

str=value;enter=String.fromCharCode(13);strG=str.split(enter);var ctrl;ctrl=thisLayer.marker;if(ctrl.numKeys>=1){var n=ctrl.nearestKey(time).index;if((time<ctrl.key(1).time)){N=0}else{if(ctrl.key(n).time>time){n--}}var start=ctrl.key(n).time;var end=ctrl.key...

打字键盘初步完成,然后就是修bug。。。。

后面直接在这里更新吧

应用(是的,只用了四个关键帧,设置文本长度需要4个关键帧):

【UI偷懒教程】快速批量填充XD中的repeat grid 文本

导语:一劳永逸——利用表格工具,处理好批量的文本,快速批量填充 XD 中的 repeat grid 文本。


在 PS 或者 skech 中,需要填充大量文本内容时,我们常用 craft 插件来完成;

在 adobe XD 中,使用 Repeat Grid 产生大量相同内容后,矩形可以通过拖放图片来实现批量填充,而文本同样有类似的功能;

首先这是一个日历界面,就差里面的内容了(废话=。=|||)



然后我们看看五月的日历


先是30号,然后就是1到31,然后又从1 开始。。。。那打开个 表格工具 和 记事本 吧


把这个文本文件保存成...

【AE表达式】逐渐wiggle

freq=effect("freq")(1);

amp=effect("amp")(1);

v=value;

w=thisProperty.wiggle(freq,amp);


function vt(n){

if(n>thisProperty.numKeys){

return thisComp.duration;

}else if(thisProperty.numKeys>0){

return thisProperty.key(n).time;

}else{

return 0;

}}...

万能弹性表达式(转+修改)(2018年4月17日更新)

——————————2018年4月17日——————————

从可控振幅版本修改,修改了加粗部分内容,解决了路径等属性不能获取velocityAtTime()的问题。

潜在问题:由于不能获取产生弹性前的速度,所以调整属性速度后,弹性不会相应产生变化;由于路径等属性不能自身相加,所以弹性只能在速度为0的时候产生作用。


amp = 3; 

freq = 0.5; 

decay = 4.0; 


n = 0; 

if (numKeys > 0){ 

n = nearestKey(time).index;...

【AE表达式】指定位数的小数——滑块控制指定小数位数的文本图层

k=effect("k(要显示的数值)")("滑块");

n=effect("n(小数点后多少位)")("滑块");

n=Math.abs(n);

o=Math.pow(10,n);

txt=( Math.floor(k*o))/o;


txt=txt.toString();


if(txt.indexOf(".")>=0){

m=txt.substring(txt.indexOf(".")+1).length;

if(m<...

1 / 3

© leizingjiu | Powered by LOFTER