1

私はこれを持っています

    CCMenuItem *play =
    [CCMenuItemSprite itemWithNormalSprite:[CCSprite spriteWithSpriteFrameName:@"play.png"]
                            selectedSprite:[CCSprite spriteWithSpriteFrameName:@"stop.png"]];

    CCMenuItem *stop =
    [CCMenuItemSprite itemWithNormalSprite:[CCSprite spriteWithSpriteFrameName:@"stop.png"]
                            selectedSprite:[CCSprite spriteWithSpriteFrameName:@"play.png"]];


    CCMenuItemToggle *stopPlayButton = 
    [CCMenuItemToggle itemWithTarget:self 
                            selector:@selector(togglePlayStop:)
                               items:Play, botaoStop, nil];


    CCMenu *togglePlayStop = [CCMenu menuWithItems:stopPlayButton, nil];

これは再生/停止ボタンです。通常はプレイ画像を表示しています。ユーザーがボタンをタップすると、ムービーが再生され、ボタンがトグルして停止イメージが表示されるため、ユーザーはムービーの再生を停止できます。映画は終わりを迎えます。アプリがムービーの再生を停止します。ここで、ボタンの画像を切り替えて、再生画像を再度表示する必要があります。

プログラムでボタンを「タップ」するにはどうすればよいですか?

ありがとう。

4

2 に答える 2

8

CCMenuItemToggleインスタンスにはプロパティがありますselectedIndex。読むことも書くこともできます。あなたの場合、インデックス 0 のアイテムは再生ボタンになり、インデックス 1 のアイテムは停止ボタンになります。したがって、インターフェイスでトグルを宣言してから、selectedIndexプロパティを変更するだけで十分です。両方

[m_stopPlayToggle setSelectedIndex:0];

m_stopPlayToggle.selectedIndex = 0;

再生ボタンをアクティブに設定します。

于 2012-07-11T17:27:17.280 に答える
0

Cocos2d-x 3.0 から API がMenuItemToggleに変更され、使用方法は次のようになります。

//in SomeLayer init()
auto onItem = MenuItemImage::create(...);
auto offItem = MenuItemImage::create(...);
auto aToggle= MenuItemToggle::createWithCallback(CC_CALLBACK_1(SomeLayer::onAToggle, this), 
                                                                    onItem, //0th
                                                                    offItem, //1st
                                                                    NULL);
aToggle->setSelectedIndex(getSomeBoolValueForThisToggle()?0:1); //true to show 0th, false 1st
于 2014-11-20T04:18:46.323 に答える