Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Audio 如何在Cocos2d中播放按钮声音_Audio_Cocos2d Iphone_Uibutton - Fatal编程技术网

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”方法。我不能解决你的问题,因为我不能重现它。