问题标签 [caemitterlayer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - 如何执行卡片烧录动画
我想执行一个卡片燃烧动画,就像我有一张黑桃卡片一样,我希望它像燃烧动画一样查看,就像从卡片底部燃烧到卡片顶部并在燃烧的同时消失。我知道我可以使用CAEmitterLayer
或粒子效果,但我不完全知道如何使用这些。谁能告诉我我该怎么做?
swift - 创建垂直 CAEmitterLayer
我正在创建一个 CAEmitterLayer,它是屏幕的高度,并推开 -X,因此 CAEmitterCells 从左侧(屏幕外)移动到右上角。
我遇到了一个问题,CAEmitterLayer 的emitterSize height属性被忽略了。这会导致所有单元格从一个点发射,而不是发射器大小的设置。
这是发射器:
我提到了emitterSize高度不起作用,因为如果我改变上面emitterSize的宽度,我可以看到宽度正确改变!无论我为身高赋予什么价值......它都会被忽略。
和 CAEmitterCells
如何将emitterSize 宽度设置为2 磅宽和视图的高度?
ios - 只运行一次 CAEmitterLayer
我只想运行 CAEmitterLayer 一次,我想停止birthRate 但我做不到。我想要的是它在点击屏幕时只运行一次。我一直在与代表一起尝试,但我无法让它发挥作用。你能告诉我我的代码是否有效吗?
swift - 在 Swift 中结束 CAEmitterLayer 的正确方法是什么?
我经常在 Swift 中看到连续发射器的示例,我在 Obj-C 中通过将发射器单元的birthRates 设置为 0.0 找到了一个示例,但它似乎不起作用,所以我一定做错了什么. 在我的示例中,我可以看到 16 次将出生率设置为 0 的消息,但粒子继续无休止地流动。
swift - CAEmitter 将粒子垂直放置在随机位置
我的emitterShape 设置为一条线,它将单元格水平放置在随机位置,但由于某种原因,它还将单元格垂直放置在我的屏幕上随机位置。为什么?
我只希望粒子的起始位置在屏幕顶部的 x 轴上。
我的放置和单元格生成如下:
ios - 是否可以暂停 CAEmitterLayer?
我有一个CAEmitterLayer
实例会发出一些CAEmitterCells
. 我想知道,是否可以暂停这一层,这样就不会产生新CAEmitterCells
的层,而已经产生的层仍然固定在屏幕上的位置?然后,当CAEmitterLayer
实例“未暂停”时,CAEmitterCells
屏幕上的固定点再次开始移动。
感谢您在这里的任何帮助。
编辑
环境:
whereemitterLayer
是 的子类的实例CAEmitterLayer
,只是从视图中完全删除该层。
环境:
只是停止emitterCells
生产任何新产品,但不会“冻结”emitterCells
当前位置的现有产品。
ios - 多次暂停和恢复 CAEmitterLayer
我有一个CAEmitterLayer
实例,我想暂停然后多次恢复。
CAEmitterLayer
我已经找到了使用两个扩展函数来做到这一点的各种方法:
和
第一次使用emitterLayer.pause()
,emitterLayer.resume()
完美运行。
但是,从第二次开始,每当我使用emitterLayer.pause()
时,emitterCells
跳跃的时间都会稍微向前一点。
有人可以帮我解决这个跳跃问题吗?
ios - CAEmitterCell 在一段时间后自动停止发射
CAEmitterCell
发射 2 到 3 分钟后自动停止发射。所以我的问题是我怎样才能设置CAEmitterCell
它会发出无限的光。有没有办法连续发射CAEmitterCell
或 是否有任何属性可CAEmitterLayer
用于无限发射一个单元格?
下面是我在项目中设置的代码。
ios - CAEmitterLayer 没有用 CACurrentMediaTime() 正确计时,有时根本不显示
我目前正在使用 CAEmitterLayer 制作一个粒子发射器,并且在我启动它时遇到了层预加载动画的问题,因此当我显示它时粒子遍布整个地方。
许多答案都说罪魁祸首是 CAEmitterLayer 被预加载,我们只需在发射器上将其 beginTime 设置为 CACurrentMediaTime() 。
看:
CAEmitterLayer 在触摸事件中随机发射不需要的粒子
CAEmitterLayer 的初始粒子不在emitterPosition 开始
对我来说,这个解决方案不起作用,在运行 iOS 12.1 的 iPad Air 设备上运行时,发射器经常不显示,有时显示延迟很大。
为了说明这个问题,我在 github 上做了一个项目: https ://github.com/roodoodey/CAEmitterLayer/tree/master/CAEmitterLayerApp
这是主要代码,我有 7 个随机选择的粒子图像和一个在按下时显示发射器的按钮。
这是在设备上运行的应用程序的 20 秒短视频,iPad Air 运行 iOS 12.1,而不是通过 xcode 运行。https://www.dropbox.com/s/f9uol3yot67drm8/ScreenRecording_11-25-2018%2013-19-29.MP4?dl=0
如果有人可以查看他们是否可以重现此问题或对这种奇怪的行为有所了解,将不胜感激。
ios - iOS(Swift)在初始化后更改 CAEmitterCell 的属性
我的目标是使用 a 创建一个火焰效果CAEmitterLayer
,其强度可以通过更改alphaSpeed
其给定属性的值来改变CAEmitterCells
。较小的值alphaSpeed
会导致“咆哮”的火灾,而较大的值会抑制火灾。
到目前为止,我有一个CAEmitterLayer
调用的子类,FireEmitterLayer
其初始化程序由以下给出:
UIImage
为代表 30x30 火焰图像的 s数组生成发射器单元:
每个单元格都是使用此方法创建的:
有没有办法alphaSpeed
从这个子类的一个实例中改变这些单元格的值,比如说,fireEmitterLayer
在 some UIViewController
:
我试过在FireEmitterLayer
类中添加这个方法
但这不起作用...
任何帮助表示赞赏:-)