控制动画播放过程

<Page x:Class="控制动画播放过程.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        WindowTitle="控制动画播放过程">
    <StackPanel Margin="0,30,0,0">
        <ProgressBar Name="progressBar1" Width="360" Height="26"/>
        <TextBlock FontWeight="Bold" TextAlignment="Center" Text="{Binding ElementName=progressBar1,Path=Value}"/>
        <WrapPanel HorizontalAlignment="Center" Margin="0,30,0,0">
            <WrapPanel.Triggers>
                <EventTrigger RoutedEvent="Button.Click" SourceName="buttonBegin">
                    <BeginStoryboard Name="MyBeginStoryboard">
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetName="progressBar1" Storyboard.TargetProperty="(ProgressBar.Value)"
                                             From="1.0" To="100.0" Duration="0:0:10"/>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
                <EventTrigger SourceName="buttonPause" RoutedEvent="Button.Click">
                    <PauseStoryboard BeginStoryboardName="MyBeginStoryboard"/>
                </EventTrigger>
                <EventTrigger RoutedEvent="Button.Click" SourceName="buttonResume">
                    <ResumeStoryboard BeginStoryboardName="MyBeginStoryboard"/>
                </EventTrigger>
                <EventTrigger RoutedEvent="Button.Click" SourceName="buttonSkipToFill">
                    <SkipStoryboardToFill BeginStoryboardName="MyBeginStoryboard"/>
                </EventTrigger>
                <EventTrigger RoutedEvent="Button.Click" SourceName="buttonStop">
                    <StopStoryboard BeginStoryboardName="MyBeginStoryboard"/>
                </EventTrigger>
            </WrapPanel.Triggers>
            <Button Name="buttonBegin" Width="58" Margin="6">开始</Button>
            <Button Name="buttonPause" Width="58" Margin="6">暂停</Button>
            <Button Name="buttonResume" Width="58" Margin="6">继续</Button>
            <Button Name="buttonSkipToFill" Width="58" Margin="6">跳过</Button>
            <Button Name="buttonStop" Width="58" Margin="6">停止</Button>
        </WrapPanel>
    </StackPanel>
</Page>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Unity3D中,可以通过以下几种方式实现动画控制播放完成回调: 1. 使用AnimationEvent Unity3D中的AnimationEvent可以在动画播放过程中插入自定义事件,可以在动画播放完成时触发回调函数。具体实现步骤如下: - 在动画控制器中选中要添加事件的动画片段,打开Animation选项卡。 - 点击Add Event按钮,在动画片段中添加事件点。 - 选择添加事件点后,在Inspector窗口中可以设置事件的参数,包括事件函数名、参数等。 - 在脚本中编写事件回调函数。 示例代码: ```csharp using UnityEngine; using System.Collections; public class AnimationCallback : MonoBehaviour { public void OnAnimationFinished() { Debug.Log("Animation finished"); } } ``` 2. 使用AnimationClip.isReadyToPlay Unity3D中的AnimationClip类提供了isReadyToPlay属性,可以检测动画片段是否已准备好播放。可以在动画片段准备好播放时触发回调函数。具体实现步骤如下: - 在脚本中获取动画片段的引用。 - 在Update函数中检测动画片段是否准备好播放,如果准备好则触发回调函数。 示例代码: ```csharp using UnityEngine; using System.Collections; public class AnimationCallback : MonoBehaviour { public AnimationClip animClip; void Update() { if (animClip.isReadyToPlay && !animClip.isPlaying) { OnAnimationFinished(); } } public void OnAnimationFinished() { Debug.Log("Animation finished"); } } ``` 3. 使用AnimationEventTrigger Unity3D中的AnimationEventTrigger组件可以在动画播放过程中自动触发回调函数。具体实现步骤如下: - 在脚本中编写事件回调函数。 - 将脚本挂载到包含AnimationEventTrigger组件的游戏对象上。 - 在AnimationEventTrigger组件中添加事件,选择要触发的回调函数。 示例代码: ```csharp using UnityEngine; using System.Collections; public class AnimationCallback : MonoBehaviour { public void OnAnimationFinished() { Debug.Log("Animation finished"); } } ``` 注意:使用AnimationEventTrigger需要Unity版本在2019.1以上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值