找回密码
 点一下
查看: 2184|回复: 15

如何在图片控件中播放一个动画呢?

[复制链接]
发表于 2016-5-20 20:45:11 | 显示全部楼层 |阅读模式
本帖最后由 yxxiaobin 于 2016-8-26 20:50 编辑

用Cooldown作为关键字搜索美术资源,找到了冷却图片,发现是一组小图片组合成的,每张小图片即是一帧,结合虫心剧情中附带的头像冷却,理解如下:
        <Frame type="Image" name="CooldownImage">
            <Anchor side="Top" relative="$parent/IconImage" pos="Min" offset="-5"/>
            <Anchor side="Bottom" relative="$parent/IconImage" pos="Max" offset="5"/>
            <Anchor side="Left" relative="$parent/IconImage" pos="Min" offset="-5"/>
            <Anchor side="Right" relative="$parent/IconImage" pos="Max" offset="5"/>
            <Texture val="@UI/HotS_CooldownFrame"/>      指定纹理图片
            <TextureCoords top="0.000000" left="0.000000" bottom="0.125000" right="0.062500"/>  纹理坐标,具体不知干什么用的。
            <Animating val="true"/>    动画,应该是指该图片是一个动画类型的图片。
            <ManagedAnim val="false"/> 托管动画。如果设置为true,则在图片被创建时即开始自动播放,你无法用触发器控制它的播放进度,但是使用设置动画索引可以强行设置索引,同时停止自动播放。
            <AnimColumns val="16"/> 动画列数,指一行中有多少帧。
            <AnimCount val="128"/> 动画计数,一共有多少帧
            <AnimDuration val="10000"/> 动画持续时间,用多长时间播放完这些动画帧,这是用于指定冷却时间的。
        </Frame>

然而依照这个格式自定义了一个Image,并以这个Image为模板创建了一个图片,并设置动画持续时间为10,然后显示它。然而它并不播放动画,甚至说,不是任何帧,只是黑乎乎一片。
到底如何播放动画呢,是我姿势不对,还是说非暴雪是无法播放动画的?谁指导一下?

发表于 2016-5-21 13:00:10 | 显示全部楼层
前排膜拜

点评

求助帖,膜拜啥。可以前排等开课,就是不知道又没老师来。  发表于 2016-5-21 17:43
回复

使用道具 举报

发表于 2016-5-21 19:11:41 | 显示全部楼层
我自己的理解,这些UI项的模板不是在任何情况下都可用的
它需要对应的父级模板,比如是个按钮或特定类型的Frame(Type属性)
同时如果希望启动它,那么需要对应的变化,比如按钮被点击这种,
它需要获取来自父级的消息,然后才能响应如cd这种动画

以上是我自己的猜测

其他触发动画这类控件效果的是
        <Animation name="BackgroundColor">
这类的东西,不过响应的事件有限,另外事件与控件类型是需要对应的

还有风暴的UI有部分功能在SC2中不可用(不报错,也没效果)


点评

我觉得你说的很有道理,比如以游戏按钮为模板创建的按钮就不能正常显示图标和边框。不过就CD动画来讲,似乎是可以被用于别处的。比如虫心的英雄头像面板,英雄死亡后就播放冷却动画。我看了下,触发器就两条:1.设置  详情 回复 发表于 2016-5-21 22:21
回复

使用道具 举报

发表于 2016-5-21 21:24:07 | 显示全部楼层
楼上大神
回复

使用道具 举报

 楼主| 发表于 2016-5-21 22:21:04 | 显示全部楼层
疯人¢衰人 发表于 2016-5-21 19:11
我自己的理解,这些UI项的模板不是在任何情况下都可用的
它需要对应的父级模板,比如是个按钮或特定类型的 ...

我觉得你说的很有道理,比如以游戏按钮为模板创建的按钮就不能正常显示图标和边框。不过就CD动画来讲,似乎是可以被用于别处的。比如虫心的英雄头像面板,英雄死亡后就播放冷却动画。我看了下,触发器就两条:1.设置动画播放时间;2.显示控件。我一直认为,虫心的英雄头像面板应该就属于自定义UI的标准演示了,玩家也可以自己设计此类的东西出来。然而始终没有搞定冷却动画,没法子了只好来求助。
回复

使用道具 举报

