0

cocos2d-html5 バージョン 2.2 から cocos2d-js 3.0 に移行していますが、このコードに問題があります (バージョン 2.2 で完全に動作します)。

        menuButtons = cc.Menu.create();
        for (var a = 1; a < 6; a++){

            var label = cc.LabelTTF.create("BUTTON " + a, "Arial", 20);
            var tmpBtn = cc.MenuItemLabel.create(label, function (e) {
                cc.log("TEST TAG: " + e.tag);
                //StartSomethingOther(e);
            }, this);

            tmpBtn.setPosition(50, a * 30);
            tmpBtn.tag = a;

            menuButtons.addChild(tmpBtn,2,1);

        }
        menuButtons.setPosition(10, 10);
        this.addChild(menuButtons, 1);

いずれかの「ボタン」を押すと、コンソールは常に正しい番号を入力する代わりに「TEST TAG: 1」を出力します。問題を解決するヒントはありますか?

4

2 に答える 2

0

tagここでプロパティを上書きしています:

menuButtons.addChild(tmpBtn,2,1);

3 番目のパラメーターはtmpBtn.tag1 に設定されます。

tagプロパティを引き続き使用する場合は、次のように変更するだけです。

        tmpBtn.tag = a;
        menuButtons.addChild(tmpBtn,2,1);

と:

        menuButtons.addChild(tmpBtn,2,a);

tagプロパティを使用したくない場合は、フランチェスコの回答を参照してください

于 2014-08-06T09:31:33.680 に答える