If I'm not mistaken the solution was to make touching an element trigger the :hover state and the click action unless the :hover state changed the visibility of another element. If the :hover state changed the visibility of another element, then the click action was not triggered until a user tapped again.
This is possible in HTML because it's trivial to determine whether or not a :hover changes display or visibility properties of other elements. As you've supposed, Flash did not afford browsers with that sort of ability.