首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AudioKit中对象的动态命名(SpriteKit)

AudioKit中对象的动态命名(SpriteKit)
EN

Stack Overflow用户
提问于 2017-04-14 01:01:18
回答 2查看 86关注 0票数 0

我正在尝试创建一个类似于Reactable的应用程序。

用户可以将像振荡器或滤波器这样的“模块”从菜单拖到“播放区域”中,该模块将被激活。

我正在考虑初始化模块,因为它们与"play area“背景对象相交。但是,这需要我自动命名模块,即:

代码语言:javascript
复制
let osci = AKOscillator()

其中,osci将自动计数为:

代码语言:javascript
复制
let osci1 = AKOscillator()
let osci2 = AKOscillator()
...

等。

我如何才能做到这一点呢?

谢谢

编辑:我试图通过创建一个数组来使用一个数组

代码语言:javascript
复制
var osciArray = [AKOscillator]()

在我添加振荡器的函数中,这是我的代码:

代码语言:javascript
复制
    let oscis = AKOscillator()
    osciArray.append(oscis)
    osciArray[oscCounter].frequency = freqValue
    osciArray[oscCounter].amplitude = 0.5
    osciArray[oscCounter].start()
    selectedNode.userData = ["counter": oscCounter]
    oscCounter += 1
    currentOutput = osciArray[oscCounter]
    AudioKit.output = currentOutput
    AudioKit.start()

我的应用程序构建得很好,但是一旦应用程序开始在模拟器上运行,我就会得到错误:致命错误:索引超出范围

EN

回答 2

Stack Overflow用户

发布于 2017-04-14 02:31:13

我还没有用过AudioKit,但我在一段时间前读到过它,我对它很感兴趣。根据我在文档中的理解,它的结构非常类似于SpriteKit:节点连接在一起。

我猜这个库中的大多数类都派生自一个基类,就像SpriteKit中的所有类都派生自SKNode类一样。

既然您通过SpriteKit节点将音频工具包节点与可视表示相链接,为什么不简单地从SKSpriteNode中将子类添加到AudioKit的基类中,并添加一个可选的audioNode属性呢?

这样,您就可以使用SpriteKit直接与存储的音频节点属性进行交互。

票数 0
EN

Stack Overflow用户

发布于 2017-10-14 07:45:05

我认为你的问题中有很多与AudioKit相关的代码,但要回答这个问题,你只需看看oscCounter。您没有显示它的初始值,但我猜它是零。然后将其递增1,并尝试访问只有一个元素的osciArrayoscCounter,因此osciArray应该可以访问它。把柜台移低一点,你会过得更好。此外,您的振荡器看起来像局部变量,因此一旦丢失作用域,它们就会丢失。它们应该在你的类中声明为实例变量,或者这是其中的一部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43397925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档