Lab

Cocos2d-x v3:イベントリスナーの優先順位の設定2

 Tag :  Published : 2014-8-25

Pocket

addEventListenerWithFixedPriorityを使用します。
イベントリスナーの優先順位を設定します。

イベントリスナーの優先順位を数値で設定する

イベントリスナーを2つ作成して実験してみます。

    //1つめのイベントリスナーを作成
    auto listener1 = EventListenerTouchOneByOne::create();

    listener1->onTouchBegan = [](Touch* touch, Event* event){
        log("listener1");
        return true;
    };

    //2つめのイベントリスナーを作成
    auto listener2 = EventListenerTouchOneByOne::create();

    listener2->onTouchBegan = [](Touch* touch, Event* event){
        log("listener2");
        return true;
    };
    

2つのイベントリスナーを登録します。優先順位を引数で設定しています。

    //2つのイベントリスナーを登録
    this->getEventDispatcher()->addEventListenerWithFixedPriority(listener1, 1);
    this->getEventDispatcher()->addEventListenerWithFixedPriority(listener2, 2);
    

これを実行してみると、ログはこんな感じです。

    //画面をタップ時のログ
    cocos2d: listener1
    cocos2d: listener2
    

次に引数を逆にしてみます。

    //2つのイベントリスナーを登録
    this->getEventDispatcher()->addEventListenerWithFixedPriority(listener1, 2);
    this->getEventDispatcher()->addEventListenerWithFixedPriority(listener2, 1);
    

今度は、ログはこんな感じになります。

    //画面をタップ時のログ
    cocos2d: listener2
    cocos2d: listener1
    

pageTop