BUG? Trigger hidden then back again

Nov 24, 2017

If I trigger on hover on object 1 to change object 2 to hidden with "restore on mouse leave" checked, object 2 stays hidden.

am I missing something or is this a bug?

You can replicate this by drawing 2 boxes.  Set a trigger on the first to hide the 2nd on mouse hover.  It never comes back

10 Replies
Anna Grillo

Hi Bob, 

I'm seeing the same behavior in SL360. You can certainly submit a support case to Articulate so the experts can check it out.

Without knowing what your project looks like, it's hard to suggest a temporary solution, but I try to use built-in states whenever possible. Could you create a hover state for object 1 to include a white (or whatever the background color is) shape over object 2?

If that doesn't work for your set up, you could also create a new layer that looks exactly like the base layer without object 2. Add a trigger to show this new layer when the mouse hovers over object 1 and select "restore on mouse leave". 

See attached for very basic examples of these two options. Hope that helps in the meantime! 

Anna

Walt Hamilton

Bob,

The "restore on mouse leave" restores the object you hover over. If you add additional triggers, it does not have the ability to "reverse trigger action" .

To do what you are asking, I create an extra hover target. It is filled, transparent, reasonably similar in shape to the hover target but about 10 pixels larger in every direction, and below it. I give it a hover trigger that is the opposite of the visible hover target. Thus when I leave the target, I briefly hover over the secondary target, and the second object is made visible again.

Anna Grillo

Hi Walt, 

Thanks for the clarification. Originally, I thought the "restore on mouse leave" applied to the object being hovered over, but I was having trouble with that in SL360 as well. 

Say I set a trigger to change the state of an object to hidden when the mouse hovers over that object AND I select "restore on mouse leave". Shouldn't the object return to its normal state when the mouse stops hovering over it?

I know this wasn't my original post, but I appreciate any help you can provide!

Anna

Walt Hamilton

Shouldn't the object return to its normal state when the mouse stops hovering over it?

I doubt it. The built-in states (like hover) have built-in triggers, and creating your own (like "change state to hidden when mouse hovers over") generally conflicts with the built-in triggers, and neither of them works like you expect them to.

The real reason it won't work is that when you make the object hidden, it actually is gone. Since it isn't there, there is no way for it to observe that the mouse has left it, so the on leave trigger isn't notified.

The best options are: 

1. what I suggested to Bob, or

2. Change the hover state to be an object that looks like the background. That will give the appearance of disappearing while allowing it to track the mouse and reappear. Exactly matching the background may be tricky, but method 1 is pretty reliable.

Bob Findlay

just tried the suggestion of a 2nd box behind the first, but it doesn't work for me.  It seems to work on entering the larger box, but not on exiting the smaller box.  Presumably because it feels that it is already hovering over the larger box so does not trigger an event?

The only way I can get it to work is to have FOUR target boxes surrounding the main one, with at least 1 pixel gap between them and the main box.

painful

Walt Hamilton

>>thanks for the responses, and I see what you mean, but to be honest surely the restoration should be on what you've changed, not on what you've hovered over?!

The problem with this is that you are changing the other object with a trigger you are creating. You aren't using built-in hover, which changes only the appearance of the object, so going back to normal state is easy. I can't imagine how you could write software to reverse the action of a custom trigger.

I thought I had made a second object work, but it seems now that I can't :(

Two thoughts that may speed up your work flow.

if the object is a rectangle. instead of another rectangle, put a frame behind it. That gives you the gap you need, but without having to create four objects.

If it is irregular in shape, and you have to cover it, you can fill the covering object with the slide background color.  Be careful with this, there used to be a bug that would freeze everything if you filled an object using a slide background if the background was a gradient, and the slide had animations. They fixed that in SL3/360, but I don't know if it was fixed in SL2. Maybe some staff can weigh in on this?

Bob Findlay

Hi

Ryan from customer support has given a way of doing this that doesn't require hitting another object to unhide

What you do is add a 2nd state for the object you want to hide and delete the object in that state basically creating a state where the object doesn't exist.

Instead of hiding the object on hover, set it to this custom state and tick the "restore on mouse leave"

https://360.articulate.com/review/content/8e67ac2a-7842-441c-a9c9-bb3b87fff349/review

voila! it works

 

This discussion is closed. You can start a new discussion or contact Articulate Support.