当前位置: 首页 > news >正文

wordpress百度数据库广州灰色优化网络公司

wordpress百度数据库,广州灰色优化网络公司,宿迁城乡住房建设厅网站,唐山市丰润区城乡建设局网站概述 动画的原理是在一个时间段内#xff0c;多次改变UI外观#xff0c;由于人眼会产生视觉暂留#xff0c;所以最终看到的就是一个“连续”的动画。UI的一次改变称为一个动画帧#xff0c;对应一次屏幕刷新#xff0c;而决定动画流畅度的一个重要指标就是帧率FPS#x…概述 动画的原理是在一个时间段内多次改变UI外观由于人眼会产生视觉暂留所以最终看到的就是一个“连续”的动画。UI的一次改变称为一个动画帧对应一次屏幕刷新而决定动画流畅度的一个重要指标就是帧率FPSFrame Per Second即每秒的动画帧数帧率越高则动画就会越流畅。 ArkUI中产生动画的方式是改变属性值且指定动画参数。动画参数包含了如动画时长、变化规律即曲线等参数。当属性值发生变化后按照动画参数从原来的状态过渡到新的状态即形成一个动画。 布局更新动画 显式动画animateTo和属性动画animation是ArkUI提供的最基础和常用的动画功能。在布局属性如尺寸属性、位置属性发生变化时可以通过属性动画或显式动画按照动画参数过渡到新的布局参数状态。 动画类型 显式动画 闭包内的变化均会触发动画包括由数据变化引起的组件的增删、组件属性的变化等可以做较为复杂的动画。 属性动画 动画设置简单属性变化时自动触发动画。 使用显式动画产生布局更新动画 显式动画的接口为 animateTo(value: AnimateParam, event: () void): void第一个参数指定动画参数 第二个参数为动画的闭包函数 以下是使用显式动画产生布局更新动画的示例。示例中当Column组件的alignItems属性改变后其子组件的布局位置结果发生变化。只要该属性是在animateTo的闭包函数中修改的那么由其引起的所有变化都会按照animateTo的动画参数执行动画过渡到终点值。 Entry Component struct LayoutChange {// 用于控制Column的alignItems属性State itemAlign: HorizontalAlign HorizontalAlign.Start;allAlign: HorizontalAlign[] [HorizontalAlign.Start, HorizontalAlign.Center, HorizontalAlign.End];alignIndex: number 0;build() {Column() {Column({ space: 10 }) {Button(1).width(100).height(50)Button(2).width(100).height(50)Button(3).width(100).height(50)}.margin(20).alignItems(this.itemAlign).borderWidth(2).width(90%).height(200)Button(click).onClick(() {// 动画时长为1000ms曲线为EaseInOutanimateTo({ duration: 1000, curve: Curve.EaseInOut }, () {this.alignIndex (this.alignIndex 1) % this.allAlign.length;// 在闭包函数中修改this.itemAlign参数使Column容器内部孩子的布局方式变化使用动画过渡到新位置this.itemAlign this.allAlign[this.alignIndex];});})}.width(100%).height(100%)} }效果 除直接改变布局方式外也可直接修改组件的宽、高、位置。 Entry Component struct LayoutChange2 {State myWidth: number 100;State myHeight: number 50;// 标志位true和false分别对应一组myWidth、myHeight值State flag: boolean false;build() {Column({ space: 10 }) {Button(text).type(ButtonType.Normal).width(this.myWidth).height(this.myHeight).margin(20)Button(area: click me).fontSize(12).margin(20).onClick(() {animateTo({ duration: 1000, curve: Curve.Ease }, () {// 动画闭包中根据标志位改变控制第一个Button宽高的状态变量使第一个Button做宽高动画if (this.flag) {this.myWidth 100;this.myHeight 50;} else {this.myWidth 200;this.myHeight 100;}this.flag !this.flag;});})}.width(100%).height(100%)} }在第二个Button的点击事件中使用animateTo函数在闭包中修改this.myWidth和this.myHeight状态变量而这两个状态变量分别为第一个Button的宽、高属性值所以第一个Button做了宽高动画。效果如下图。 另一种方式是给第二个Button添加布局约束如position的位置约束使其位置不被第一个Button的宽高影响。核心代码如下 Column({ space: 10 }) {Button(text).type(ButtonType.Normal).width(this.myWidth).height(this.myHeight).margin(20)Button(area: click me).fontSize(12)// 配置position属性固定使自己的布局位置不被第一个Button的宽高影响.position({ x: 30%, y: 200 }).onClick(() {animateTo({ duration: 1000, curve: Curve.Ease }, () {// 动画闭包中根据标志位改变控制第一个Button宽高的状态变量使第一个Button做宽高动画if (this.flag) {this.myWidth 100;this.myHeight 50;} else {this.myWidth 200;this.myHeight 100;}this.flag !this.flag;});}) } .width(100%) .height(100%)使用属性动画产生布局更新动画 显式动画把要执行动画的属性的修改放在闭包函数中触发动画而属性动画则无需使用闭包把animation属性加在要做属性动画的组件的属性后即可。 属性动画的接口为 animation(value: AnimateParam)其入参为动画参数。想要组件随某个属性值的变化而产生动画此属性需要加在animation属性之前。有的属性变化不希望通过animation产生属性动画可以放在animation之后。上面显式动画的示例很容易改为用属性动画实现。例如 Entry Component struct LayoutChange2 {State myWidth: number 100;State myHeight: number 50;State flag: boolean false;State myColor: Color Color.Blue;build() {Column({ space: 10 }) {Button(text).type(ButtonType.Normal).width(this.myWidth).height(this.myHeight)// animation只对其上面的type、width、height属性生效时长为1000ms曲线为Ease.animation({ duration: 1000, curve: Curve.Ease })// animation对下面的backgroundColor、margin属性不生效.backgroundColor(this.myColor).margin(20)Button(area: click me).fontSize(12).onClick(() {// 改变属性值配置了属性动画的属性会进行动画过渡if (this.flag) {this.myWidth 100;this.myHeight 50;this.myColor Color.Blue;} else {this.myWidth 200;this.myHeight 100;this.myColor Color.Pink;}this.flag !this.flag;})}} }上述示例中第一个button上的animation属性只对写在animation之前的type、width、height属性生效而对写在animation之后的backgroundColor、margin属性无效。运行结果是width、height属性会按照animation的动画参数执行动画而backgroundColor会直接跳变不会产生动画。效果如下图 说明 使用属性动画时会按照指定的属性动画参数执行动画。每个组件可为自己的属性配置不同参数的属性动画。 显式动画会对动画闭包前后造成的所有界面差异执行动画且使用同一动画参数适用于统一执行的场景。此外显式动画也可以用于一些非属性变量造成的动画如if/else的条件ForEach使用的数组元素的删减。 如果一个属性配置了属性动画且在显式动画闭包中改变该属性值属性动画优先生效会使用属性动画的动画参数。
http://www.pierceye.com/news/247003/

