没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
 
                
            翻译|使用教程|编辑:吴园园|2020-01-20 15:46:41.440|阅读 1544 次
概述:GoJS提供了几种内置动画(默认情况下启用)以及创建任意动画的功能。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
GoJS是一款功能强大,快速且轻量级的流程图控件,可帮助你在JavaScript 和HTML5 Canvas程序中创建流程图,且极大地简化您的JavaScript / Canvas 程序。
GoJS提供了几种内置动画(默认情况下启用)以及创建任意动画的功能。
该Diagram.animationManager处理一中的动画图。该AnimationManager自动设置和调度默认的动画,并具有属性来定制和禁用它们。通过创建Animation或AnimationTrigger的实例,可以自定义动画。
简介页面详细介绍了用于GoJS动画的不同类。
要查看自定义动画的更多演示,请访问“ 自定义动画”扩展示例。
默认动画
默认情况下,AnimationManager创建并运行使用动画的单一实例的框图几个动画AnimationManager.defaultAnimation。这些动画通过Diagram.model setter和布局在各种命令上发生。与其他动画不同,如果在动画过程中开始新事务,它们将被停止。
出于以下原因,GoJS将自动开始动画制作:
由CommandHandler调用:
通过图调用:
由AnimationTrigger调用,如果已声明:
上面引用的名称是AnimationManager.animationReasons集中的字符串。
默认初始动画从GoJS 2.1开始,默认的初始动画使图表逐渐淡入视图。先前版本分别为零件位置设置动画。为了控制初始动画行为,现在存在AnimationManager.initialAnimationStyle,默认 情况下将其设置为AnimationManager,Default,但可以将其设置为AnimationManager,AnimateLocations以使用GoJS 2.0中的动画样式。您也可以将此属性设置为AnimationManager,None,并使用"InitialAnimationStarting" DiagramEvent定义自己的初始动画。
这是一个带有按钮的示例,这些按钮将AnimationManager.initialAnimationStyle设置为三个不同的值,然后重新加载该图。第四个按钮说明了如何使用"InitialAnimationStarting" DiagramEvent制作自定义的“放大”动画。
    diagram.nodeTemplate =
    $(go.Node, "Auto",
      $(go.Shape, "RoundedRectangle", { strokeWidth: 0, fill: "lightblue" }),
      $(go.TextBlock,
        { margin: 8, font: "bold 14px sans-serif", stroke: '#333' },
        new go.Binding("text", "key"))
    );
    diagram.model = new go.GraphLinksModel([{ key: 'Alpha' }, { key: 'Beta' }, { key: 'Delta' }, { key: 'Gamma' }]);
    // only needed for this demonstration, this flag is used to stop
    // the "InitialAnimationStarting" listener when other buttons are pressed
    window.custom = false;
    window.animateDefault = function() {
      window.custom = false;
      diagram.animationManager.initialAnimationStyle = go.AnimationManager.Default;
      diagram.model = go.Model.fromJSON(diagram.model.toJSON());
    }
    window.animateLocations = function() {
      window.custom = false;
      diagram.animationManager.initialAnimationStyle = go.AnimationManager.AnimateLocations;
      diagram.model = go.Model.fromJSON(diagram.model.toJSON());
    }
    window.animateNone = function() {
      window.custom = false;
      diagram.animationManager.initialAnimationStyle = go.AnimationManager.None;
      diagram.model = go.Model.fromJSON(diagram.model.toJSON());
    }
    window.animateCustom = function() {
      window.custom = true;
      diagram.animationManager.initialAnimationStyle = go.AnimationManager.None;
      // Customer listener zooms-in the Diagram on load:
      diagram.addDiagramListener("InitialAnimationStarting", function(e) {
        var animation = e.subject.defaultAnimation;
        if (window.custom === false) {
          // a different button was pressed, restore default values on the default animation:
          animation.easing = go.Animation.EaseInOutQuad;
          animation.duration = NaN;
          return;
        }
        animation.easing = go.Animation.EaseOutExpo;
        animation.duration = 1500;
        animation.add(e.diagram, 'scale', 0.1, 1);
        animation.add(e.diagram, 'opacity', 0, 1);
      })
      diagram.model = go.Model.fromJSON(diagram.model.toJSON());
    }
 
 
该AnimationManager可以通过设置来关闭AnimationManager.isEnabled来false。可以通过重写AnimationManager.canStart来关闭特定的默认动画,或者查询动画即将开始的原因(AnimationManager.animationReasons),然后可能返回false。
如果在动画过程中开始新的事务,则默认动画将停止。对于其他Animation而言,情况并非如此,它们不会被新事务停止,并且可以无限期地继续。
可动画属性
默认情况下,AnimationTriggers和Animation可以为GraphObjects的以下属性设置动画:
另外,Animation(但不是AnimationTriggers)可以为Diagram的以下属性设置动画:
AnimationTrigger类
(2.1版本的新功能)
一个AnimationTrigger用于当其值已更改为GraphObject性质申报动画。定义触发器后,对目标属性的更改将从旧值动画化为新值。在模板中,触发器的定义方式与绑定类似:
// In this shape definition, two triggers are defined on a Shape.
// These will cause all changes to Shape.stroke and Shape.fill to animate
// from their old values to their new values.
$(go.Shape, "Rectangle",
  { strokeWidth: 12, stroke: 'black', fill: 'white' },
  new go.AnimationTrigger('stroke'),
  new go.AnimationTrigger('fill')
)
 下面是一个例子,一个HTML按钮,它将图形的stroke和fill新的随机值: 
diagram.nodeTemplate =
  $(go.Node,
    $(go.Shape, "Rectangle",
      { strokeWidth: 12, stroke: 'black', fill: 'white' },
      new go.AnimationTrigger('stroke'),
      new go.AnimationTrigger('fill')
    )
  );
diagram.model = new go.GraphLinksModel([{ key: 'Alpha' }]); // One node
// attach this Diagram to the window to use a button
window.animateTrigger1 = function() {
  diagram.commit(function(diag) {
    var node = diag.nodes.first();
    node.elt(0).stroke = go.Brush.randomColor();
    node.elt(0).fill = go.Brush.randomColor();
  });
}
 
 
AnimationTriggers可以立即调用动画,以已修改的每个GraphObject的每个属性开始一个新动画,也可以(更有效地)将它们捆绑到默认动画(AnimationManager.defaultAnimation)中,并在下一个动画结束时开始交易。可以使用AnimationTrigger.startCondition分别通过值 AnimationTrigger,Immediate和AnimationTrigger,Bundled设置这些行为。默认值AnimationTrigger,Default尝试推断最佳值。如果没有正在进行的事务或Diagram.skipsUndoManager为true ,它将立即开始。
AnimationTriggers仅在GraphObjects的模板中定义,而不能在RowColumnDefinitions或Diagrams上使用。
====================================================
想要购买GoJS正版授权的朋友可以
有关产品的最新消息和最新资讯,欢迎扫描关注下方微信公众号
 
	
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ldacury.cn
文章转载自:GoJS



 
					本文将为大家介绍一些MyEclipse开发过程中能用到的EJB开发工具,欢迎下载最新版体验!
 
					本文主要介绍如何在MVVM应用程序中使用虚拟源,欢迎下载最新版组件体验!
 
					Parasoft C/C++test是一款功能强大的代码测试与分析工具,专为提升代码质量、确保软件安全与可靠性而设计。要在 Ubuntu 桌面环境中使用这一强大的工具,第一步就是完成其安装与许可证配置。
 
					注意: Cogent DataHub 软件 v11 包含一些新功能,您的目标操作系统可能不支持这些功能。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@ldacury.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
 
                 
             靠谱朗驰娱乐体育
靠谱朗驰娱乐体育  
					 
					 
					