[cococos 2 d-x 3.3]cocostudioのButtonボタンが2回のコールバック関数をトリガする問題解決


先週、ある手遊び会社に入社したばかりで、主管大神の要求に応じてページuiの編集を開始し、buttonを追加する際に問題を発見しました.最初のbuttonボタンは、1回の関数の追加をコールバックしますが、その後は1回のコールバックを2回クリックします.
問題はuiのボタンがbuttonイベントを統合し、ボタンをクリックすると統合されたイベントソリューションが実行されます.ボタンのイベントにイベントタイプを追加する選択です.
コードは次のとおりです.
   auto rootNode = CSLoader::createNode("MainScene.csb");
    rootNode->setTag(111);
    addChild(rootNode);
新しく出たcocosエンジンv 1.0 PreView集積のcocostudioは編集したuiインタフェースを直接生成することができる.csbファイルをxcodeエンジニアリング(6以上)に公開
 auto common_silver=static_cast<:button>(rootNode->getChildByTag(12)->getChildByTag(13)->getChildByName("Button_5"));
    common_silver->addTouchEventListener(this, toucheventselector(HelloWorld::touchEvent));


uiのButtonuを取得してコールバック関数を実行し、パラメータにイベントタイプ選択を追加
  void touchEvent(Ref *pSender, TouchEventType type);
void HelloWorld::touchEvent(Ref *pSender, TouchEventType type)
{
    switch (type)
    {
        case TOUCH_EVENT_BEGAN:// 
            if (silvercount>=2000)
            {
                //
                auto label=(Label*)getChildByTag(111)->getChildByTag(12)->getChildByTag(13)->getChildByTag(116);
                count+=10;
                label->setString(StringUtils::format(" %d%%",count));
                
                silvercount-=2000;
                auto label2=(Label*)getChildByTag(111)->getChildByTag(115);
                label2->setString(StringUtils::format("%d",silvercount));
                
                
            }
            else
            {
                auto msg_toast_bg=Sprite::create("res/iphone/msg_toast_bg.png");
                this->addChild(msg_toast_bg);
                msg_toast_bg->setPosition(320,400);
                auto msg_toast_label=Label::createWithSystemFont(" ", "", 30);
                msg_toast_bg->addChild(msg_toast_label);
                msg_toast_label->setPosition(320,25);
                msg_toast_bg->runAction(MoveTo::create(2, Point(320 ,600)));
                msg_toast_bg->runAction(Sequence::create(FadeIn::create(1),FadeOut::create(0.1f ),NULL));
                 msg_toast_label->runAction(Sequence::create(FadeIn::create(1),FadeOut::create(0.1f ),NULL));
              //  msg_toast_bg->runAction(Sequence::create(MoveTo::create(2, Point(320,600), CallFunc::create( HelloWorld::jump(), this) ), NULL));
                //msg_toast_bg->runAction(Sequence::create(MoveTo::create(2, Point(320,600)),CallFunc::create(this, callfunc_selector(this,(HelloWorld::jump()))),NULL));

            break;
    }
}
}

アニメーションを繰り返し再生
 mowangb->runAction(RepeatForever::create(Sequence::create(ScaleTo::create(2, 1.05), ScaleTo::create(2, 1),NULL)));

 msg_toast_bg->runAction(MoveTo::create(2, Point(320 ,600)));


レイヤーの非表示を設定
panle->setVisile(false);
panle->setVisible(true);
ループイベント0.05毎に実行
this->schedule(schedule_selector(Helloworld::hplogic),0.05);
エスケープ文字%
 label2->setString(StringUtils::format("%d",silvercount));
イベントの一時停止と有効化
if (panelGold->isVisible()){
                            Director::getInstance()->getEventDispatcher()->pauseEventListenersForTarget(this);
                        }else{
                          Director::getInstance()->getEventDispatcher()->resumeEventListenersForTarget(this);
                        }

cocostudioでのloardingbarの使用
void HelloWorld::hpLogic(float t)
{    hp++;
    CCLOG("%d",hp);
    if (hp>=100) {
        hp=0;
    }
   
    auto loadingBar_left_to_right=static_cast<:loadingbar>(getChildByTag(111)->getChildByName("LoadingBar_1"));
    loadingBar_left_to_right->setPercent(hp);
  
    
}