+1
Answered

Setting clickdelay on a panel?

sstava 7 years ago updated by icahill (Administrator) 7 years ago 3
I made the assumption that clickdelay set to "1" would make it such that the panel the clickdelay is set on would not register a onclickup event until you had pressed on the panel for at least one second.

I am not seeing those results. It calls the onclickup event immediately.

Is my understanding of clickdelay flawed? Please help me understand the proper usage.

If I understand the usage correctly; I am also trying to set the clickdelay dynamically with a tag. Is that a valid approach?

Thanks!

P.S. What I am attempting to do: I have a menu that represents four different screens (four separate menu panels, one for switching to each corresponding screen. When you are on a specific menu/screen, my goal is to have an extended press (1 sec+) of the menu do a full refresh of the screen you are on.
Steve,

clickdelay is an interesting tag. Here are a few details surrounding it.

1) clickdelay is only valid on the attribute "onclick"

2) the clickdelay value is counted when the object has a downstate active. In other words as long as your finger is touching the object the clickdelay will count.

3) The corresponding action will not fire until an upstate is detected AND the clickdelay time is satisfied.

So in your case, you could have an action like this:

<!--insert actions that will update the screen content-->
Thanks! I got a simple implementation of it to work. I appreciate the quick response!

Now, for the additional confusion on my part. Based on the "layering" of panels and text tags in my real implementation, I am not seeing consistent results :(

I have abstracted my implementation to something a little more manageable and sent you an invite to a project called "TestIt".

No big hurry, if you can take a look at the 3 examples of clickdelay (one works, two don't) and let me know what you think, I would greatly appreciate it

Thanks!
Steve
The issue lies with the children of an object with a clickdelay on it. If you select a child object, then it triggers the action immediately. If you select outside of the child, then it works.

In your first panel, your text child was set to 100%x100% so there was nowhere you could click that wouldn't trigger the action.

As a workaround, If you set the children to ignoretouches="yes" then it works as designed.

I will log a bug report for this. Thanks!