精华内容
下载资源
问答
  • WPF 按钮动画效果制作

    千次阅读 2011-02-11 11:47:00
    概要:本文将通过WPF按钮与Flash按钮的制作流程的对比讲解如何用Xaml实现按钮动画,同时你也还能学习Expression Blend。本文假设你正在制作一套点饮料的系统,现在你要做的就是制作出一个点咖啡按钮,用户点了...

    概要:本文将通过WPF按钮与Flash按钮的制作流程的对比讲解如何用Xaml实现按钮动画,同时你也还能学习Expression Blend。本文假设你正在制作一套点饮料的系统,现在你要做的就是制作出一个点咖啡按钮,用户点了之后就会给用户下咖啡订单。当然这样的按钮要越直观越好,要让用户一看就明白这是用来点咖啡的按钮,这就是对这个按钮的要求。

    本文使用的开发环境:Expression Blend 2 sp1, Expression Design

    阅读本文前建议先阅读《WPF揭秘》中的以下章节,学习一些基础概念:

    Xaml,《WPF揭秘》第2章
    样式,《WPF揭秘》10.1
    控件模板,《WPF揭秘》10.2
    触发器,《WPF揭秘》10.1.2
    动画和Storyboard,《WPF揭秘》第13章
    关键帧,《WPF揭秘》13.3
     

    正文

    任何一个学过Flash的人首先学习的内容一般都是按钮的制作,在Flash中按钮有四种状态,即Up(未点击), Over(鼠标悬停), Down(鼠标按下), Hit(鼠标点击)。

    如果要为某种状态添加动画,则需要用一个内嵌的MovieClip来实现,当然本文并不是讲解Flash的教程,就不多做介绍了。

    很多WPF的初学者觉得Flash似乎比微软的东西好用,因为Flash有ButtonClip,很直观很方便。其实呢,从软件开发角度讲,WPF的事件模型更科学,因为程序中所有的动画、视觉效果都是由事件触发的,在WPF中如果要实现类似Flash中的Up, Down, Over, Hit四种状态也并非难事,你其实很容易找到对应的属性和事件,下面我列出一张表,大家看了就很容易明白了:

    Flash

    WPF

    Up MouseLeftButtonUp (Event)
    Down MouseLeftButtonDown (Event)
    Over IsMouseOver (Property)
    Hit IsPressed (Property)
    是不是发觉WPF的事件和属性更有针对性,也表达得更清楚些呢?当然我们必须承认Flash有一点做得很好——它把Button所对应的最常用的四种状态放在了一个单独的编辑视图(即ButtonClip编辑器)中,这样初学者很容易上手,也许Expression Blend以后的版本可以借鉴一下。

    做任何一样东西,我们必须了解最终我们到底要做什么,所以先来看看效果图:

    你是不是有点等不及啦,那我们就开始动手吧!

    画图

    仔细分析下你会发现其实整个按钮中最关键的还是那个冒着热气的杯子,所以呢,我们先要把杯子画出来,用什么画呢?自然是用Expression Design。

    里面画了几个杯子的草稿,搞设计的朋友都知道这其实就是在做Graphics,怎么画不是这篇文章的重点,大家自己揣摩吧。要注意一点,每次画完一个杯子一定要把几个Path放在一个Group中,这样才能保证导出的时候一个Canvas中就是一个杯子的图形,导出的Xaml与下面的代码类似:
    --------------

    XAML code
    <Viewbox x:Name="Group" Width="30.8005" Height="32.0573" Canvas.Left="35.6441" Canvas.Top="40.7749"> <Canvas Width="30.8005" Height="32.0573"> <Path x:Name="Path" Width="3.01129" Height="16.1666" Canvas.Left="6.25348" Canvas.Top="2.18024" Stretch="Fill" StrokeThickness="2" StrokeLineJoin="Round" Stroke="#FF898686" Fill="#FF9E9898" Data="F1 M 7.92015,3.18024C 7.56208,5.32863 8.36821,8.0273 8.25348,10.0135C 8.08681,12.899 7.25348,14.8798 7.25348,17.3469"/> <Path x:Name="Path_0" Width="3.01129" Height="16.1666" Canvas.Left="10.7747" Canvas.Top="2.27339" Stretch="Fill" StrokeThickness="2" StrokeLineJoin="Round" Stroke="#FF898686" Fill="#FF9E9898" Data="F1 M 12.4414,3.27339C 12.0833,5.42178 12.8895,8.12045 12.7747,10.1067C 12.6081,12.9921 11.7747,14.973 11.7747,17.44"/> <Path x:Name="Path_1" Width="3.01129" Height="16.1667" Canvas.Left="14.8581" Canvas.Top="2.14838" Stretch="Fill" StrokeThickness="2" StrokeLineJoin="Round" Stroke="#FF898686" Fill="#FF9E9898" Data="F1 M 16.5247,3.14838C 16.1667,5.29678 16.9728,7.99545 16.8581,9.9817C 16.6914,12.8671 15.8581,14.848 15.8581,17.315"/> <Path x:Name="Path_2" Width="10.6739" Height="7.81753" Canvas.Left="19.7414" Canvas.Top="19.929" Stretch="Fill" StrokeThickness="2" StrokeLineJoin="Round" Stroke="#FF898686" Fill="#FFFFFFFF" Data="F1 M 22.9393,21.1666C 25.1893,21.1529 29.1164,20.8922 29.3039,20.9334C 29.8005,21.0424 28.6164,23.7316 26.1476,25.1718C 23.7262,26.5844 23.3768,26.8041 20.7414,26.7355"/> <Path x:Name="Path_3" Width="24.1439" Height="12.9312" Canvas.Left="0.12096" Canvas.Top="18.8018" Stretch="Fill" StrokeThickness="2" StrokeLineJoin="Round" Stroke="#FF898686" Fill="#FFFFFFFF" Data="F1 M 1.12678,20.5627C 1.48111,19.7491 22.9913,19.4325 23.2518,20.4012C 23.4669,21.2014 21.0644,30.4402 12.6734,30.7251C 2.88443,31.0573 1,20.8539 1.12678,20.5627 Z "/> </Canvas> </Viewbox>


    --------------
    如上所示,上面5个杯子会被导出成5个Viewbox,里面各有一个Canvas,不过你在Expression Blend中使用时会发现,其实我们只需要Canvas就行了,Viewbox是不用的。

    导出Xaml

    好了东西画完了,下面我们讲怎么把这些图形导出成Xaml,并放入Expression Blend中。

    在File菜单中你会看到Export菜单项,点击它,你会看到下面的对话框:

    这里请注意,Format一定要选Xaml WPF Canvas,这样才能够保证导出的Xaml Canvas能够与WPF程序兼容,其他选项都无所谓。

    创建WPF应用程序

    接下来我们开始使用Expression Blend创建一个简单的应用程序,当然这个程序的主要目的就是帮助我们查看这个按钮的最终效果。

    点Expression Blend的File->New Project菜单,弹出下面的对话框:

    只要选择WPF Application就可以了,其他所有选项都可以使用默认项。

    紧接着从左边的工具栏中拖出一个Button,放进默认的窗口(Window1.xaml)中(随便放哪都成),尺寸大小全看个人喜好,我这里就不给参考值了。

    修改控件模板

    右键点击这个按钮,点Edit Control Parts (Template) => Edit a Copy,进入控件模板编辑器,类似于Flash的MovieClip编辑器。

    这时会弹出一个对话框,询问Button样式的存放位置,建议选This document后面的Window:Window,当然如果你要做应用程序,把样式放到Application中也不失为一个不错的选择,这样便于全局管理样式。

    接下来我们要做的步骤很关键,大家别开小差哦!

    首先我们把Button的控件模板中的Chrome控件替换为Grid,最简单的办法就是把Grid从工具箱中拖进编辑区域。然后在Grid中加入一个ContentPresenter和Rectangle。

    [思考题] 为什么要多加一个Rectangle?(提示,可以对比一下Flash中ButtonClip的制作,原理是一样的)

    接下来我们就要用上刚才导出的Xaml了,切换到XAML视图,把第一个Canvas的代码拷贝到当前的Grid下面,回到设计视图,你应该会看到Grid现在有3个1级子节点,分别是rectangle、[ContentPresenter]和canvas,如下所示:

    其中我们把rectange的Fill设置为渐变色,代码如下:

    XAML code
    <Rectangle Stroke="#FF000000" HorizontalAlignment="Stretch" Margin="0,0,0,0" x:Name="rectangle"> <Rectangle.Fill> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FFF8F8F8" Offset="0"/> <GradientStop Color="#FFD9D9D9" Offset="0.853"/> <GradientStop Color="#FF5F5E5E" Offset="1"/> </LinearGradientBrush> </Rectangle.Fill> </Rectangle>


    当然你可以不用在XAML代码中设置,直接在调色器中设置就行了。

    如图中的红色框所示,依次点击Properties选项卡=>Fill=>渐变按钮,然后在渐变色编辑器中配置该渐变色。

    好了,第一步完成了,此时我们已经能够看到按钮的最终效果了,是不是就结束了?当然没有,我们还要加动画,当鼠标悬停在按钮上时让咖啡冒气,这样这个咖啡按钮才会更逼真。 

    制作动画效果

    按F6切换到动画模式。

    在Triggers框中点 +Property (添加属性触发器),然后把默认的 IsCancel改成IsMouseOver,把=后面的值改成True(如果改不了,可以到XAML视图中修改),如下所示:

    你会注意到IsMouseOver左侧有一个红色的按钮,这表示正在录制动作。接下来在Objects and Timeline框中点+按钮,新建一个Storyboard,然后就可以开始录制动画了。Flash中做动画默认是有帧的,所有的动画都是基于Timeline中的帧去实现的,要改变动画状态则可以用关键帧,微软也借鉴了这方面的经验,WPF中也有关键帧的概念。要添加关键帧,可以点时间左边的 按钮,所有关键帧添加完毕后的效果如下所示:


    在添加这些关键帧的时候要注意一点,由于我们的动画不需要连续的改变,是独立的,所以我们必须告诉WPF我们的用意,而对每个关键帧设置Hold In就可以解决这个问题,只需要右击某个关键帧就可以看到该选项。至于烟怎么摆动全凭个人喜好,不过我总觉得我自己做的烟似乎机械化了点,呵呵,毕竟不是搞美工出生的。



    大家都知道,在Flash中所有的关键帧默认是不会做连续值渐变的,除非你使用补间动画(Motion Tween), 右图便是一个使用Flash补间动画的例子。
    让按钮动起来

    做完了Storyboard之后,有些人肯定很兴奋,迫不及待地把程序跑了起来,结果却很失望,鼠标移动到按钮上一点动静都没有,其实原因很简单——Storyboard没有与相应的触发器建立联系。回到刚才的Triggers框,点IsMouseOver=true,在出现的actions when activating和actions when deactivating中分别添加Storyboard Begin和Storyboard Stop动作。

    好了,现在你可以运行程序了,鼠标放上去便能看到烟的效果。

    下载完整程序代码请点这里:CoffeButtonSample.zip

    [课后作业]:举一反三,制作一个挖金矿游戏中的Play按钮。

    要求:

    1. 按钮要有质感,绘制时要加入一定的反光面

    2. 鼠标没有移上去的时候,会每隔一定时间发出一道金光,这道光从左向右移动,如中间一张图所示

    3. 鼠标移上去时转为最亮。

    有任何问题或者写得不清楚的地方,欢迎大家指正。同时也感谢你阅读这篇文章。

    展开全文
  • App制作者希望有一些按钮,引导用户去操作,那么带动画会起到一定的引流作用吧! 本主编就在此分享一款。效果如下,如果是你需要的,请继续往下看代码。不是需要的朋友就不用看了。 WXML <view class=...

    App制作者希望有一些按钮,引导用户去操作,那么带动画会起到一定的引流作用吧!

    本主编就在此分享一款。效果如下,如果是你需要的,请继续往下看代码。不是需要的朋友就不用看了。

     

    WXML

    <view class="bottomViewItem">

    <button class="bottomMiddleHeaderView" open-type="share">

    <view class="bottomMiddleHeaderItem" animation="{{animationMiddleHeaderItem}}">

    <!-- 心跳 -->

    <view class="bottomMiddleHeaderItemSubView">

    <image src="/image/wx.jpg" style="width:50rpx; height:50rpx;" animation="{{animationMiddleHeaderItem}}"></image>

    </view>

    <!-- 分享文字 -->

    <view class="bottomMiddleHeaderItemSubView">分享好友</view>

    </view>

    </button>

    </view>

     

    css.

    .bottomMiddleHeaderView{

    font-size:24rpx;

    position: fixed;

    top: 300rpx;

    right: 0px;

    }

    button::after {

    border: none;

    }

     

    JS代码

     

    onReady: function () {

    var circleCount = 0;

    // 心跳的外框动画

    this.animationMiddleHeaderItem = wx.createAnimation({

    duration: 1000, // 以毫秒为单位

    /**

    * http://cubic-bezier.com/#0,0,.58,1

    * linear 动画一直较为均匀

    * ease 从匀速到加速在到匀速

    * ease-in 缓慢到匀速

    * ease-in-out 从缓慢到匀速再到缓慢

    *

    * http://www.tuicool.com/articles/neqMVr

    * step-start 动画一开始就跳到 100% 直到动画持续时间结束 一闪而过

    * step-end 保持 0% 的样式直到动画持续时间结束 一闪而过

    */

    timingFunction: 'linear',

    delay: 100,

    transformOrigin: '50% 50%',

    success: function (res) {

    }

    });

     

    setInterval(function () {

    if (circleCount % 2 == 0) {

    this.animationMiddleHeaderItem.scale(1.15).step();

    } else {

    this.animationMiddleHeaderItem.scale(1.0).step();

    }

     

    this.setData({

    animationMiddleHeaderItem: this.animationMiddleHeaderItem.export()

    });

     

    circleCount++;

    if (circleCount == 1000) {

    circleCount = 0;

    }

    }.bind(this), 1000);

     

    },

     

    拿走不谢。可以添加我的小程序查看效果(扫描下方二维码),如果小程序中哪些技术点大家感兴趣,可以直接私信我。

    微信号:cleversoft

    展开全文
  • 安卓 浮动按钮弹出菜单栏In this tutorial, We ... 在本教程中,我们将学习如何创建动画的浮动菜单UI。 实施逻辑 (Implementation Logic) Create a Floating Button. 创建一个浮动按钮。 Create menu above Float...

    安卓 浮动按钮弹出菜单栏

    In this tutorial, We will learn how to create animated floating Menu UI.

    在本教程中,我们将学习如何创建动画的浮动菜单UI。

    实施逻辑 (Implementation Logic)

    1. Create a Floating Button.

      创建一个浮动按钮。
    2. Create menu above Floating Button in a vertical stack

      在垂直堆栈中的浮动按钮上方创建菜单
    3. Move this vertical stack to Bottom right

      将此垂直堆栈移动到右下角
    4. Hide show button with animation

      隐藏带有动画的显示按钮

    创建一个浮动按钮 (Creating a Floating Button)

    Button(action: {}, label: {
    Image(systemName: "plus")
    .foregroundColor(.white)
    .font(.headline)
    .frame(width: 60, height: 60)
    })
    .background(Color.blue)
    .clipShape(Circle())
    .padding(.all, 10)

    在垂直堆栈中的“浮动按钮”上方创建菜单,并将此垂直堆栈移到右下角 (Create menu above Floating Button in a vertical stack and Move this vertical stack to Bottom right)

    HStack {  
    Spacer() //Move all item to right
    VStack {
    Spacer() //Move all item to bottom
    ForEach(/*for all item in menu*/) {
    ///Set All floating Button
    }
    //Main Floating Button }
    }

    隐藏带有动画的显示按钮 (Hide show button with animation)

    Add a State to show and hide button. Add show/hide logic in animation block.

    添加一个状态来显示和隐藏按钮。 在动画块中添加显示/隐藏逻辑。

    Done!

    做完了!

    最终演示: (Final Demo:)

    Image for post

    翻译自: https://medium.com/@prafullkumar77/swiftui-how-to-make-floating-button-with-animated-menu-6438d3304074

    安卓 浮动按钮弹出菜单栏

    展开全文
  • 如何制作基于AimOffset的动画

    千次阅读 2017-10-11 10:35:14
    1、打开对应动画的编辑器,在【动画】界面中的【创建资源】按钮可以选择AimOffset来创建瞄准偏移动画 2、准备至少9个用于瞄准方向的动画,并且进行如下设置 如图,一定需要注意的是红框部分,...

    以下流程说明了制作基于AimOffset的方法:

    1、打开对应动画的编辑器,在【动画】界面中的【创建资源】按钮可以选择AimOffset来创建瞄准偏移动画



    2、准备至少9个用于瞄准方向的动画,并且进行如下设置


    如图,一定需要注意的是红框部分,Addtive anim type一定要设置为Mesh space,并且Base pose type一定要选择Selected animation frame,同时在预览选项中选择一个Idle动作,所有基本方向动画都进行此类设置。


    3、在经过第二步设置后,就可以在第一步所创建的AimOffset动画中使用


    预览动作也选择Idle动画,红框部分设置好坐标轴参数并应用后,可以将之前设置的方向动画拖到对应的坐标系并预览结果


    4、AimOffset动画在蓝图上的使用


    直接将第三步制作好的动画拖到动画蓝图中,会形成红框中的节点,并且将事先定义的两个变量作为输入参数拖给节点


    5、在动画事件图表中,给变量赋值


    展开全文
  • 在FLASH游戏制作中,特别是解密类游戏中,会用到长按解锁的功能,在这里讲解如何时简单的制作这样的一个按钮。 主要知识点:鼠标点击事件 工具:FLASH CS3及以上版本软件 制作步骤: 1.这里用的是FLASH CS6,打开...
  • 请教如何制作图片轮播加按钮,点击按钮可渐变切换图片。做出来的效果需与以下链接一致: http://www.weidmueller.com.cn/docs/cw_start_v2.aspx?id=63483&domid=1031&sp=V&m1=63476&m2=63483 本人没有动画制作基础...
  • 在Focusky(也称为“FS软件”)工程中,可以运用动画格式刷快速复制物体的动画效果,使其他不同物体也实现同样的动画演示效果。 具体操作步骤如下: 1.点击“动画按钮进入动画编辑界面; 2.选中工程中的一个...
  • 不管是电视剧,电影,还是动画等视频类型中,有很多的画面非常的有趣,可以将这些能够制作gif动图,作为表情包,在与好友聊天互动的时候进行使用,更好的表达自己的情绪,营造良好的氛围。那么,大家知道怎样才能够...
  • 现在,让我们制作一些动画的工具提示,除了HTML和CSS之外,什么都没有。 演示版 这是我们正在努力的方向: 在我们沉浸在大锅中之前,让我们看一下我们实际上正在酿造什么。 主要目标是拥有一种添加工具提示的...
  • 如何制作使用Ajax 1.0一个按钮提交后台的UpdatePanel动画呢?这里我制使用了Ajax 1.0制作了当一个LinkButton点击提交后UpdatePanel闪出一个边框的动画.步骤如下:1)拖放一个LinkButton控件和一个TextBox控件到页面 2)...
  • 含代码和演示视频,利用按钮组实现三个特效按钮。涉及绝对定位和相对定位,选择器的使用,基本动画。上手简单,比较容易看懂,涉及的主要是利用CSS来实现如何制作特效按钮,比较简洁,仅供参考。
  • Principle for Mac是一款新开发的交互设计软件。相比 Pixate 更容易上手,界面类似 Sketch 等做图软件,思路有点像用 Keynote ...此次小编来带大家看看,Principle是如何做“卡片滑动”和“按钮点击”变化的效果,M...
  • 如何巧用HTML5设计按钮背景不同动画特效,在该特效中,当鼠标滑过按钮时,使用CSS3 animation 来动画 background-size 和 background-position 属性,来实现各种背景动画效果。 下面来看一下整体的效果图: ...
  • (Focusky动画演示大师简称为“FS软件”)有的时候,为了让内容美观、整洁,我们需要隐藏帧内的某些物体,如音乐图标。演示时如何让帧内的物体不显示?这里跟大家介绍两种方法:1. 设置透明度; 2. 设置隐藏。 方法...
  • (Focusky动画演示大师简称为“FS软件”) 1. 首先在官网上登录个人账号 2. 进入个人主页,点击“我的Focusky”按钮,在所有已上传到云的作品列表中选中需要删除的对象,然后点击”删除“按钮,便可成功删除。 ...
  • 制作gif动画 使用AndoridStudio,连接上设备,然后在底部点开Android Monitor,左上角有个Screen Record按钮,点击点击开始录制,录制完成点击Stop Recording,选择视屏保存的位置。   Step3. 将mp4音频文件转成...
  • 今天,让我们来看看:如何使用CSS3和JavaScript轻松地实现一个简单的径向动画菜单。 看看下面的演示,点击按钮,弹出径向菜单。 See the Pen Animated radial / ci...
  • 在时间轴编辑完所有元素的动作动画后,可以在任意时间点插入并添加新动作,使动画视频内容细节更完美、丰富,有效增强视觉效果。具体操作步骤如下: 1. 在时间轴中,把播放头移动至两个动作动画之间->鼠标单击...
  • 如何制作微课.doc

    2019-06-20 11:04:51
    如何制作微课  (2013-10-29 21:16:24) 转载▼ 如何制作微课 基于录屏软件Camtasia Studio,软件使用视频教程 http://www.youku.com/playlist_show/id_5311052.html 或 ...
  • 1.在时间轴中,把播放头移动至两个元素动画之间->鼠标单击右键->在新窗口中依次点击“添加对象”、“图片”按钮; 2.在弹窗中选择一个图片文件(支持添加文件的格式为:*.gif, *.png, *.jpg, *.jpe...
  • 很基础的教程,适用于unity小白。实现效果如下: 操作步骤如下: 1、在场景中创建动画模型,放到一个空物体下面,如图所...4、此时,我们运行Unity,会自动播放动画,下面讲一下如何控制动画播放。双击系统生成的GameOb
  • 很多人并不知道如何制作,其实GIF就是把平时的图片或者视频做成动图,很简单的制作方法,今天和大家一起动手看看gif动画播放与制作吧!1.首先运行迅捷gif制作工具,不仅仅可以将图片或视频转为GIF,还可以直接在线...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 348
精华内容 139
关键字:

如何制作按钮动画