Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    186

    richiamo da html funzione dentro swf

    Ciao a tutti. Una curiosità:

    Se scrivo una funzione javascript dentro una swf, diciamo un apripopup, la posso richiamare dalla pagina html che la ospita, e in che modo?

    Ho provato ad inserire nella timeline questo:

    MovieClip.prototype.apriPopup = function (nome, titolo, lar, alt, x, y, feat)
    {
    getURL("javascript:window.open('" + nome + "','" + titolo + "','width=" + lar + ",height=" + alt + ",screenX=" + x + ",left=" + x + ",screenY=" + y + ",top=" + y + "," + feat + "');void(0);");
    };

    e nalla html che ospita il swf questo:

    <a href="javascript:apriPopup('test.html','......');> apri</a>

    grazie

  2. #2
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    ma a che pro??
    forse ho capito male per cosa ti serve....
    ma non è + semplice se metti il tuo codice apripopup nell'HTML e lo richiami sempre da HTML???

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    186
    Se l'ho chiesto è perchè nn posso fare altrimenti...

  4. #4
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    indubbiamente...
    ma non siamo onniscienti qui, quindi se spieghi meglio a cosa ti serve, se hai limitazioni etc...
    probabilmente e dico probabilmente uno capirebbe meglio. dal tuo post precedente non sembrava che non potessi fare altrimenti, ma + una curiosità, quindi ti ho risposto di conseguenza.
    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    186
    ho un fil xml che passa i dati (relativi a delle immagini con preview) al swf tramite CDATA


    <IMAGE>
    <NAME>S82.JPG</NAME>
    <CAPTION>
    <![CDATA[<div>BRACCIALE ROSA DEI VENTI
    € 342,00</div>]]>
    </CAPTION>
    </IMAGE>

    con CDATA posso inserire in corrispondenza di ogni immagine dei commenti, anche formattabili con dell'HTML, per cui anche dei link <a href>. Fin qui ok.

    Se però al link, oltre questo voglio specificare una funzione tipo javascript window.open, in swf il link non viene visualizzato. Ho già provato ad inserire una function apriPopup all'inizio della pagina xml col solo richiamo javascript:apriPopup() dal CDATA ma nn serve. E' evidente che poteva essere un tentativo stupido da parte mia, nn conoscendo XML.

    Ho pensato però che, come riscontrato, se da swf si può richiamare una funzione scritta tra i tag head della pagina html che lo ospita, non potrebbe funzionare anche al contrario, cioè da html (incluso in CDATA) richiamare una funzione scritta su swf ?

    swf:
    MovieClip.prototype.apriPopup = function (nome, titolo, lar, alt, x, y, feat)
    {
    getURL("javascript:window.open('" + nome + "','" + titolo + "','width=" + lar + ",height=" + alt + ",screenX=" + x + ",left=" + x + ",screenY=" + y + ",top=" + y + "," + feat + "');void(0);");
    };

    html
    <a href="javascript:apriPopup('test.html','......');> apri</a>

    Spero di essere stato chiaro. Scusatemi le lacune di prima.

  6. #6
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    ok.. adesso si capisce un po meglio

    cmq per richiamare funzioni da javascript verso un swf interno alla pagina devi utilizzare la classe ExternalInterface, con la quale "registri" la funzione che vuoi chiamare dall'esterno...

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    186
    Dunque al momento ho inserito in swf questo.

    import flash.external.*;
    ExternalInterface.addCallback("callapriPopup",null ,apriPopup);

    function apriPopup(){
    getURL("javascript:window.open('richiesta.php','', 'width=360,height=500,status=no'); void(0);");
    }



    ...e lo richiamo da html con questo

    ordina

    c'è di sicuro nel richiamo qualcosa di errato...

  8. #8
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    Originariamente inviato da wimkieft
    Dunque al momento ho inserito in swf questo.

    import flash.external.*;
    ExternalInterface.addCallback("callapriPopup",null ,apriPopup);

    function apriPopup(){
    getURL("javascript:window.open('richiesta.php','', 'width=360,height=500,status=no'); void(0);");
    }



    ...e lo richiamo da html con questo

    ordina

    c'è di sicuro nel richiamo qualcosa di errato...
    AS
    import flash.external.*;
    ExternalInterface.addCallback("apriPopup",this,apr iPopup);
    function apriPopup(){
    getURL("javascript:window.open('richiesta.php','', 'width=360,height=500,status=no'); void(0);");
    }
    FLASH DENTRO ALL'HTML
    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="550" height="400" id="image_ei" align="middle">
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="movie" value="myswf.swf" />
    <param name="quality" value="high" />
    <param name="bgcolor" value="#ffffff" />
    <embed src="myswf..swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="image_ei" align="middle" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
    </object>

    CHIAMATA DA JS
    <script language="JavaScript">
    <!--
    function getMovie(movieName) {
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window[movieName] : document[movieName];
    }

    function doCall() {
    thisMovie("myswf").apriPopup();
    }
    // -->
    </script>

    clicca

    nn so perkè ma l'editor mi mette - tra java e script... toglilo... ciauz

    prova... non posso provarlo quindi nn sò se funge!!
    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    186
    ho fatto tutto come hai deto adattando cosi:

    nel primo fotogramma dell'swf ho messo:


    import flash.external.*;
    ExternalInterface.addCallback("popup",this,popup);
    function popup(){
    getURL("javascript:window.open('richiesta.php','', 'width=360,height=500,status=no'); void(0);");
    }

    su'html che ospita swf ho messo (assegnando nome "video" al file viewer.swf:

    <script language="JavaScript">
    <!--
    function getMovie(video) {
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window[video] : document[video];
    }

    function doCall() {
    thisMovie("viewer.swf").popup();
    }
    // -->
    </script>

    ....

    + questo:

    <script type="text/javascript">
    var fo = new FlashObject("res/viewer.swf", "video", "100%", "100%", "6", "#ffffff", "");
    fo.addParam("quality", "best");
    fo.addParam("allowScriptAccess", "sameDomain");
    fo.write("flashcontent");
    </script>


    infine sul file XML tra i tag CDATA ho messo:

    ordina

    risultato: non funziona...

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    186
    IE mi dice che qui

    thisMovie("viewer.swf").popup();

    è previsto un oggetto...mah

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.