Hola,
Es válido el uso de margenes negativos. Sin embargo creo que hay una manera más sencilla de conseguir lo que deseas. ¿Por qué no hacer que la imágen se "de verdad" un fondo? Simplificando:
Código:
<div id="fondo">
<div id="sh">
<!--Aquí va el código del .swf--!>
</div>
</div>
En tus CSS:
Código:
#fondo{
background: url(tal.jpg);
width: 778px;
height: 600px;
}
/*Aquí pones los estilos necesarios para colocar
el #sh en la posición deseada. Por ejemplo:*/
#sh{
margin: auto;
}