2010-05-13 17 views
5

Ciao Ho un menu flash che mostra alcuni collegamenti, ma quando l'utente è connesso voglio cambiare il menu da menu1 a menu2 ... in modo che visualizzerà "Il mio account" piuttosto che "Registrati"Cambia flash src con jquery?

il codice qui sotto è per il mio flash:

<div id="menu"> 
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="825" height="69" id="menu1" align="middle"> 
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="allowFullScreen" value="false" /> 
<param name="movie" value="menu1.swf" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="bgcolor" value="#ffffff" /> <embed src="menu1.swf" quality="high" wmode="transparent" bgcolor="#ffffff" width="825" height="69" name="menu1" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> 
</object> 
</div> 

Php:

if (loggedin()) 
{ 

    echo '<script type="text/javascript"> 
    CHANGE FLASH LINK HERE 
    </script>'; 


} 

questo potrebbe essere fatto senza dover scrivere tutto il codice di cui sopra di nuovo fuori?

Grazie :)

risposta

6

Utilizzare .attr():

$(document).ready(function() { 
    $("#menu > object > embed").attr("src", "new link"); 
}); 
+0

Grazie, è stato facile! : D A quanto pare devo aspettare 6 minuti per accettare questo come risposta..haha – Elliott

0

Se loggedin() è un controllo del carico-tempo fatto sul lato server, perché non basta cambiare l'output di PHP?

<div id="menu"> 
    <?php if (loggedin()) { ?> 
     <object ...> ... 
      <param name="movie" value="menu2.swf" /> ... 
     </object> 
    <?php } else { ?> 
     <object ...> ... 
      <param name="movie" value="menu1.swf" /> ... 
     </object> 
    <?php } ?> 
</div> 

Se proprio devi farlo dallo script allora sì, è necessario creare un nuovo oggetto Flash (da innerHTML o DOM metodi, o di ottenere uno script come SWFObject di farlo per voi). Cambiare la fonte di un oggetto plugin non è qualcosa che puoi fare in modo affidabile cross-browser (specialmente IE).

Potrebbe essere preferibile includere entrambi i menu nella pagina e utilizzare semplicemente display per nasconderne uno.

Sarebbe quasi certamente meglio non utilizzare i menu di Flash, che tendono ad essere usabilità, accessibilità e disastro SEO. Hai un sacco di possibilità di animazione integrate in jQuery e HTML5/CSS3/etc è sempre più capace di effetti speciali. I menu Flash sono quindi 2003.

Problemi correlati