天天看点

IOS之UIImageView--小实例项目--带音效的拳皇动画

内容大纲:

1、新建一objective-c工程之后,将需要的拳皇动画实例的图片以及音效资源都拷贝进工程。

IOS之UIImageView--小实例项目--带音效的拳皇动画

2、勾选,只勾选会产生项目的虚拟文件目录即可。

IOS之UIImageView--小实例项目--带音效的拳皇动画

3、在storyboard上添加组件,这里由于时间缘故就添加四个按钮和一个imageview。并设置好imageview的显示model

IOS之UIImageView--小实例项目--带音效的拳皇动画

4、为组件连好线,

IOS之UIImageView--小实例项目--带音效的拳皇动画

1、第一步,敲出stand序列动画的实现

IOS之UIImageView--小实例项目--带音效的拳皇动画
IOS之UIImageView--小实例项目--带音效的拳皇动画

运行结果可以实现stand的站立备战状态:

IOS之UIImageView--小实例项目--带音效的拳皇动画

因为拳皇动画的三种状态(站立,小招,大招)加载图片各自需要一系列序列动画,也就是都需要执行以下共同的代码:

IOS之UIImageView--小实例项目--带音效的拳皇动画
IOS之UIImageView--小实例项目--带音效的拳皇动画

那么我们可以将其抽取出来,模块化成一个方法:

IOS之UIImageView--小实例项目--带音效的拳皇动画
IOS之UIImageView--小实例项目--带音效的拳皇动画

完整的代码:

IOS之UIImageView--小实例项目--带音效的拳皇动画

<code>完整的代码:点击左边的+号即可查看源码</code>

特别有必要提出的有关内存管理的代码:

IOS之UIImageView--小实例项目--带音效的拳皇动画
IOS之UIImageView--小实例项目--带音效的拳皇动画

到这里,可以实现序列动画效果了。

但是我们还需要在出完招式之后,就接着能够回到站立备战状态,总和考虑这里使用延时的方法最合适。这里就直接用了重构,将重复的代码抽取出成click方法。

IOS之UIImageView--小实例项目--带音效的拳皇动画

&lt;- 重构之后的代码,点击左边的+号就可以看到源码

2、然后开始添加音效。

这里就先简单概括一下思路:

导入avfoundation-&gt;创建avplay对象(包括指定好相关路径下的音频文件) -&gt;并需要一个强引用指向它-&gt;最后记得销毁这个强引用(nil)。

在使用avplayer创建对象的时候,初始化最好用initwithplayeritem:avplayeritem* ,这样在切换音频对象比较方便。

然后根据这简短的思路快速实现代码:

IOS之UIImageView--小实例项目--带音效的拳皇动画
IOS之UIImageView--小实例项目--带音效的拳皇动画
IOS之UIImageView--小实例项目--带音效的拳皇动画

项目资源下载地址(两份压缩文件:项目资源文件,项目代码源文件):

可能遇到的错误

IOS之UIImageView--小实例项目--带音效的拳皇动画

设置音频速率在代码顺序上的注意点:

IOS之UIImageView--小实例项目--带音效的拳皇动画
上一篇: IOS的UI基础02
下一篇: IOS的UI基础01