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;
|
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
|
// * Setup controls touch events
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
ONSControls.setupInteractive = function () {
|
ONSControls.setupInteractive = function () {
|
||||||
|
@ -305,14 +313,10 @@ ONSControls.setupInteractive = function () {
|
||||||
|
|
||||||
// A/B/X/Y
|
// A/B/X/Y
|
||||||
const buttons = this._buttonsContainer.children;
|
const buttons = this._buttonsContainer.children;
|
||||||
buttons[0].on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_A")})
|
this.setupButton(buttons[0], "BUTTON_A");
|
||||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_A")});
|
this.setupButton(buttons[1], "BUTTON_X");
|
||||||
buttons[1].on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_X")})
|
this.setupButton(buttons[2], "BUTTON_B");
|
||||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_X")});
|
this.setupButton(buttons[3], "BUTTON_Y");
|
||||||
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")});
|
|
||||||
for (btn of buttons) {
|
for (btn of buttons) {
|
||||||
btn.hitArea = new PIXI.Circle(0, 0, 40);
|
btn.hitArea = new PIXI.Circle(0, 0, 40);
|
||||||
}
|
}
|
||||||
|
@ -339,10 +343,8 @@ ONSControls.setupInteractive = function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
// LB/RB
|
// LB/RB
|
||||||
this._LBsprite.on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_LB")})
|
this.setupButton(this._LBsprite, "BUTTON_LB");
|
||||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_LB")});
|
this.setupButton(this._RBsprite, "BUTTON_RB");
|
||||||
this._RBsprite.on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_RB")})
|
|
||||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_RB")});
|
|
||||||
|
|
||||||
// Show button
|
// Show button
|
||||||
this._showButton.on("pointerdown", this.toggle);
|
this._showButton.on("pointerdown", this.toggle);
|
||||||
|
|
|
@ -295,6 +295,14 @@ ONSControls.toSafeArea = function(position, element) {
|
||||||
return position;
|
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
|
// * Setup controls touch events
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
ONSControls.setupInteractive = function () {
|
ONSControls.setupInteractive = function () {
|
||||||
|
@ -305,14 +313,10 @@ ONSControls.setupInteractive = function () {
|
||||||
|
|
||||||
// A/B/X/Y
|
// A/B/X/Y
|
||||||
const buttons = this._buttonsContainer.children;
|
const buttons = this._buttonsContainer.children;
|
||||||
buttons[0].on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_A")})
|
this.setupButton(buttons[0], "BUTTON_A");
|
||||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_A")});
|
this.setupButton(buttons[1], "BUTTON_X");
|
||||||
buttons[1].on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_X")})
|
this.setupButton(buttons[2], "BUTTON_B");
|
||||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_X")});
|
this.setupButton(buttons[3], "BUTTON_Y");
|
||||||
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")});
|
|
||||||
for (btn of buttons) {
|
for (btn of buttons) {
|
||||||
btn.hitArea = new PIXI.Circle(0, 0, 40);
|
btn.hitArea = new PIXI.Circle(0, 0, 40);
|
||||||
}
|
}
|
||||||
|
@ -339,10 +343,8 @@ ONSControls.setupInteractive = function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
// LB/RB
|
// LB/RB
|
||||||
this._LBsprite.on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_LB")})
|
this.setupButton(this._LBsprite, "BUTTON_LB");
|
||||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_LB")});
|
this.setupButton(this._RBsprite, "BUTTON_RB");
|
||||||
this._RBsprite.on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_RB")})
|
|
||||||
.on("pointerup", (event) => {this.sendEvent(event, "BUTTON_RB")});
|
|
||||||
|
|
||||||
// Show button
|
// Show button
|
||||||
this._showButton.on("pointerdown", this.toggle);
|
this._showButton.on("pointerdown", this.toggle);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue