问题标签 [animation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - 将 ListBoxItem 从一个 ListBox 动画化到另一个 ListBox
我想在双击列表框中的项目时创建视觉效果。到目前为止,我有拖放功能,其中项目在视觉上附加到鼠标上并且可以移动到放置目标。通过该功能,我可以使用获取项目容器的相同逻辑为项目设置动画,但是我无法离开项目控制。有没有办法从 ListBox 中删除项目并将其视觉动画到另一个位置?基本上主列表框是一手牌。当一张卡片被双击时,我希望它在视觉上从手牌列表框移动到丢弃列表框。到目前为止,将项目从一个集合移动到另一个集合的逻辑没有问题,但是我真的想要这个事件的动画视觉表示。任何关于如何做这样的事情的想法或参考将不胜感激。
谢谢,布兰登
关于我尝试过的更多细节:有些概念我还没有很好地掌握,这导致我首先面对这堵墙。我有一个方法,我将 ListBox 作为 ItemsControl、作为列表框项的 FrameworkElement 以及与 ListBox 项关联的数据对象传入(有些可能是不必要的)。我试图做的是作为画布的 ListBoxItem 的 FindVisualChild。我能做到。在我看来,我想以某种方式将画布克隆为画布或位图,将其添加到同一位置的页面子级的子级中,从 ListBox 中删除 ListBoxItem,并将克隆动画到丢弃桩。当动画完成时,克隆将被移除或隐藏,并且随着该对象被添加到丢弃堆集合中,它将有效地替换克隆。
我的问题是,我觉得确实有一种更简单的方法可以使用装饰层或其他东西来做到这一点。我也不知道如何将克隆定位在元素中的完全相同的位置,在视觉树的更上方。我将继续努力并研究其他方法,我只希望有人能分享一些对此的见解。
animation - Bouncing Card Algorithm
What's a good algorithm for "bouncing cards" like the ones you see in solitaire games?
What's the coolest card animation you've seen?
Edit - Any besides the Windows game?
iphone - 我需要有关动画回调 (iPhone) 的帮助
我正在 iPhone 中创建一个应用程序,其中有几个 UIView 和图层。我正在使用 CAKeyframeAnimation 类制作一些动画,并且由于必须链接动画,因此我已经覆盖了 UIView 中的 animationDidStop 方法。
我得到了正确的回调,但是我不知道如何找到结束的动画,以便我可以开始下一个。只有回调函数的参数是 CAAnimation 对象和布尔值。
我可以通过在类中设置一个属性并为我使用的各种动画使用枚举来解决这个问题。但是我只是想知道回调中是否有任何内置属性,我可以在 CAKeyframeAnimation 对象中设置这些属性,然后在回调中引用相同的属性。
任何帮助将不胜感激!
animation - 使用核心动画,有没有办法为几个 CALayers 分组动画?
我有一种情况,我有许多以“回合制”方式制作动画的 CALayer。我为每个 CALayers 上的位置设置动画,但它们的持续时间完全相同。一旦所有这些 CALayer 都完成了动画,就会启动一个新的“转弯”,并且它们会再次动画改变位置。
整个想法是,通过位置之间的线性插值,并且以恒定的速度,状态到状态之间的基于回合的转换看起来像实时动画。然而,这很难通过许多不同的 CALayer 来实现。
CAAnimationGroup 用于将单个 CALayer 上的动画组合在一起。但我想知道,是否有一个简单的解决方案来组合动画,它们应该具有相同的持续时间,在几个 CALayers 上?
编辑包括对凯文巴拉德问题的回复
我的问题就在于此。我正在为我的每个 CALayers 创建动画,然后将它们放在 NSArray 中。一旦我得到单个动画已经结束的回调,我将它从 NSArray 中删除。一旦它为空,我再次为它们创建动画。
如果层数多于几层,则在所有动画完成与新动画开始之间存在明显的延迟。
我想如果我可以将所有这些动画组合成一个单独的动画,就可以在动画之间没有延迟的情况下制作更多图层。从而不会破坏连续动画的错觉。
cocoa-touch - 更改时有一个 UITableView 动画的 reloadData
我有一个 UITableView 有两种模式。当我们在模式之间切换时,我有不同数量的部分和每个部分的单元格。理想情况下,当表格增长或缩小时,它会做一些很酷的动画。
这是我尝试过的代码,但它什么也没做:
关于我如何做到这一点的任何想法?
jquery - jQuery背景彩色动画
我有一个带有链接和 SPAN 的 DIV。
单击链接时,它会使用 AJAX 呈现项目列表。单击某个项目时,SPAN 的内容会更改。
我想通过将 DIV 的背景颜色设置为绿色并使用 jQuery 将其设置为白色来突出显示此更改。
SPAN 的背景在第 2 行变为绿色,但第 3 行不执行任何操作。没有错误,也没有改变什么……
有任何想法吗?
编辑:正如 Ted Naleid 在下面的评论中指出的那样:
另请注意,您必须安装颜色动画插件才能使用(http://plugins.jquery.com/project/color),如果您没有安装它,jQuery 无法动画颜色,只有数字属性(至少从 1.3.1 开始)。
wpf - WPF LinkLabel 实现策略
我正在尝试为 WPF 创建一个 LinkLabel 控件。本质上,我将从 TextBlock 创建 LinkLabel 并处理 MouseEnter、MouseLeave 和 MouseLeftButtonUp 事件。在后端,我有一个基类,它具有您希望通过 LinkLabel 看到的属性。对于 WPF 中的大多数其他可单击控件,有一个默认的 MouseEnter 动画,其中控件变为冰蓝色。当鼠标光标进入 TextBlock 时,我想复制此行为。我不确定我是否需要从 ButtonBase 或类似的东西派生。我有一个我能够将光标更改为一只手,并处理单击“LinkLabel”时的事件。如果访问这个看似默认的变色动画,那么我可能不得不求助于简单的前景色交换而没有平滑过渡。如果有人之前创建了自定义 WPF LinkLabel 或对此事有任何建议,您的意见将不胜感激。
iphone - 不使用 MPMoviePlayer 在 iPhone 上动画图像(如电影)的方法
我需要能够在静态图像上显示动画。
鉴于 MPMoviePlayer 无法让您控制任何有用的东西,我能想到的唯一方法是使用多个静态图像,我们会(一个接一个地)显示这些图像来创建“类似电影”的动画。
我知道我们可以使用 UIImageView 来做到这一点(通过设置 UIImageView animationImages属性然后调用startAnimation),但是我们的动画中将有超过 100 个图像 - 所以内存使用量将被最大化。
有没有人有任何好的方法来做这种动画?使用核心动画还是 OpenGL?
我的猜测是我们需要创建一个图像缓冲区,当我们加载新图像时,我们会显示图像缓冲区中的图像?
.net - 在哪里可以找到一些示例 WPF 动画?
因为我是一名程序员,而不是艺术家或动画师,所以我未能在我的应用程序中展示 WPF 的最佳功能。虽然我有一些简单的按钮动画示例,比如增长,或者点击时颜色变亮,但我正在寻找一些展示按钮动画和一些展示面板更改动画,以展示 WPF 的最佳功能。通常我会进行更细微的更改,但在某些情况下,我需要一些东西来真正展示使用 WPF 优于 WinForms 技术的优势。
任何人都可以指出一些真正显示 WPF 并具有令人惊叹的因素的按钮示例和/或面板更改(在导航中从一个面板切换到下一个面板)。
编辑
请不要指向http://codeproject.com或 microsoft 示例,因为我已经详细阅读了这些示例。事实上,这里是我的 rss 阅读器中的 WPF 站点列表(欢迎对其他博客提出建议):
Lester 的 WPF 博客、 Ask Dr. WPF、Expression Blend and Design、WPF Wonderland、nerdplusart、Karl On WPF、Windows Presentation Foundation SDK、Josh Smith on WPF、Rob Relyea-Xamlified、The Moth。
我要具体的例子,谢谢...
user-interface - Qt 中的 GLWidget 仅在 mousemove 上更新
我目前正在使用 Qt 尝试建立一个小型粒子系统。其中,我将 GLWidget 子类化并破解了它。一切都很顺利,直到我做了一些未知的更改,现在小部件只在我移动鼠标时重新绘制(由于我已经触发了 QTimer,它应该一直在这样做)。相关代码:
OpenGLWidget.h
.cpp 中的相关代码