+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: Reload Object Flash

  1. #1
    1djluigi non è in linea Novello
    Post
    14

    Reload Object Flash

    Ragazzi ho una pagina dove visualizzo un swf. Nella pagina stessa c'è un pulsante che verifica determinate condizioni che se sono verificate dovrebbe caricare nella posizione del vecchio flash un altro filmato differente. in pratica siccome io al mio oggetto flash (contenuto in un pannello) passo una variabli che valorizzo nel pageload dovrei modificare tale variabile nel momento in cui viene premuto il pulsante. il problema è che carica sempre lo stesso filmato o niente....
    questa è la sintassi dell'oggetto flash in path è contenuto il percorso del swf che viene valorizzato nel pageload.

    codice:
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="600" height="75">
    <param name="movie" value="<%path>"/> 
    <param name="quality" value="high">
    <param name="bgcolor" value="#FFFFFF">
    
    <object data="<%path>" width="600" height="75" type="application/x-shockwave-flash">
    <param name="quality" value="high">
    <param name="bgcolor" value="#FFFFFF">
    <param name="pluginurl" value="http://www.macromedia.com/go/getflashplayer">     
    </object>
    
    </object>

  2. #2
    L'avatar di bottomap
    bottomap non è in linea Moderatore Globale
    Post
    4,130
    Ciao,

    Il pulsante sarà una onclick lato client mi immagino, per cui dovrai andare via dom a modificare gli attributi del filmato (e non saprei dirti come si comporta un flash in questo caso). Casomai posta il codice del pulsante piuttosto che quello dell'oggetto...

    Immagino che un refresh della pagina (il pulsante sarà un submit oppure sull'onclick avrà una location.href=xxx con qualche parametro in get) sia fuori discussione...

    Ciaociao


    Venite a farmi un saluto su http://www.bottomap.com/

    - Come porre domande in modo intelligente
    - Hai mai dato un'occhiata al
    Regolamento del Forum? Se la risposta è no, sarebbe proprio l'ora di farlo...
    - Il Crossposting è vietato dalla Netiquette.

    "Solo Puffin ti darà forza e grinta a volontà" - Charlie O'Brian
    "I gatti sono animali verso cui ho il massimo rispetto. I gatti e i non conformisti mi sembrano davvero i soli esseri in questo mondo che abbiano una coscienza pratica e attiva" - Jerome K. Jerome
    "Dun Dun DUNNN!" - Capitan Caos
    (per chiunque se lo fosse mai chiesto, il nick Bottomap è volutamente sgrammaticato)

  3. #3
    1djluigi non è in linea Novello
    Post
    14
    Via dom???...non capisco a cosa ti riferisci....
    comunque hai centrato il problema....supponiamo che io nella pagina in aspx abbia il filmato e nel page load del cs valorizzi quella variabile %path....adesso dal lato client clicco sul pulsante e immaginiamo che nell'onclick ci siamo un nuovo valore della variabile %path....il risultato è che non carica il filmato...
    considera che sto operando nella stessa pagina....forse la modifica dei parametri del flash via dom sarà la soluzione...ma non ho proprio idea di come si faccia

  4. #4
    L'avatar di bottomap
    bottomap non è in linea Moderatore Globale
    Post
    4,130
    Ciao,

    Via dom puoi ottenere l'object (il modo più veloce è dargli un id e recuperarlo via javascript con getElementById).

    Ottenuto l'oggetto X, avrai nell'array X.attributes gli attributi dell'oggetto recuperato ed in X.childNodes i nodi figli (che nel tuo caso sono i param e l'<object> interno).
    I figli avranno a loro volta l'array attribute contenente name e value (nel caso dei param). L'object interno avrà a sua volta degli attributi e dei figli.

    Una volta ottenuto l'attributo che vuoi modificare basta impostarlo banalmente sulla stringa che vuoi (parametro.attributes[1].value="nuovo flash")... tutto in javascript, supposto, ovviamente, di avere già da qualche parte il nuovo path...

    Ciaociao


    Venite a farmi un saluto su http://www.bottomap.com/

    - Come porre domande in modo intelligente
    - Hai mai dato un'occhiata al
    Regolamento del Forum? Se la risposta è no, sarebbe proprio l'ora di farlo...
    - Il Crossposting è vietato dalla Netiquette.

    "Solo Puffin ti darà forza e grinta a volontà" - Charlie O'Brian
    "I gatti sono animali verso cui ho il massimo rispetto. I gatti e i non conformisti mi sembrano davvero i soli esseri in questo mondo che abbiano una coscienza pratica e attiva" - Jerome K. Jerome
    "Dun Dun DUNNN!" - Capitan Caos
    (per chiunque se lo fosse mai chiesto, il nick Bottomap è volutamente sgrammaticato)

  5. #5
    1djluigi non è in linea Novello
    Post
    14
    mi potresti fare un esempio giusto per capire...

  6. #6
    L'avatar di bottomap
    bottomap non è in linea Moderatore Globale
    Post
    4,130
    Ciao,

    Beh supposto che tu abbia impostato l'id del primo object su "idOggetto", un sistema piuttosto grezzo può essere questo (cerca l'attributo movie in uno dei figli di <object>):
    codice:
        var ogg=document.getElementById('idOggetto');
        var childs=ogg.childNodes;
        for(var i=0;i<childs.length;i++){
          var attr=childs[i].attributes;
          if(attr!=null && attr.name!=null){        
            if(attr.name.value=='movie'){
              attr.value.value="b.swf";
            }
          }      
        }
    Ciaociao


    Venite a farmi un saluto su http://www.bottomap.com/

    - Come porre domande in modo intelligente
    - Hai mai dato un'occhiata al
    Regolamento del Forum? Se la risposta è no, sarebbe proprio l'ora di farlo...
    - Il Crossposting è vietato dalla Netiquette.

    "Solo Puffin ti darà forza e grinta a volontà" - Charlie O'Brian
    "I gatti sono animali verso cui ho il massimo rispetto. I gatti e i non conformisti mi sembrano davvero i soli esseri in questo mondo che abbiano una coscienza pratica e attiva" - Jerome K. Jerome
    "Dun Dun DUNNN!" - Capitan Caos
    (per chiunque se lo fosse mai chiesto, il nick Bottomap è volutamente sgrammaticato)

  7. #7
    1djluigi non è in linea Novello
    Post
    14
    mi dà questo errore sul document...mi dice che il tipo document non esiste nel contesto corrente...ecco il codice
    .aspx
    codice:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Pagina senza titolo</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <object id="Object1" width="425" height="344">
        <param name="movie" value="http://www.youtube.com/v/GwGvA-VuVws&hl=it&fs=1"></param>
        <param name="allowFullScreen" value="true"></param>
        <param name="allowscriptaccess" value="always"></param>
        <embed src="http://www.youtube.com/v/GwGvA-VuVws&hl=it&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed>
        </object>
        <p>
            <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
        </p>
        </form>
    </body>
    </html>
    .aspx.cs

    codice:
    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    
    
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        
        protected void Button1_Click(object sender, EventArgs e)
        {
            var ogg = document.getElementById("Object1");
            var childs = ogg.childNodes;
            for (var i = 0; i < childs.length; i++)
            {
                var attr = childs[i].attributes;
                if (attr != null && attr.name != null)
                {
                    if (attr.name.value == "movie")
                    {
                        attr.value.value = "http://www.youtube.com/v/UG-PvFfgXys&hl=it&fs=1";
                    }
                }
            }
        }
    }

  8. #8
    L'avatar di bottomap
    bottomap non è in linea Moderatore Globale
    Post
    4,130
    Ciao,

    Probabilmente non ci siamo capiti bene... il codice che ti ho proposto è javascript lato client, che utilizza il DOM (Document Object Model)... quello che deve fare il tuo codice asp è solo generare il vecchio ed il nuovo path, poi la sostituzione la fai lato client, in modo che la pagina non debba ricaricarsi.
    Il codice lo piazzi in una function dentro a <script type="text/javascript"></script> e lo richiami dalla onclick sul bottone.

    Ciaociao


    Venite a farmi un saluto su http://www.bottomap.com/

    - Come porre domande in modo intelligente
    - Hai mai dato un'occhiata al
    Regolamento del Forum? Se la risposta è no, sarebbe proprio l'ora di farlo...
    - Il Crossposting è vietato dalla Netiquette.

    "Solo Puffin ti darà forza e grinta a volontà" - Charlie O'Brian
    "I gatti sono animali verso cui ho il massimo rispetto. I gatti e i non conformisti mi sembrano davvero i soli esseri in questo mondo che abbiano una coscienza pratica e attiva" - Jerome K. Jerome
    "Dun Dun DUNNN!" - Capitan Caos
    (per chiunque se lo fosse mai chiesto, il nick Bottomap è volutamente sgrammaticato)

  9. #9
    1djluigi non è in linea Novello
    Post
    14
    così quindi...solo che mi dice che manca la definizione dello spazio dei nomi swf...

    codice:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Pagina senza titolo</title>
    </head>
    <body>
        <script type="text/javascript">
        function swf ()
        {
        var ogg = document.getElementById("Object1");
            var childs = ogg.childNodes;
            for (var i = 0; i < childs.length; i++)
            {
                var attr = childs[i].attributes;
                if (attr != null && attr.name != null)
                {
                    if (attr.name.value == "movie")
                    {
                        attr.value.value = "http://www.youtube.com/v/UG-PvFfgXys&hl=it&fs=1";
                    }
                }
            }
        }
        </script>
        
        <form id="form1" runat="server">
        <object id="Object1" width="425" height="344">
        <param name="movie" value="http://www.youtube.com/v/GwGvA-VuVws&hl=it&fs=1"></param>
        <param name="allowFullScreen" value="true"></param>
        <param name="allowscriptaccess" value="always"></param>
        <embed src="http://www.youtube.com/v/GwGvA-VuVws&hl=it&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed>
        </object>
        <p>
            <asp:Button ID="Button1" runat="server" onclick="swf()" Text="Button" />
        </p>
        </form>
    </body>
    </html>

  10. #10
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Quote Originariamente inviato da 1djluigi Visualizza il messaggio
    così quindi...solo che mi dice che manca la definizione dello spazio dei nomi swf...
    Intervengo solo su questo punto. Stai usando un controllo targato runat = server, il che significa che l'evento onclick richiamerà una funzione lato server...nel tuo caso vuoi richiamare una funzione lato client (js). In tal caso devi far uso dell'evento onClientClick

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi