OOXML入门学习
进入-飞入

<par>
<!-- 这是一个并行动画序列的开始。"par"代表并行,意味着在这个标签内的所有动画将同时开始。 --><cTn id="5" presetID="2" presetClass="entr" presetSubtype="4" fill="hold" grpId="0" nodeType="clickEffect"><!-- 这是一个动画节点。这个节点的id是5,预设ID是2,预设类别是"entr"(入场),预设子类型是4,填充类型是"hold"(保持),组ID是0,节点类型是"clickEffect"(点击效果)。 --><stCondLst><!-- 这是开始条件列表的开始。这个列表定义了动画开始的条件。 --><cond delay="0" /><!-- 这是一个开始条件。这个条件表示动画将在延迟0毫秒后开始。 --></stCondLst><set><!-- 这是一个设置动画的开始。设置动画用于改变一个对象的属性。 --><cBhvr><!-- 这是一个公共行为的开始。"cBhvr"代表"common Behavior",是所有行为的基类。 --><cTn id="6" dur="1" fill="hold"><!-- 这是一个动画节点。这个节点的id是6,持续时间是1毫秒,填充类型是"hold"(保持)。 --><stCondLst><!-- 这是开始条件列表的开始。这个列表定义了动画开始的条件。 --><cond delay="0" /><!-- 这是一个开始条件。这个条件表示动画将在延迟0毫秒后开始。 --></stCondLst><!-- 这是开始条件列表的结束。 --></cTn><!-- 这是动画节点的结束。 --><tgtEl><!-- 这是目标元素的开始。这个元素定义了动画将应用于哪个对象。--><spTgt spid="4" /><!-- 这是一个形状目标。这个目标表示动画将应用于id为4的形状。 --></tgtEl><!-- 这是目标元素的结束。 --><attrNameLst><!-- 这是属性名称列表的开始。这个列表定义了将被改变的属性。 --><attrName>style.visibility</attrName><!-- 这是一个属性名称。这个名称表示将被改变的属性是"style.visibility"。 --></attrNameLst><!-- 这是属性名称列表的结束。 --></cBhvr><!-- 这是公共行为的结束。 --><to><strVal val="visible" /><!--这是动画的目标值。这个值表示"style.visibility"属性将被设置为"visible"。 --></to><!-- 是设置动画的结束。 --></set><anim calcmode="lin" valueType="num"><!-- 这是一个动画的开始。"calcmode"属性设置为"lin"表示这是一个线性动画,"valueType"属性设置为"num"表示动画的值是数字类型。 --><cBhvr additive="base"><!-- 这是一个公共行为的开始。"additive"属性设置为"base"表示这个动画将添加到基础值上。 --><cTn id="7" dur="500" fill="hold" /><!-- 这是一个动画节点。这个节点的id是7,持续时间是500毫秒,填充类型是"hold"(保持)。 --><tgtEl><!-- 这是目标元素的开始。这个元素定义了动画将应用于哪个对象。 --><spTgt spid="4" /><!-- 这是一个形状目标。这个目标表示动画将应用于id为4的形状。 --></tgtEl><!-- 这是目标元素的结束。 --><attrNameLst><!-- 这是属性名称列表的开始。这个列表定义了将被改变的属性。 --><attrName>ppt_x</attrName><!-- 这是一个属性名称。这个名称表示将被改变的属性是"ppt_x"。 --></attrNameLst><!-- 这是属性名称列表的结束。 --></cBhvr><!-- 这是公共行为的结束。 --><tavLst><!-- 是时间值列表的开始。这个列表定义了动画的关键帧。 --><tav tm="0"><val><strVal val="#ppt_x" /></val></tav><!-- 这是一个时间值。这个值表示在动画开始时(时间为0),"ppt_x"属性的值是"#ppt_x"。 --><tav tm="100000"><val><strVal val="#ppt_x" /></val></tav><!-- 这是一个时间值。这个值表示在动画结束时(时间为100000毫秒),"ppt_x"属性的值仍然是"#ppt_x"。 --></tavLst><!-- 这是时间值列表的结束。 --></anim><!-- 这是动画的结束。 --><anim calcmode="lin" valueType="num"><!-- 这是一个动画的开始。"calcmode"属性设置为"lin"表示这是一个线性动画,"valueType"属性设置为"num"表示动画的值是数字类型。 --><cBhvr additive="base"><!-- 这是一个公共行为的开始。"additive"属性设置为"base"表示这个动画将添加到基础值上。 --><cTn id="8" dur="500" fill="hold" /><!-- 这是一个动画节点。这个节点的id是8,持续时间是500毫秒,填充类型是"hold"(保持)。 --><tgtEl><!-- 这是目标元素的开始。这个元素定义了动画将应用于哪个对象。 --><spTgt spid="4" /><!-- 这是一个形状目标。这个目标表示动画将应用于id为4的形状。 --></tgtEl><!-- 这是目标元素的结束。 --><attrNameLst><!-- 这是属性名称列表的开始。这个列表定义了将被改变的属性。 --><attrName>ppt_y</attrName><!-- 这是一个属性名称。这个名称表示将被改变的属性是"ppt_y"。 --></attrNameLst><!-- 这是属性名称列表的结束。 --></cBhvr><!-- 这是公共行为的结束。 --><tavLst><!-- 这是时间值列表的开始。这个列表定义了动画的关键帧。 --><tav tm="0"><val><strVal val="1+#ppt_h/2" /></val></tav><!-- 这是一个时间值。这个值表示在动画开始时(时间为0),"ppt_y"属性的值是"1+#ppt_h/2"。这可能是一个计算表达式,表示"ppt_y"属性的初始值是1加上形状高度的一半。 --><tav tm="100000"><val><strVal val="#ppt_y" /></val></tav><!-- 这是一个时间值。这个值表示在动画结束时(时间为100000毫秒),"ppt_y"属性的值是"#ppt_y"。这可能是一个引用,表示"ppt_y"属性的结束值是它的当前值。 --></tavLst><!-- 这是时间值列表的结束。 --></anim><!-- 这是动画的结束。 --></cTn>
</par>
强调-放大/缩小

