In linea di massima le pagine vanno mantenute il piu` semplice possibile.
Gli oggetti flash in realta` sono dei veri programmi, che necessitano di un plug-in specifico per essere visualizzati, e richiedono un lavoro non indifferente per il processore del client.
Quindi se puoi evitarlo e` praticamente necessario farlo. Ne guadagni anche in accessibilita` (e di questi tempi non e` da sottovalutare).
Discorso analogo per le immagini che sostituiscono le scritte: se puoi evitale.

Il CSS ha le trasparenze: puoi definire uno sfondo trasparente, quindi non vedo la necessita` di usare immagini o altro per simularle.
Le semitrasparenze, invece, esistono solo nei CSS3, anche se molti browser gia` le implementano.

Se puoi vuoi un consiglio su come realizzare un determinato effetto usando solo i CSS, credo dovresti spiegarti meglio: magari con un'immagine di come deve apparire negli stati a riposo e :hover