Igor de Oliveira Couto wrote some time ago:

Dear Revolution Masters,

I'm trying to implement a simple button that should use 3 different images: 'idle', 'over' (when the cursor in on top of the button), and 'down' (when the mouse is down on the button).

Because the shape of the button is irregular, and I want the transparent bits to be ignored for mouse events, rather than specifying the images as icons in a button control, I used IMAGES. My idea was to setup the 3 images on a card, on top of each other, and simply show/hide each one in response to the appropriate mouse events.

So I started by putting the 'idle' image on the card, and then the 'over' image on top of that, making sure the 'loc' properties of both was exactly the same (ie, they were exactly on top of each other). Each picture is exactly the same as the other, just using different colours... Now, I went into the scrip of the 'idle' picture, and typed:

on mouseEnter
show image "over"
hide me
end mouseEnter

Then, I went into the script of the 'over' image, and did the opposite:

on mouseLeave
show image "idle"
hide me
end mouseLeave

Now, what is happening when I use the browse tool is a bit of a puzzle: it goes like this:
The card is displaying the 'idle' image. I move the cursor into the image, and presto, I see the 'over' image. I also know that the 'idle' image HAS been hidden - I can check with the message box...
Now, I slowly move the cursor OUTSIDE the image, and... nothing. The 'over' image behaves as if it has NOT received the 'mouseLeave' message...
I move the cursor back onto the 'over' image, and move it back out - now for the second time - and, presto, it works: it hides the 'over' image and shows the 'idle' image.
The crunch of the matter is: I have to 'leave' the image TWICE for it to work... EVERYTIME!

All I can deduct is that for some reason, the first time the mouse leaves the 'over' image, no 'mouseLeave' message is being sent to it! Only after the cursor has re-entered the image, and then proceeds to leave again, does it work...

Am I missing something embarrassingly simple? Did I not read the documentation properly? Is this a behaviour that others have noticed? Is it a bug?

Any help would be greatly appreciated!

Kind Regards,
--
Igor de Oliveira Couto
----------------------------------
[EMAIL PROTECTED]
----------------------------------


Igor,

I ran into this problem on MC 2.4.3 while developing. I searched the archives and saw your posting along with numerous responses but no clear solution.

Here is how I solved the problem, for those that may (or may not) be interested. I chased the problem like many others by trying to get the button to do what I wanted on the mouseLeave. Then it occured to me, if I am leaving one object, I must be entering another so...

I simply put a transparent graphic behind my "freeform" shaped button. This graphic extends beyond the borders of my button. I then put this handler in the graphic.

on mouseEnter
put image "normalstate" into image "goback"
end mouseEnter


"goback" is the name of my "freeform" button, "normalstate" is the image I want displayed when I do a mouseLeave. Since leaving the button does not generate a mouseLeave (as you discovered), entering the transparent graphic DOES generate a mouseEnter and the opportunity to change the graphic. You could, of course, reference a file, imagedata (and maskdata if needed),or just a hidden image as I do. All of which were recently discussed in another thread.

Sorry if this is old news, but since I did not see a solution posted, I thought I would pipe up.

Regards,

John Theobald



_______________________________________________
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to