<par><!-- 这是一个动画序列的开始。"par"代表并行,意味着在这个标签内的所有动画将同时开始。 --><cTn id="10" presetID="6" presetClass="emph" presetSubtype="0" fill="hold" grpId="0" nodeType="afterEffect"><!-- 这是一个动画节点。"cTn"代表"common Time Node",是所有时间节点的基类。这个节点的id是10,预设ID是6,预设类别是"emph"(强调),预设子类型是0,填充类型是"hold"(保持),组ID是0,节点类型是"afterEffect"(后效果)。 --><stCondLst><!-- 这是开始条件列表的开始。这个列表定义了动画开始的条件。 --><cond delay="0" /><!-- 这是一个开始条件。这个条件表示动画将在延迟0毫秒后开始。 --></stCondLst><!-- 这是开始条件列表的结束。 --><childTnLst><!-- 这是子时间节点列表的开始。这个列表包含了所有的子动画。 --><animScale><!-- 这是一个缩放动画的开始。 --><cBhvr><!-- 这是一个公共行为的开始。"cBhvr"代表"common Behavior",是所有行为的基类。 --><cTn id="11" dur="2000" fill="hold" /><!-- 这是另一个动画节点。这个节点的id是11,持续时间是2000毫秒,填充类型是"hold"(保持)。 --><tgtEl><!-- 这是目标元素的开始。这个元素定义了动画将应用于哪个对象。 --><spTgt spid="2" /><!-- 这是一个形状目标。这个目标表示动画将应用于id为2的形状。 --></tgtEl><!-- 这是目标元素的结束。 --></cBhvr><!-- 这是公共行为的结束。 --><by x="150000" y="150000" /><!-- 这是动画的参数。这个参数表示形状将在x轴和y轴上分别缩放150000。 --></animScale><!-- 这是缩放动画的结束。 --></childTnLst><!-- 这是子时间节点列表的结束。 --></cTn><!-- 这是动画节点的结束。 -->
</par>
<!-- 这是动画序列的结束。 -->
动作路径-直线

<par>
<!-- 这是一个并行时间容器的开始。并行时间容器中的所有子元素将同时开始。 --><cTn id="13" presetID="50" presetClass="path" presetSubtype="0" accel="50000" decel="50000" fill="hold" grpId="1" nodeType="afterEffect"><!-- 这是一个动画节点。这个节点的id是13,预设ID是50,预设类是"path",预设子类型是0,加速度是50000,减速度是50000,填充类型是"hold",组ID是1,节点类型是"afterEffect"。 --><stCondLst><!-- 这是开始条件列表的开始。这个列表定义了动画开始的条件。 --><cond delay="0" /><!-- 这是一个开始条件。这个条件表示动画将在延迟0毫秒后开始。 --></stCondLst><childTnLst><!-- 这是子节点列表的开始。这个列表定义了动画节点的子节点。 --><animMotion origin="layout" path="M 6.25E-7 1.11111E-6 L 0.125 1.11111E-6 C 0.18099 1.11111E-6 0.25 0.06898 0.25 0.125 L 0.25 0.25 " pathEditMode="relative" rAng="0" ptsTypes="AAAA"><!-- 这是一个动画运动的开始。"origin"属性设置为"layout"表示动画的原点是布局,"path"属性定义了动画的路径,"pathEditMode"属性设置为"relative"表示路径是相对的,"rAng"属性设置为0表示旋转角度是0。 --><cBhvr><!-- 这是一个公共行为的开始。 --><cTn id="14" dur="2000" fill="hold" /><!-- 这是一个动画节点。这个节点的id是14,持续时间是2000毫秒,填充类型是"hold"。 --><tgtEl><!-- 这是目标元素的开始。这个元素定义了动画将应用于哪个对象。 --><spTgt spid="2" /><!-- 这是一个形状目标。这个目标表示动画将应用于id为2的形状。 --></tgtEl><attrNameLst><!-- 这是属性名称列表的开始。这个列表定义了将被改变的属性。 --><attrName>ppt_x</attrName><attrName>ppt_y</attrName><!-- 这是属性名称。这些名称表示将被改变的属性是"ppt_x"和"ppt_y"。 --></attrNameLst><!-- 这是属性名称列表的结束 --></cBhvr><!-- </cBhvr>: --><rCtr x="12500" y="12500" /><!-- 这是旋转中心的设置。这个设置表示旋转中心的x坐标和y坐标都是12500。 --></animMotion><!-- 这是动画运动的结束。 --></childTnLst><!-- 这是子节点列表的结束。 --></cTn><!-- 这是动画节点的结束。 -->
</par>
<!-- 这是并行时间容器的结束。 -->
<!-- 总的来说,这段代码描述了一个并行动画,这个动画将在延迟0毫秒后开始,将id为2的形状沿着一个预设的路径移动,并改变"ppt_x"和"ppt_y"属性的值。 -->
相关文章:
OOXML入门学习
进入-飞入 <par> <!-- 这是一个并行动画序列的开始。"par"代表并行,意味着在这个标签内的所有动画将同时开始。 --><cTn id"5" presetID"2" presetClass"entr" presetSubtype"4" fill"hold&…...
k8s集群node节点加入失败
出现这种情况: [preflight] FYI: You can look at this config file with kubectl -n kube-system get cm kubeadm-config -o yaml [kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml" [kubelet-start] Writing kub…...
layui+jsp项目中实现table单元格嵌入下拉选择框功能,下拉选择框可手动输入内容或选择默认值,修改后数据正常回显。
需求 table列表中的数据实现下拉框修改数据,当默认的下拉框不符合要求时,可手动输入内容保存。内容修改后表格显示修改后的值同时表格不刷新。 实现 layui框架下拉框组件只能选择存在的数据,不支持将输入的内容显示在input中的功能&#x…...
2024年客户体验的几个预测
数字化转型、以客户为中心的理念、数字技术的发展和产品的不断创新,都为客户体验带来了巨大的改变。 目前,我们看到很多公司都在致力于塑造一种以客户为中心的商业模式。企业开始用更多技术、更多数据和更多产品来强化自己在客户体验方面的能力。 那么&a…...
【C++】动态内存管理new和delete
文章目录 一、C的内存管理方式二、new和delete的用法1.操作内置类型2.操作自定义内置类型 三、new和delete的底层实现1.operator new和operator delete函数2.new和delete的实现原理 四、定位new表达式五、malloc/free和new/delete的区别 一、C的内存管理方式 之前在C语言的动态…...
Java面向对象特性
Java继承: 继承的概念: 在Java中,继承(inheritance)是面向对象编程的一个重要概念,它允许一个类(子类)继承另一个类(父类)的属性和方法。通过继承,…...
odoo17 tree视图添加按钮
需求描述 点击下图中tree视图上的同步退货单按钮,弹出相应的form视图进行退货单同步,然后点击同步按钮调用后端python代码处理。 实现步骤 主要文件目录结构 js文件的创建 /** @odoo-module **/ import {registry } from "@web/core/registry"; import {listVie…...
PreparedStatement 与Statement 的区别,以及为什么推荐使用 PreparedStatement ?
在Java中,PreparedStatement和Statement都是用于执行SQL语句的重要接口,但它们在功能、安全性和性能上有着显著的差异。理解这些差异对于编写高效且安全的数据库应用程序至关重要。 Statement:基本的SQL执行者 首先,让我们从Sta…...
wsl ubuntu 安装Anaconda3步骤
如何在Ubuntu上安装Anaconda3呢?本章记录整个安装过程。 1、下载脚本 https://mirrors.bfsu.edu.cn/anaconda/archive/Anaconda3-2023.09-0-Linux-x86_64.sh 下载之后,将脚本上传到Ubuntu里。 2、安装脚本 bash Anaconda3-2021.11-Linux-x86_64.sh根据提示进行安装,提示输…...
Vue3响应式 ref全家桶
<template><div>{{ man.name }}<hr><button click"change">修改</button></div> </template> <script setup lang"ts"> const man {name:"cc"} const change () >{man.name "大cc&q…...
Mac(M1芯片)安装多个jdk,Mac卸载jdk
1.jdk下载 oracle官方链接:oracle官方下载链接 2.安装 直接下一步,下一步就行 3.查看是否安装成功 出现下图内容表示安装成功。 4.配置环境变量 open -e .bash_profile 路径建议复制过去 #刷新环境变量 source ~/.bash_profile 5.切换方法 6.jdk…...
Warning message:package ‘ggplot2’ is not available (for R version 3.2.3)
install.packages(ggplot2) Installing package into ‘/usr/local/lib/R/site-library’ (as ‘lib’ is unspecified) Warning message: package ‘ggplot2’ is not available (for R version 3.2.3) 根据你提供的信息,警告消息表明在你的R版本(3.2.3…...
Spring Boot 过滤器和拦截器详解
目录 Spring Boot 过滤器1.什么是过滤器2.工作机制3.实现过滤器 Spring Boot 拦截器1. 什么是拦截器2. 工作原理3.实现4.拓展(MethodInterceptor 拦截器)实现 过滤器和拦截器区别过滤器和拦截器应用场景过滤器拦截器 Spring Boot 过滤器 1.什么是过滤器 …...
Eureka介绍与使用
Eureka是一个开源的服务发现框架,由Netflix开发并在2015年成为Apache的顶级项目。Eureka的核心功能是服务注册与发现,它允许微服务应用在启动时将自己注册到Eureka服务器,并能通过Eureka服务器来发现其他已注册的服务。 使用Eureka有以下几个…...
JVM专题九:JVM分代知识点梳理
今天开始,咱们开始剖析JVM内存划分的原理细节,以及我们创建的那些对象在JVM中到底是如何分配,如何流动的,首先解决第一个问题:JVM内存的一个分代模型:年轻代、老年代、永久通过之前的专题我们知道,那就是我…...
wireshark常用过滤命令
wireshark常用过滤命令 wireshark抓包介绍单机单点:单机多点:双机并行: wireshark界面认识默认布局调整布局(常用)显示FCS错误 wireshark常见列Time回包数据报对应网络模型 wireshark基本操作结束抓包再次开始抓包 **wireshark常用过滤命令**…...
「全新升级,性能更强大——ONLYOFFICE 桌面编辑器 8.1 深度评测」
文章目录 一、背景二、界面设计与用户体验三、主要新功能亮点3.1 高效协作处理3.2 共同编辑,毫无压力3.3 批注与提及3.4 追踪更改3.5 比较与合并3.6 管理版本历史 四、性能表现4.1 集成 AI 工具4.2 插件强化 五、用户反馈与使用案例 一、背景 Ascensio System SIA -…...
线程版服务器实现(pthread_server)
用到的所有方法所需要的参数可以在wrap.c文件中查询,wrap中找不到的直接通过man手册查询 1.首先介绍一下我自己写的包裹文件,里面有各种在可能要用到的方法 wrap.c: #include <stdlib.h> #include <stdio.h> #include <unistd.h> #…...
js异常处理方案
文章目录 异常处理方案同步代码的异常处理Promise 的异常处理async await 的异常处理 感谢阅读,觉得有帮助可以点点关注点点赞,谢谢! 异常处理方案 在JS开发中,处理异常包括两步:先抛出异常,然后捕获异常。…...
C++文件路径处理2 - 路径拼接路径解析
1. 关键词2. filesystem.h3. filepath.cpp6. 测试代码7. 运行结果8. 源码地址 1. 关键词 关键词: C 文件路径处理 路径拼接 获取父目录的路径 获取文件名 获取拓展名 跨平台 应用场景: 路径的拼接路径的解析 2. filesystem.h #pragma once#include…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...
Flask和Django,你怎么选?
Flask 和 Django 是 Python 两大最流行的 Web 框架,但它们的设计哲学、目标和适用场景有显著区别。以下是详细的对比: 核心区别:哲学与定位 Django: 定位: "全栈式" Web 框架。奉行"开箱即用"的理念。 哲学: "包含…...
Async-profiler 内存采样机制解析:从原理到实现
引言 在 Java 性能调优的工具箱中,async-profiler 是一款备受青睐的低开销采样分析器。它不仅能分析 CPU 热点,还能精确追踪内存分配情况。本文将深入探讨 async-profiler 实现内存采样的多种机制,结合代码示例解析其工作原理。 为什么需要内…...
部署DNS从服务器
部署DNS从服务器的目的 DNS域名解析服务中,从服务器可以从主服务器上获得指定的区域数据文件,从而起到备份解析记录与负载均衡的作用,因此通过部署从服务器可以减轻主服务器的负载压力,还可以提升用户的查询效率。 注意…...
spring中的@RabbitListener注解详解
基本用法主要属性1. queues / queueNames2. containerFactory3. id4. concurrency5. ackMode6. priority7. bindings 高级特性1. 消息转换器2. 手动确认3. 条件监听4. 错误处理 配置监听容器工厂注意事项完整示例循环依赖解决1. 使用 Setter 注入2. 使用 Lazy 注解3. 重构代码结…...
