`
yiminghe
  • 浏览: 1480372 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Ext.Fx 队列控制机制

阅读更多

承续 Ext.Fx分析   ,  Ext.lib.anim 分析


Ext.Fx 为对底层Ext.lib.Anim 的封装,提供了一些现成的配置而形成的动画,比如fadeIn渐进显示,slideIn滑动显示,都是构造配置参数传递给底层的Ext.lib.Anim 对象具体运行,但是FX也进一步提供了以动画为单元的队列机制,不同于底层按照时间片排队,fx按照元素的动画调用顺序排队。

其中有三个参数控制Fx:

 concurrent

控制是否启用排队机制,如果为true并且队列中第一个动画不是block则当前动画立即执行,否则如果为false并且队列中第一个动画不是block 则将当前元素的动画处理存入队列,并判断如果

当前对列为空则执行或者
要等队列中在执行的动画执行完毕后nextFx退出队列并通知下一个动画执行时才可能执行。

queueFx : function(o, fn){
        if(!this.fxQueue){
            this.fxQueue = [];
        }
        //对列第一个没有block
        if(!this.hasFxBlock()){
            Ext.applyIf(o, this.fxDefaults);
            //当前并发?
            if(!o.concurrent){
                //是否对列为空,或者stopFx要结束队列第一个动画
                var run = this.beforeFx(o);
                fn.block = o.block;
                this.fxQueue.push(fn);
                if(run){
                    this.nextFx();
                }
            }else{
                fn.call(this);
            }
        }
        return this;
    },

 

 block

当设置为true并且concurrent为false,则当前动画处理放入队列处理,当下一个元素动画申请处理时,判断动画队列头是否是block,如果是则当前元素动画取消。

 stopFx

当设置为true时,则如果自己设置的是concurrent为true,则立即终止队列第一个动画的执行,从对列第二个动画开始执行

(

如果不用Fx而使用opt配置来是普通操作动画,比如scroll("left",num,opt)

则执行后 opt会有一个anim变量,类型为Ext.Lib.Anim,可以使用

Ext.lib.AnimMgr.stop(opt.anim);

来强制停止当前进行的动画

)



举个例子:


点击按钮后,快速弹出渐隐提示,并随后慢慢渐隐消失,要达到的效果是连续多次点击时,动画不会混乱,即如果点击后发现上次动画还没结束,此次提示操作就取消

要点:

1.渐隐出现和渐隐消失要排队,而不能同时进行。(利用concurrent参数)
2.在进行渐隐消失时,如果又出现了渐隐出现动画,渐隐消失动画,则后两个动画取消(利用block参数)

演示@google code

 

IE 中貌似有问题,原因未知

分享到:
评论

相关推荐

    Ext.fx动画特效用法(转)

    2. **动画队列**:使用`Ext.fx.Queue`可以将多个动画组成队列,按照指定顺序依次执行。 五、最佳实践 1. **性能优化**:尽量减少不必要的动画,避免过度使用导致性能下降。 2. **用户体验**:确保动画的使用能提升...

    extjs 学习笔记(二) Ext.Element类

    `Ext.Fx`类包含了一系列动画效果,如淡入淡出、滑动等,它们使用内部效果队列来控制动画顺序。通过调整`duration`(持续时间)、`easing`(缓动函数)和`endOpacity`(结束时的透明度)等属性,我们可以定制各种动态...

    CreatingExtensionsPluginsComponents

    - **FX Queue Mixin**:支持动画队列管理。 - **Animate Mixin**:提供动画功能。 在实际应用中,可以通过以下步骤实现混入: 1. **包含混入**:在定义类时通过 `mixins` 属性包含所需的混入类。 2. **执行混入...

    双目摄像头python测试代码

    双目摄像头python测试代码

    VS2010旗舰版的VB.NET版本任意进制互相转换程序源代码QZQ.zip

    VS2010旗舰版的VB.NET版本任意进制互相转换程序源代码QZQ

    前端开发_Mantine框架_Vite模板_快速启动_开发指_1744170109.zip

    前端开发_Mantine框架_Vite模板_快速启动_开发指_1744170109.zip

    RK3568核心板设计指南:基于Rockchip方案的硬件与软件实现

    内容概要:本文详细介绍了RK3568核心板的设计要点,涵盖硬件和软件两大部分。硬件方面,着重讨论了电源设计、时钟设计、DDR布线、散热设计等关键环节,提供了具体的实例代码和调试技巧。软件部分则涉及驱动开发、系统移植等内容,展示了如何通过设备树文件配置和驱动程序编写来实现硬件与操作系统的无缝对接。此外,还分享了许多实用的调试经验和优化方法,帮助开发者更好地理解和掌握RK3568核心板的设计。 适合人群:从事嵌入式系统开发的技术人员,尤其是对RK3568核心板感兴趣的硬件工程师和软件开发者。 使用场景及目标:适用于准备开发基于RK3568核心板的产品的研发团队,旨在帮助他们快速上手并解决实际开发过程中遇到的问题,提高开发效率和产品质量。 其他说明:文中不仅提供了理论指导,还包括大量实战案例和代码片段,便于读者理解和实践。同时,针对一些常见的错误和难题给出了有效的解决方案,有助于减少开发周期和技术风险。

    前端开发_Vite打包工具_Vue2框架_TypeScrip_1744171829.zip

    前端开发_Vite打包工具_Vue2框架_TypeScrip_1744171829.zip

    试题:矩阵理论:运算与性质.docx

    试题:矩阵理论:运算与性质.docx

    【嵌入式系统】第八届蓝桥杯嵌入式设计与开发省赛基础知识试题解析:选择题及答案分析

    内容概要:本文档为第八届蓝桥杯嵌入式设计与开发项目省赛的基础知识试题部分,主要考察参赛者对嵌入式系统的基本概念、逻辑运算、微控制器特性、通信接口及时钟源的选择等知识点的理解。试题涵盖逻辑表达式的化简、门电路的功能识别、STM32F103RBT6微控制器的内核及数据类型支持情况、RS232接口用于双机通信所需的最少信号线数量、STM32程序下载调试的方式选择、可菊链连接的接口类型、USB外设开发的时钟源选择、DMA的工作机制以及简单电路的电压计算等多个方面,旨在全面检验选手的专业知识掌握程度。 适合人群:具有一定的电子技术与单片机开发基础,准备参加嵌入式设计与开发竞赛的学生或爱好者。 使用场景及目标:①帮助参赛者熟悉并巩固嵌入式系统相关理论知识;②作为赛前复习资料,提高解题速度和准确性;③通过练习加深对各种硬件特性和应用场景的理解。 其他说明:文档提供了详细的答案解析,有助于学习者更好地理解题目背后的原理,建议结合实际项目经验进行学习,同时注意不同版本器件之间的差异。

    MX Player V1.90.1.apk

    MX Player V1.90.1.apk

    3dmax插件a显示所有的组物体.ms

    3dmax插件

    MATLAB实现ARIMA模型的时间序列预测:从数据预处理到模型优化

    内容概要:本文详细介绍了一个基于MATLAB的时间序列预测系统,特别是ARIMA模型的应用。首先介绍了如何从Excel文件中读取数据并进行预处理,如差分处理和平稳性检验。接着讨论了模型定阶方法,包括使用ACF/PACF图和BIC准则自动选择最佳模型阶数。然后讲解了模型参数估计、残差诊断以及预测阶段的具体步骤,包括反向差分和置信区间的计算。最后提供了动态可视化的实现方法,并分享了一些实用技巧和注意事项。 适合人群:具有一定MATLAB编程基础的研究人员、数据分析员、学生等。 使用场景及目标:适用于零售销量、电力负荷、交通流量等多种时间序列预测任务,帮助用户快速构建高效的时间序列预测模型,提高预测精度。 其他说明:文中还提到一些常见的陷阱和解决方案,如数据预处理中的时间戳处理、异常值处理等。同时提供了一些扩展功能,如季节性调整和GARCH模型的应用。

    数据库管理_VitessOperator_兼容性支持_云端部_1744166554.zip

    数据库管理_VitessOperator_兼容性支持_云端部_1744166554.zip

    粒子群与遗传算法结合解决旅行商问题(TSP)的Python实现及优化

    内容概要:本文详细介绍了将粒子群算法(Particle Swarm Optimization, PSO)与遗传算法(Genetic Algorithm, GA)相结合的方法来求解旅行商问题(Traveling Salesman Problem, TSP)。首先,文中展示了如何准备输入数据,即城市坐标存储于文本文件中并通过Python脚本加载。接着,重点讲解了混合算法的核心设计,包括粒子类定义、适应度计算、交叉操作以及变异操作的具体实现方式。此外,还讨论了算法的整体流程及其参数设置,并分享了一些实用的经验和技巧,如引入模拟退火思想以增强跳出局部最优的能力。 适合人群:对智能优化算法感兴趣的科研人员、学生或者有一定编程基础的数据科学家。 使用场景及目标:适用于需要高效求解TSP或其他类似组合优化问题的研究项目或应用系统开发。主要目标是在较短时间内获得接近最优解的路径安排。 其他说明:文中提供了完整的Python代码示例,便于读者理解和实践。同时也提到了一些性能优化措施,例如预处理距离矩阵、调整交叉率和变异率等方法来提升算法效率。

    LS-DYNA霍普金森压杆SHPB动态劈裂仿真k文件详解及优化技巧

    内容概要:本文详细介绍了LS-DYNA软件中霍普金森压杆(SHPB)动态劈裂仿真的源代码k文件的具体实现方法和优化技巧。首先概述了SHPB动态劈裂实验的基本原理,然后深入剖析了k文件中各部分的关键字和参数设置,如模型定义、材料属性、边界条件、接触定义、加载波形以及结果输出控制。文中还特别强调了常见错误和注意事项,并提供了具体的代码片段作为实例。此外,提到了‘LS-DYNA-浩雨’这一资源平台,分享了许多实用的经验和技术诀窍,有助于提高模拟精度和效率。 适合人群:从事材料动态力学性能研究的科研人员、工程技术人员以及对LS-DYNA仿真感兴趣的学者。 使用场景及目标:适用于需要进行SHPB动态劈裂仿真的研究人员,旨在帮助他们更好地理解和掌握LS-DYNA中k文件的编写规则和优化方法,从而提升仿真的准确性和可靠性。 其他说明:文章不仅提供了理论指导,还包括大量实践经验,能够帮助读者快速入门并解决实际问题。同时提醒读者注意一些常见的陷阱,避免不必要的错误。

    3dmax插件037-体块工具.ms

    3dmax插件

    工业自动化中同步磁阻电机及驱动器等关键技术的C语言实现与优化

    内容概要:本文详细介绍了工业自动化领域中同步磁阻电机及其驱动器、光伏储能双向变流器、EtherCAT伺服控制以及软启动器等关键技术的C语言实现方法和优化技巧。针对同步磁阻电机,文中探讨了六步换相算法、模型预测控制、磁链观测器等技术的应用;对于光伏储能,讨论了二阶广义积分器PLL、双向储能模式切换等问题;EtherCAT伺服方面则涉及主站协议栈的状态机设计及时钟同步;软启动器部分讲述了突加负载检测、电压斜坡控制等内容。每个技术点均附有具体的C代码示例,展示了如何应对实际工程中的挑战,如提高能效比、增强控制精度、确保协议兼容性等。 适合人群:从事工业自动化相关工作的工程师和技术人员,尤其是那些希望深入了解同步磁阻电机、光伏储能、EtherCAT伺服控制等领域核心技术实现的人群。 使用场景及目标:适用于正在参与或计划开展工业自动化项目的技术团队,旨在帮助他们掌握高效可靠的嵌入式控制系统开发技能,提升产品的性能指标,降低成本风险。同时,也为高校师生提供了宝贵的实践教学资料。 其他说明:文章不仅分享了理论知识,还结合大量真实案例,强调了实际应用中的注意事项和常见错误规避方法。通过对这些技术细节的学习,读者能够更好地理解和解决工业现场遇到的各种难题。

    多相永磁同步电机控制算法详解:PI、滑模、ADRC及模型预测控制

    内容概要:本文详细介绍了多相(五相和六相)永磁同步电机的各种控制算法及其应用技巧。首先讨论了PI控制的基本原理和常见问题,如积分饱和。接着深入探讨了滑模控制的抖颤抑制技术和ADRC控制中的扩张状态观测器的应用。此外,文章还讲解了SVPWM矢量控制的具体实现方法,以及无位置传感器控制中扩展卡尔曼滤波的应用。针对五相和六相电机的特点,文中提供了具体的矢量选择策略和改进的滑模观测器算法。最后,文章分享了一些实用的经验和技术细节,如参数整定、谐波抑制和电流跟踪优化。 适合人群:具备一定电机控制基础知识的研发人员、工程师和研究人员。 使用场景及目标:适用于需要深入了解多相永磁同步电机控制算法的设计和优化,特别是在高性能驱动系统、工业自动化等领域。目标是提高系统的稳定性和效率,减少电流谐波和转矩波动。 其他说明:文章不仅提供了理论分析,还附带了大量的Matlab/Simulink代码片段,便于读者理解和实践。建议读者结合实际项目进行调试和验证,以获得更好的效果。

    智能穿搭_ComfyUI_模型换装_SegVITON_实时服_1744169167.zip

    智能穿搭_ComfyUI_模型换装_SegVITON_实时服_1744169167.zip

Global site tag (gtag.js) - Google Analytics