PIXI Controls: Add pointerupoutside event handling for buttons
This commit is contained in:
parent
a29c9c9b24
commit
7c261c425a
2 changed files with 28 additions and 24 deletions
|
@ -295,6 +295,14 @@ ONSControls.toSafeArea = function(position, element) {
|
|||
return position;
|
||||
}
|
||||
//=============================================================================
|
||||
// * Setup events for button
|
||||
//=============================================================================
|
||||
ONSControls.setupButton = function(element, button) {
|
||||
element.on("pointerdown", (event) => {this.sendEvent(event, button)})
|
||||
.on("pointerup", (event) => {this.sendEvent(event, button)})
|
||||
.on("pointerupoutside", (event) => {this.sendEvent(event, button)});
|
||||
}
|
||||
//=============================================================================
|
||||
// * Setup controls touch events
|
||||
//=============================================================================
|
||||
ONSControls.setupInteractive = function () {
|
||||
|
@ -305,14 +313,10 @@ ONSControls.setupInteractive = function () {
|
|||
|
||||
// A/B/X/Y
|
||||
const buttons = this._buttonsContainer.children;
|
||||
buttons[0].on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_A")})
|
||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_A")});
|
||||
buttons[1].on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_X")})
|
||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_X")});
|
||||
buttons[2].on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_B")})
|
||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_B")});
|
||||
buttons[3].on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_Y")})
|
||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_Y")});
|
||||
this.setupButton(buttons[0], "BUTTON_A");
|
||||
this.setupButton(buttons[1], "BUTTON_X");
|
||||
this.setupButton(buttons[2], "BUTTON_B");
|
||||
this.setupButton(buttons[3], "BUTTON_Y");
|
||||
for (btn of buttons) {
|
||||
btn.hitArea = new PIXI.Circle(0, 0, 40);
|
||||
}
|
||||
|
@ -339,10 +343,8 @@ ONSControls.setupInteractive = function () {
|
|||
});
|
||||
|
||||
// LB/RB
|
||||
this._LBsprite.on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_LB")})
|
||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_LB")});
|
||||
this._RBsprite.on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_RB")})
|
||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_RB")});
|
||||
this.setupButton(this._LBsprite, "BUTTON_LB");
|
||||
this.setupButton(this._RBsprite, "BUTTON_RB");
|
||||
|
||||
// Show button
|
||||
this._showButton.on("pointerdown", this.toggle);
|
||||
|
|
|
@ -295,6 +295,14 @@ ONSControls.toSafeArea = function(position, element) {
|
|||
return position;
|
||||
}
|
||||
//=============================================================================
|
||||
// * Setup events for button
|
||||
//=============================================================================
|
||||
ONSControls.setupButton = function(element, button) {
|
||||
element.on("pointerdown", (event) => {this.sendEvent(event, button)})
|
||||
.on("pointerup", (event) => {this.sendEvent(event, button)})
|
||||
.on("pointerupoutside", (event) => {this.sendEvent(event, button)});
|
||||
}
|
||||
//=============================================================================
|
||||
// * Setup controls touch events
|
||||
//=============================================================================
|
||||
ONSControls.setupInteractive = function () {
|
||||
|
@ -305,14 +313,10 @@ ONSControls.setupInteractive = function () {
|
|||
|
||||
// A/B/X/Y
|
||||
const buttons = this._buttonsContainer.children;
|
||||
buttons[0].on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_A")})
|
||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_A")});
|
||||
buttons[1].on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_X")})
|
||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_X")});
|
||||
buttons[2].on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_B")})
|
||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_B")});
|
||||
buttons[3].on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_Y")})
|
||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_Y")});
|
||||
this.setupButton(buttons[0], "BUTTON_A");
|
||||
this.setupButton(buttons[1], "BUTTON_X");
|
||||
this.setupButton(buttons[2], "BUTTON_B");
|
||||
this.setupButton(buttons[3], "BUTTON_Y");
|
||||
for (btn of buttons) {
|
||||
btn.hitArea = new PIXI.Circle(0, 0, 40);
|
||||
}
|
||||
|
@ -339,10 +343,8 @@ ONSControls.setupInteractive = function () {
|
|||
});
|
||||
|
||||
// LB/RB
|
||||
this._LBsprite.on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_LB")})
|
||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_LB")});
|
||||
this._RBsprite.on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_RB")})
|
||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_RB")});
|
||||
this.setupButton(this._LBsprite, "BUTTON_LB");
|
||||
this.setupButton(this._RBsprite, "BUTTON_RB");
|
||||
|
||||
// Show button
|
||||
this._showButton.on("pointerdown", this.toggle);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue