在特定时间使用情节提要调用方法

布拉德利网

我想利用一个Storyboard对象在特定时间调用方法。具体来说; 我正在尝试使用Firework具有Fire方法用户控件来制作烟花表演我想创建几个这样的控件,并Fire在特定时间调用它们的方法(就像真实的表演一样)。

通常,Storyboard随着时间的推移,您将使用来为对象的属性设置动画。有没有一种方法可以代替调用方法?

类似于(当然是伪代码)的东西:

<Storyboard>
    <MethodUsingKeyFrames>
         <MethodKeyFrame KeyTime="0:0:1" TargetName="Firework1" Method="Fire"/>
         <MethodKeyFrame KeyTime="0:0:2.5" TargetName="Firework2" Method="Fire"/>
    </MethodUsingKeyFrames>
</Storyboard>

我曾考虑过仅使用Timer高间隔并自己进行排序,但这似乎是一种技巧。尤其是当我们有这么好的现有方法时。

注意:使用情节提要板调用动态创建的用户控件中的方法有关这个问题(从表面上看)似乎是相同的,但是答案与我要完成的任务无关。

布拉德利网

这就是我最终要进行的工作:

将依赖项属性添加NeedsToFire到用户控件(a bool)。然后PropertyChanged使用以下函数处理事件(通过元数据):

public bool NeedsToFire
{
   get { return (bool)GetValue(NeedsToFireProperty); }
   set { SetValue(NeedsToFireProperty, value); }
}

public static readonly DependencyProperty NeedsToFireProperty =
        DependencyProperty.Register("NeedsToFire", typeof(bool), 
            typeof(Firework), new PropertyMetadata(false, HandleNeedsToFire));

private static void HandleNeedsToFire(DependencyObject d, 
                                      DependencyPropertyChangedEventArgs e)
{
   if ((bool)e.NewValue)
   {
      (d as Firework).Fire();
   }
}

最后,使用aBooleanAnimationUsingKeyFrames在正确的时间设置此属性:

<Storyboard x:Key="FireworksShow">
    <BooleanAnimationUsingKeyFrames Storyboard.TargetName="Firework1" 
                                    Storyboard.TargetProperty="NeedsToFire">
         <DiscreteBooleanKeyFrame KeyTime="0:0:0.5"  Value="True" />
    </BooleanAnimationUsingKeyFrames>
</Storyboard>

这似乎是最容易实现的解决方案。即使它确实需要以不一定非要使用的方式使用依赖项属性。它还允许重复发射。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用情节提要的条件Segue

来自分类Dev

使用情节提要Segues消除Popover视图

来自分类Dev

使用情节提要时未调用UITableViewController替代init函数

来自分类Dev

通用情节提要吗?

来自分类Dev

使用情节提要VS .xib(XCode 5)

来自分类Dev

从UIViewcontroller调用情节提要

来自分类Dev

以编程方式创建UIButton比使用情节提要模糊

来自分类Dev

使用情节提要时更改Popover的大小

来自分类Dev

如何使用情节提要引用UISearchController

来自分类Dev

在特定时间使用情节提要调用方法

来自分类Dev

如何仅使用情节提要呈现弹出窗口

来自分类Dev

使用情节提要将页脚添加到UITableViewController

来自分类Dev

在共享扩展中使用情节提要

来自分类Dev

调用情节提要场景而不迅速创建情节?

来自分类Dev

使用情节提要中的重叠对象

来自分类Dev

如何在特定时间使用Python启动函数?

来自分类Dev

UIStackView:使用情节提要更改UIStackView图像宽度

来自分类Dev

使用情节提要沿着最短的“路线”旋转网格

来自分类Dev

每天在特定时间使用WinSCP运行JAR文件

来自分类Dev

无法使用情节提要将窗口连接到IBOutlet

来自分类Dev

在特定时间使用Django执行功能

来自分类Dev

在特定时间使用python请求网站

来自分类Dev

使用情节提要ViewController

来自分类Dev

特定情节提要完成时调用情节提要

来自分类Dev

使用情节提要制作圆形图像

来自分类Dev

每天在特定时间使用WinSCP运行JAR文件

来自分类Dev

如何在特定时间使用Java触发方法?

来自分类Dev

JavaFX:在特定时间调用方法

来自分类Dev

需要在特定时间使用 c# asp.net 调用 web 服务

Related 相关文章

热门标签

归档