更新6:我已经设法完全解决了我的问题,但我仍然想要一个更好的解释,而不是我猜的是如果我不正确它不起作用的原因
我一直试图在视频上制作精灵表,但每次导出视频时,最终结果都是我开始的示例视频.
这是我的代码:
首先我的自定义CALayer来处理我自己的精灵表
class SpriteLayer: CALayer {
var frameIndex: Int
override init() {
// Using 0 as a default state
self.frameIndex = 0
super.init()
}
required init?(coder aDecoder: NSCoder) {
self.frameIndex = 0
super.init(coder: aDecoder)
}
override func display() {
let currentFrameIndex = self.frameIndex
if currentFrameIndex == 0 {
return
}
let frameSize = self.contentsRect.size
self.contentsRect = CGRect(x: 0, y: CGFloat(currentFrameIndex - 1) * frameSize.height, width: frameSize.width, height: frameSize.height)
}
override func action(forKey event: String) -> CAAction? {
if …Run Code Online (Sandbox Code Playgroud) calayer cabasicanimation avvideocomposition avassetexportsession swift