1.一种视频中文字图层版式批量更新方法,其特征在于,包括以下步骤:
S1、打开包含文字图层的AfterEffects项目;
S2、选中合成窗口中的一个文字图层并将其调整为指定的文字样式;
S3、响应于用户的复制操作,将当前选定的文字图层的文字样式复制到一个变量中,以便于后续对其进行存储和复用;
S4、响应于用户的粘贴操作,遍历当前项目中的所有合成项,筛选出所有的文字图层;
S5、基于所复制的文字样式,对当前项目中所有文字图层的文字样式执行批量更新;
所述S3中,系统调用function函数定义点击事件处理函数,当用户触发复制功能时,执行以下方法:S31、用if循环检查当前选择的图层数量是否大于1;如是,则表示选中了多个图层,无法继续执行后续操作,直接返回;如否,则表示只有一个图层被选中,继续执行S32;
S32、用var函数将选中的图层赋值给变量originalLayer;
S33、用if循环判断所述变量originalLayer是否为空或者文字图层,如判断为空,则表示未选中文字图层,直接返回,不继续执行后续操作;如判断为文字图层,则继续执行S34;
S34、用var函数获取文字图层originalLayer的属性值,并将其赋值给originalTextDoc变量;其中,调用property方法来获得文字图层的属性集合ADBE Text Properties及其子属性ADBE Text Document,所述属性集合ADBE Text Properties包含控制文本外观和动画的属性;所述子属性ADBE Text Document用于表示文字图层的文本内容;
S35、将originalTextDoc赋值给originalStyles变量,表示将选定文字图层的文字属性保存在originalStyles变量中;
所述S4中,系统调用function函数定义点击事件处理函数,当用户触发粘贴功能时,遍历当前项目中的所有合成项,筛选出所有文字图层,具体包括以下步骤:S41、通过if循环检查所述originalStyles变量是否为空,以确定是否有可用的样式信息;如为空,则返回,不执行后续的操作,如不为空,则执行S42;
S42、用for循环定义一个初始值m=1,循环条件是m<=app.project.numItems,即循环变量m小于等于项目中的总项数,每循环一次循环变量m自增1;在每次循环迭代中,通过app.project.item(m)获取项目中的第m个项,并将其赋值给变量curItem;
S43、基于for循环中所嵌套的if循环语句块,来检查变量curItem是否属于CompItem类型,即判断当前项是否是一个合成项;
如果是合成项,在if语句块内部通过另一个循环变量n遍历当前合成项中的图层,初始值为1,循环条件是n<=curItem.numLayers,即循环变量n小于等于当前合成项中的图层数,每循环一次循环变量n自增1;在每次循环迭代中,通过curItem.layer(n)获取当前合成项中的第n个图层,并使用instanceof运算符判断该图层是否属于TextLayer类型,即判断当前图层是否是文字图层,直至筛选出所有的文字图层;
所述S5中,调用updateTextStyles 函数对筛选出的当前项目的所有文字图层的文字进行样式更新,即:将S2指定的文字样式设置为当前项目中所有文字图层的文字样式,具体步骤如下:S51、用变量 curText代表S2选中的文字图层,用property 方法访问curText变量,以获取S2选中的文字图层的文字属性,并将所述文字属性赋值存储在变量textDoc中;
S52、通过设置textDoc.font=originalStyles.font,将S51中textDoc变量所存储的文字属性设置为S35中originalStyles变量所存储的文字属性,也即将当前项目中所有文字图层的字体样式更改为当前选定文字图层的字体样式;
S53、通过property 对象属性访问源文本Source Text属性,调用setvalue函数将更新后的 textDoc 文字图层属性应用到文字图层的源文本 Source Text 属性上,从而实现动态批量更改文字图层样式的效果;
所述S52中,对当前项目中所有文字图层的字体样式的更改过程包括:
调用变量originalStyles中的originalStyles.font属性,将变量originalStyles存储的字体样式应用到一个名为textDoc的文本对象上,从而将当前指定文字图层的字体属性应用在项目所有文字图层的文字样式上;
调用变量originalStyles中的originalStyles.fontSize属性,将变量originalStyles存储的字号值应用到一个名为textDoc的文本对象上,从而将当前指定文字图层的字号值应用在项目所有文字图层的文字样式上;
调用变量originalStyles 的 originalStyles.applyFill属性,将变量originalStyles存储的填充值应用到一个名为textDoc的文本对象上,从而将当前指定文字图层的填充值应用在项目所有文字图层的文字样式上;
调用变量originalStyles的originalStyles.tracking属性,将变量originalStyles存储的字距应用到一个名为textDoc的文本对象上,从而将当前指定文字图层的字距应用在项目所有文字图层的文字样式上;
调用变量originalStyles的originalStyles.justification属性,将 justification属性的值赋给textDoc文本对象的justification属性,从而将当前指定文字图层的对齐方式应用在项目所有文字图层的文字样式上。
2.如权利要求1所述的一种视频中文字图层版式批量更新方法,其特征在于,所述S3和S4中,用户基于一个名为“批量更改文字”的窗口进行交互操作,所述窗口内具有"复制文字属性"和"粘贴文字属性"两个功能按钮,所述“批量更改文字”的窗口的创建方法如下:创建一个窗口对象作为批量更改文字的操作界面,并设定其标题、位置及尺寸信息;
添加一个用于触发复制文字属性功能的按钮对象,定义其按钮名字"复制文字属性"以及按钮的位置和像素大小;
再次添加一个用于触发粘贴文字属性功能的按钮对象,定义其按钮名字"粘贴文字属性"以及按钮的位置和像素大小;
调用show()方法使窗口对象在屏幕上可见,供用户与之交互。
3.一种视频中文字图层版式批量更新装置,用以实施权利要求1至2任一项所述的一种视频中文字图层版式批量更新方法,其特征在于,包括:初始化模块,用以打开包含文字图层的AfterEffects项目;
选择模块,用以选中合成窗口中的一个文字图层并将其调整为指定的文字样式;
复制模块,用以响应于用户的复制操作,将当前选定的文字图层的文字样式复制到一个变量中,以便于后续对其进行存储和复用;
粘贴模块,用以响应于用户的粘贴操作,遍历当前项目中的所有合成项,筛选出所有的文字图层;
更新模块,用以基于所复制的文字样式,对当前项目中所有文字图层的文字样式执行批量更新。
4.一种电子设备,其特征在于,包括:存储器,用于保存计算机程序;处理器,用于执行所述计算机程序,以实现如权利要求1至2任一项所述的一种视频中文字图层版式批量更新方法。
5.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中计算机程序被处理器执行时实现如权利要求1至2任一项所述的一种视频中文字图层版式批量更新方法。