Audio 如何在Cocos2d中播放按钮声音
如果我创建这样一个按钮:Audio 如何在Cocos2d中播放按钮声音,audio,cocos2d-iphone,uibutton,Audio,Cocos2d Iphone,Uibutton,如果我创建这样一个按钮: CCMenuItemImage *okBtn = [CCMenuItemImage itemWithNormalImage:@"gameOkBtn.png" selectedImage:@"gameOkBtnPressed.png"
CCMenuItemImage *okBtn = [CCMenuItemImage itemWithNormalImage:@"gameOkBtn.png"
selectedImage:@"gameOkBtnPressed.png"
block:^(id sender)
{
//actions
}];
我如何在新闻稿和新闻稿中播放声音?在常规iOS开发中,我可以将UIButton子类化,并为UIControl事件添加选择器
编辑:下面是子类
@implementation CCMenuItemImageSound
- (void)selected{
[super selected];
[[SoundManager sharedManager] playSound:kSoundButtonDown volume:0.5];
}
- (void)unselected{
[super unselected];
//this method gets called twice when you release the button
[[SoundManager sharedManager] playSound:kSoundButtonUp volume:0.5];
}
@end
在CCMenuItem.m add中
[[SimpleAudioEngine sharedEngine] playEffect:@"button.mp3"];
在#pragma mark CCMenuItemSprite-CCRGBAProtocol协议下选择的-(无效)和未选择的-(无效)方法的定义中。
这将播放所有CCMenuItemImage项目的声音
更好的选择:
如果您希望只对少数几个按钮产生效果,那么可以将CCMenuItemImage子类化并覆盖上述方法
您需要在代码中的某个位置预加载mp3:
[[SimpleAudioEngine sharedEngine]preloadEffect:@"button.mp3"];
您还必须将#import“simpleudioengine.h”添加到CCMenuItem或您创建的子类中。谢谢。这几乎奏效了。当我把手指从按钮上滑下时,我听到的是未选择的声音。但是当我正常点击按钮时,我会听到向下(选定)的声音,当我松开按钮时会听到双重声音。你知道为什么当你释放按钮时,未选择的声音会播放两次吗?我添加了上面的子类。事实上,“unselected”在一次正常的按钮点击中会被调用两次。为什么?我刚查过,只打过一次电话。是否添加了断点并检查了堆栈跟踪?如何使用该断点查找问题?我可以在playSound线上设置断点。它在那里停了两次。检查堆栈跟踪,查看哪些方法正在调用“unselected”方法。我不能解决你的问题,因为我不能重现它。