If you want different images for different states of a button, Hype allows you to set a different image for each using a Textured button, which works great in Firefox, Chrome etc.
The problem comes in Safari, where when you hover over a button, instead of displaying the new image immediately, the button disappears for a second, and then the new image appears. This is repeated whenever you hover, not just the first time, so that it doesn't appear to be an image loading issue.
The only solution I have for this is to create a group for each button containing the images as separate DOM elements and animating their opacity, which is rather tedious, and not entirely optimal.
How do you handle the button flicker issue on Safari?