1

レイヤーに EditBox があります。

var ebox = new cc.EditBox(cc.p(200, 30));
ebox.setPosition(size.width / 2 - 50, size.height / 2);
ebox.setPlaceHolder("Password");
ebox.setInputFlag(cc.EDITBOX_INPUT_FLAG_PASSWORD);
ebox.setDelegate(this);
ebox.setFontColor({"r": 0, "g": 0, "b": 0});
ebox.setFontSize(20);
ebox.initWithBackgroundColor(cc.size(200, 30), {"r": 0, "g": 255, "b": 0});
ebox.init();

this.addChild(ebox, 1); //this - is a main layer

次に、メインレイヤーの上にある種のオーバーレイを表示する必要があります

this.getParent().addChild(overlayLayer, 100);

overlayLayer - 色で塗りつぶされたレイヤー

問題は、編集ボックスが常にオーバーレイの上にあることです。zOrder が EditBox で機能しないのはなぜですか??

4

1 に答える 1

0

あなたのコードでも同じ問題が発生します。私の解決策は回避策です。スプライトを背景として使用できます。その後、動作します。

    var ebox = cc.EditBox.create(cc.size(170, 50), cc.Scale9Sprite.create("res/extensions/green_edit.png"), cc.Scale9Sprite.create("res/extensions/orange_edit.png"));
    ebox.setPlaceHolder("Password");
    ebox.setInputFlag(cc.EDITBOX_INPUT_FLAG_PASSWORD);
    ebox.setPosition(cc.p(size.width/2,size.height/2));
    ebox.setFontColor({"r": 0, "g": 0, "b": 0});
    ebox.setDelegate(this);
    this.addChild(ebox,1);
于 2014-08-13T05:46:43.760 に答える