You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ha...@apache.org on 2022/10/11 07:58:07 UTC
[royale-asjs] branch develop updated: This should make timer handling more robust
This is an automated email from the ASF dual-hosted git repository.
harbs pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/develop by this push:
new b28c704dc6 This should make timer handling more robust
b28c704dc6 is described below
commit b28c704dc68c83cbc144b6b31d69a227e4b88e5c
Author: Harbs <ha...@in-tools.com>
AuthorDate: Tue Oct 11 10:57:58 2022 +0300
This should make timer handling more robust
---
.../beads/controllers/SpinnerMouseController.as | 38 ++++++++++------------
1 file changed, 17 insertions(+), 21 deletions(-)
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/SpinnerMouseController.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/SpinnerMouseController.as
index 1ef88f4cac..0f508b6400 100755
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/SpinnerMouseController.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/SpinnerMouseController.as
@@ -79,17 +79,17 @@ package org.apache.royale.jewel.beads.controllers
rangeModel = UIBase(value).model as IRangeModel;
- COMPILE::SWF
- {
+ COMPILE::SWF
+ {
var spinnerBead:ISpinnerView = value.getBeadByType(ISpinnerView) as ISpinnerView;
spinnerBead.decrement.addEventListener(MouseEvent.CLICK, decrementClickHandler);
spinnerBead.decrement.addEventListener("buttonRepeat", decrementClickHandler);
spinnerBead.increment.addEventListener(MouseEvent.CLICK, incrementClickHandler);
spinnerBead.increment.addEventListener("buttonRepeat", incrementClickHandler);
- }
+ }
- COMPILE::JS
- {
+ COMPILE::JS
+ {
var view:ISpinnerView = value.getBeadByType(ISpinnerView) as ISpinnerView;
var incrementButton:Button = view.increment;
@@ -103,7 +103,7 @@ package org.apache.royale.jewel.beads.controllers
decrementButton.addEventListener(MouseEvent.MOUSE_DOWN, decrementMouseDownHandler);
decrementButton.addEventListener(MouseEvent.MOUSE_UP, decrementMouseUpHandlermouseUpHandler);
decrementButton.addEventListener(MouseEvent.MOUSE_OUT, cancelTimerMouseOutHandler);
- }
+ }
}
private var mouseDown:Boolean = false;
@@ -123,18 +123,20 @@ package org.apache.royale.jewel.beads.controllers
if (timer.delay > 150)
{
var newdelay:Number = timer.delay/2;
- removeTimer(incOrDecFunc);
createTimer(incOrDecFunc, newdelay)
}
}
}
+ private var currentFunc:Function;
/**
* Create the timer each time needed depending on function to listen and delay
* @private
*/
private function createTimer(incOrDecFunc:Function, delay:Number):void
{
+ removeTimer();
+ currentFunc = incOrDecFunc;
timer = new Timer(delay, 0);
timer.addEventListener("timer", incOrDecFunc);
timer.start();
@@ -144,9 +146,12 @@ package org.apache.royale.jewel.beads.controllers
* Remove the timer each time needed depending on function to listen
* @private
*/
- private function removeTimer(incOrDecFunc:Function):void
+ private function removeTimer():void
{
- timer.removeEventListener("timer", incOrDecFunc);
+ if(!timer || !currentFunc)
+ return;
+
+ timer.removeEventListener("timer", currentFunc);
timer.stop();
timer = null;
}
@@ -156,16 +161,7 @@ package org.apache.royale.jewel.beads.controllers
*/
private function cancelTimerMouseOutHandler(event:MouseEvent):void
{
- if (timer != null && timer.running)
- {
- //TODO removeAllListeners should probably not be used as it's a goog construct
- COMPILE::JS
- {
- timer.removeAllListeners();
- }
- timer.stop();
- timer = null;
- }
+ removeTimer();
}
/**
@@ -192,7 +188,7 @@ package org.apache.royale.jewel.beads.controllers
return;
}
mouseDown = false;
- removeTimer(incrementClickHandler);
+ removeTimer();
}
/**
* Increment mouse click handler
@@ -231,7 +227,7 @@ package org.apache.royale.jewel.beads.controllers
return;
}
mouseDown = false;
- removeTimer(decrementClickHandler);
+ removeTimer();
}
/**
* Decrement mouse click handler