相关文章:

  • 珠海网站建设优化推广win2008 iis7发布网站
  • 平安网站建设发挥了积极的作用wordpress 的数据库路径
  • 福州网站建设优化安阳县二中录取分数线2022
  • 如何建手机网站网站能否做二维码
  • 南京网站建设 雷仁网上海网站制作网络推广方法
  • 营销型网站怎么做安阳县有多少个乡镇
  • 网站评论 设计天气网站建设
  • 潍坊市住房和城乡建设局网站哈尔滨最新发布公告
  • 白云网站 建设信科网络制作网站软件网站
  • 房产网站的建设想发布oa网站 需要备案吗
  • 帮别人做钓鱼网站吗海口网站建设过程
  • 广州php网站建设做网站的公司推荐
  • 百度一下建设银行网站首页网上购物都有哪些网站
  • 装饰公司营销型网站建设idc服务器租赁
  • 广告投放跟网站建设一样吗视频网站能备案吗
  • 哪些网站可以找到兼职做报表的学校网站建设价格明细表
  • 域名购买哪个网站好wordpress 转载插件
  • 网站百度提示风险网站开发 安全
  • 厦门网站建设建网站如何做一个网页项目
  • 锦州市网站建设腾讯企点怎么群发
  • 移动端网站开发哪家好总结格式模板
  • 东山县建设银行网站民宿网站开发的开题报告
  • 北京企业网站seo平台社交网站模板下载
  • 旅游做攻略用什么网站wordpress破解版
  • 杭州做购物网站第一次跑业务怎么找客户
  • 做软件好还是做网站好建筑公司年度工作总结报告
  • 陕西建设 节水 官方网站论坛怎样发帖推广
  • 二合一收款码免费制作网站营销型网站代理
  • 网站建设的技术方案模板淘宝客做网站链接
  • 梅州市网站制作页面简洁的导航网站