Skip to content
This repository has been archived by the owner on Feb 23, 2023. It is now read-only.

Commit

Permalink
cancel click events if dragging using "dragThreshold"
Browse files Browse the repository at this point in the history
  • Loading branch information
Nicolai Mortensen committed Aug 8, 2017
1 parent 4d2409b commit c963103
Show file tree
Hide file tree
Showing 7 changed files with 108 additions and 21 deletions.
29 changes: 16 additions & 13 deletions bin/pixi-ui.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion bin/pixi-ui.js.map

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions bin/pixi-ui.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion bin/pixi-ui.min.js.map

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion src/Button.js
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,5 @@ Object.defineProperties(Button.prototype, {
* "blur"
* "focus"
* "focusChanged" param: [bool]isFocussed
* "change" param: [bool]isChecked
*
*/
14 changes: 13 additions & 1 deletion src/Interaction/ClickEvent.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,17 @@
var bound = false,
self = this,
id = 0,
ishover = false;
ishover = false,
mouse = new PIXI.Point(),
offset = new PIXI.Point(),
movementX = 0,
movementY = 0;


obj.container.interactive = true;

var _onMouseDown = function (event) {
mouse.copy(event.data.global);
id = event.data.identifier;
self.onPress.call(obj, event, true);
if (!bound) {
Expand All @@ -20,6 +26,7 @@

var _mouseUpAll = function (event) {
if (event.data.identifier !== id) return;
offset.set(event.data.global.x - mouse.x, event.data.global.y - mouse.y);
if (bound) {
obj.container.removeListener('mouseup', _onMouseUp);
obj.container.removeListener('mouseupoutside', _onMouseUpOutside);
Expand All @@ -33,6 +40,11 @@
var _onMouseUp = function (event) {
if (event.data.identifier !== id) return;
_mouseUpAll(event);

movementX = Math.abs(offset.x);
movementY = Math.abs(offset.y);
if (Math.max(movementX, movementY) > obj.dragThreshold) return;

self.onClick.call(obj, event);
};

Expand Down
73 changes: 73 additions & 0 deletions test/button.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<style>
body, html { margin: 0; padding: 0; width: 100%; height: 100%; }
canvas { width: 100% !important; height: 100% !important; position: fixed; }
</style>
<script src="pixi.js"></script>
<script src="../bin/pixi-ui.js"></script>
<title></title>
<meta charset="utf-8" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height" />

</head>
<body>
<script type="text/javascript">
PIXI.settings.SCALE_MODE = PIXI.SCALE_MODES.LINEAR;
PIXI.settings.RESOLUTION = devicePixelRatio || 1;
var renderer = new PIXI.WebGLRenderer(window.innerWidth, window.innerHeight, { resolution: devicePixelRatio || 1, transparent: true });
var stage = new PIXI.Container();
var uiStage = new PIXI.UI.Stage(window.innerWidth, window.innerHeight);
uiStage.minHeight = 315;
uiStage.minWidth = 500;

var dragContainer = new PIXI.UI.Container();
document.body.appendChild(renderer.view);
stage.addChild(uiStage);
var resizeFunction = function () {
renderer.resize(window.innerWidth, window.innerHeight);
uiStage.resize(window.innerWidth, window.innerHeight);
}
window.addEventListener("resize", resizeFunction);
resizeFunction();
PIXI.loader.add('UISprites.json').load(function () {
init();
});


function init() {
var cb1_bg = PIXI.Texture.fromFrame("UI/cb-1-bg.png");
var cb1_mark = PIXI.Texture.fromFrame("UI/cb-1-mark.png");
var cb2_bg = PIXI.Texture.fromFrame("UI/cb-2-bg.png");
var cb2_mark = PIXI.Texture.fromFrame("UI/cb-2-mark.png");

var whiteBG = PIXI.Texture.fromFrame("UI/ui-box-1.png");
var innerBG = PIXI.Texture.fromFrame("UI/ui-box-2.png");
var solidBox = PIXI.Texture.fromFrame("UI/solid-box.png");
var lineSprite = PIXI.Texture.fromFrame("UI/ui-horizontal-line-border.png");
var textStyle = { fill: '#000000', fontSize: 18, fontFamily: 'Lucida Sans Typewriter' };


button = new PIXI.UI.Button({
background: new PIXI.UI.SliceSprite(PIXI.Texture.fromFrame("UI/cb-1-bg.png"), 10),
});

button.on("hover", function (isHover) {
console.log("hover", isHover);
PIXI.UI.Tween.to(button, 0.1, { width: isHover ? 100 : 50 });
});

uiStage.addChild(button);

Update();
}

function Update() {
renderer.render(stage);
requestAnimationFrame(Update);
}

</script>
</body>
</html>

0 comments on commit c963103

Please sign in to comment.