对我来说,这是一个复杂的场景。
我有一个健全的管理单例,其中有一个像字典这样的 Assets ,存储对我的 url 和 Assets 的所有引用以及其中的胡言乱语-
我有一个名为 addItem(id:String, url:String):Object
的函数
我想做一些类似于 soundManager.addItem(id:String, url:String).play()
的事情或 soundManager.addItem(id:String, url:String).stop()
其中它会将我的项目添加到我的字典中,并开始播放声音
目前我做soundManager.addItem(id:String, url:String)
然后 soundManager.play('myID')
.
我的声音 Assets 是一个对象,其中包含一些位,例如 Sound、SoundChannel、SoundTransform、URL 和其他一些无法描述的部分。
我知道这将是原型(prototype)设计——当我需要对我的自定义函数和对象进行原型(prototype)设计时,我就会陷入困境。
提前致谢
结论:
好吧,我确实按照我接受的答案中提到的那样进行了自动播放。
我还做了一些很酷的东西,我喜欢它的样子。
我创建了一个 SoundManager 类,它处理和使用一个 SoundObject,其中包含 SoundTransform、SoundChannel 和 Sound 对象所需的任何其他内容。
这样,当我向 SoundManager 添加项目时,它总是会返回包含我需要的所有 play()、pause()、volume()、position() 的 SoundObject 类。
它真的非常有用,我已经在 4 个项目中使用过它!耶。
谢谢大家帮助。
最佳答案
如果您正在查看代码,那么:
soundManager.addItem(url:String)
正在返回一个对象(您刚刚添加),然后被赋予
play()
命令。你有几个简单的选择。1) 如果您总是播放声音,那么您只需将命令添加到
addItem()
功能。2)如果您想完全按照您的要求做,那么您需要使用 play() 函数为声音对象创建一个适当的类。可能是向 soundManager 发送事件,然后切换声音。
3) 向作为自动播放函数的 add 语句添加一个 bool 值,例如:
addItem(value:*, autoPlay:Boolean = false):Object{
if(autoplay) play()
}
关于actionscript-3 - 自定义函数的原型(prototype)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2476866/