As I said earlier, I was using 0.001 for both parameters to end the flash and then hide or show it, but it wasn't working 100%.
I'm pretty sure, if my memory serves correct, that MMF2 would override the flash command when using show or hide, and I guess I expected the same logic to apply with Construct.
It looks like the problem I was having, which was flagged up by your posts, was that by using a value greater than zero for the parameters meant that the following command to show or hide it didn't work because the flash hadn't actually finished it's duration.
Using zero meant that it effectively switched it off and the following command would work as expected.
I've spent some time today writing custom flash routines, and all works well, but it's sod's law that I find out flash would work with zero parameters AFTER I'd rewritten it.
Some parts of my game require the flashing to be in sync with other objects, and with my custom flashing, all sprites stay in sync regardless of when they are switched on or off.
But it's good to know that I can use flash for other parts of the game that don't need to be synced.
I still think that using show or hide should override the flash properties, instead of ignoring it if the flash duration hasn't expired.
It's no biggy if we have to use 2 commands instead of 1, but it just seems logical.
Thanks again guys.