发表于 2016-5-22 04:51:45 | 显示全部楼层
触发器里不是有一个动作吗?播放对话框控件动画

点评

找不到啊,直接找找不到,切换到原始代码模式,还找不到。求头目截图我看看是哪条动作啊。 目前用了一个绕弯的方案实现动画,就是用循环依次设置指定id的帧,模拟出动画效果来。但是如果有“设置对话框项动画播放时  详情 回复 发表于 2016-5-22 11:51
回复

使用道具 举报

 楼主| 发表于 2016-5-22 11:51:26 | 显示全部楼层
麦德三世 发表于 2016-5-22 04:51
触发器里不是有一个动作吗?播放对话框控件动画


找不到啊,直接找找不到,切换到原始代码模式,还找不到。求头目截图我看看是哪条动作啊。
目前用了一个绕弯的方案实现动画,就是用循环依次设置指定id的帧,模拟出动画效果来。但是如果有“设置对话框项动画持续时间”这动作的话,应该有自动播放动画这功能的。
回复

使用道具 举报

发表于 2016-5-22 16:54:24 | 显示全部楼层
yxxiaobin 发表于 2016-5-22 11:51
找不到啊,直接找找不到,切换到原始代码模式,还找不到。求头目截图我看看是哪条动作啊。
目前用了一 ...

对话框控件发送动画事件和对话框控件发送动画事件2
动画看来就是我说的那个了

点评

无法写入UI,会报错。 动画事件动作需要指定一个字符串来指定事件名称,这个字符串要如何写?  详情 回复 发表于 2016-5-24 11:26
回复

使用道具 举报

 楼主| 发表于 2016-5-24 11:26:30 | 显示全部楼层
疯人¢衰人 发表于 2016-5-22 16:54
对话框控件发送动画事件和对话框控件发送动画事件2
动画看来就是我说的那个了

<Animation name="BackgroundColor">无法写入UI,会报错。
动画事件动作需要指定一个字符串来指定事件名称,这个字符串要如何写?
回复

使用道具 举报

 楼主| 发表于 2016-5-24 11:57:38 | 显示全部楼层
发上我的测试图,求指导。

1.SC2Map (21.89 KB, 下载次数: 10)
回复

使用道具 举报

发表于 2016-5-24 19:29:06 | 显示全部楼层
yxxiaobin 发表于 2016-5-24 11:57
发上我的测试图,求指导。

我不太清楚你有什么问题,对于这个测试图

点评

我使用的是循环指定每一帧。我想应该有自动播放的方法。你提到有动画事件,我想请问如何使用这些事件呢。就是要达到目前的这种效果(但是不依赖循环)  详情 回复 发表于 2016-5-25 12:26
回复

使用道具 举报

 楼主| 发表于 2016-5-25 12:26:47 | 显示全部楼层
疯人¢衰人 发表于 2016-5-24 19:29
我不太清楚你有什么问题,对于这个测试图

我使用的是循环指定每一帧。我想应该有自动播放的方法。你提到有动画事件,我想请问如何使用这些事件呢。就是要达到目前的这种效果(但是不依赖循环)
回复

使用道具 举报

发表于 2016-5-26 13:14:26 | 显示全部楼层
yxxiaobin 发表于 2016-5-25 12:26
我使用的是循环指定每一帧。我想应该有自动播放的方法。你提到有动画事件,我想请问如何使用这些事件呢。 ...

<Animation name="BackgroundColor">
这种东西能不能在Image中使用,我不太清楚
UI中每个控件能使用什么样的子控件(指可以自动播放动画或者根据血量变化这种功能的)
能使用那些特别属性(比如对某些联盟关系的玩家控制可见性,这种效果可能也要依赖于对应的全部父级控件)
并没有一个完整的列表,只能把所有的SC2 UI和HOS UI解压出来搜索一遍
如果里面有这么用,那就是了。
虽然有打算写个UI的工具,但是暂时没时间弄它

点评

暂时用循环倒是能做出动画,不过猜想既然有设置动画持续时间,就应该有播放动画。先这样用吧,或许哪天就能找到了。  发表于 2016-5-26 19:02
回复

使用道具 举报

发表于 2016-6-4 17:27:19 | 显示全部楼层
楼上都好厉害
回复 0 1

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-23 11:42 , Processed in 0.284440 second(s), 36 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表