• User Newbie

    loadmovie e data specifica

    Ciao a tutti.

    Chiedo un aiuto su questo problemino che vorrei risolvere.
    Ho un animazione creata con flash 8 che contiene e richiama al suo interno altri filmati swf con la funzion loadmovie e fin qui tutto ok.

    Bene, adesso vorrei che uno dei filmati che richiamo dentro a quello principale fosse caricato ad una certa data ed orario e poi sostituito con un altro ad un'altra data orarioe così via......... esiste uno script per poter "programmare" la visione di filmati swf in questo modo? Grazie a tutti quanti potranno essere d'aiuto, ed anche agli altri.


  • Super User

    ciao rrweb e benvenuto.
    La cosa è fattibile, mi dici per fvore se ti riferisci ad un orario dato dall'orologio oppure ad un intervallo di tempo?

    Cioè, se vuoi che ad ogni giorno alla stessa ora venga caricato un swf invece di un altro oppure vuoi caricare i filmati con degli intervalli ...

    Magari se mi fai un esempio capisco meglio 🙂


  • User Newbie

    Mah, la mi idea sarebbe:

    Poniamo di avere ho un filmato chiamato Totale.swf, al cui interno faccio caricare tuttolanno.swf e Offerte.swf.......... e fin qui come dicevo tutto ok...

    A pasqua voglio far caricare Pasqua.swf dal giorno 10 aprile per 5 giorni (o fino al 15 aprile) e poi tornare automaticamente a tuttolanno.swf .

    Load ed unload li ho già usati, ma sulla quatione date ho più difficoltà.

    Lavorando molto più con PHP mi verrebbe da ragionare così:

    Leggo la data dal server, creo un IF e se la data corrisponde carico il filmato pasqua.swf fino al giono 15 aprile, ELSE altrimenti carico sempre tuttolanno.swf.......

    Quindi caricare un filmato in un giorno stabilito e dargli una scadenza temporale passata la quale si torna alla situazione attuale o se ne imposta una ulteriore.

    Spero di essere stato un po' più chiaro e credo si possa creare qualcosa del genere, ma anche facendo ricerche in altri siti, non sono ancora riuscito a raccimolare qualcosa che si avvicini ad una soluzione.

    :bho:


  • Super User

    Ok, adesso ho capito.
    La cosa è fattibile e ti devi dedicare molto alla classe Date di actionscript.
    Lavorare su date e orari è davvero complesso con actionscript perchè se vuoi fare un lavoro come si deve devi recuperare la data dal server.

    Prima di caricare un swf chiami uno script php che ti restituisce come output il valore in millisecondi del tempo.
    Poi utilizzando la classe Date e facendo un pò di conti ti ricavi la data odierna e l'orario (se non conosci bene actionscript è davvero dura).
    E quì hai già il primo grosso problema, cioè devi utilizzare la classe loadVars di actionscript che non è affatto facile.
    Sostanzialmente per fare quello che vorresti devi avere un buon livello di actionscript.

    Visto che lavori con PHP il mio consiglio spassionato è questo:
    prima di caricare un swf chiami uno script PHP il quale è lui stesso a calcolare se è il momento di caricare quell'swf e a quel punto se lo è ti fai restituire in output un bel 'true' e poi con Flash lavoreresti solo il 'true' o 'false'.

    Se lo dovessi fare io chiederei i millisecondi al server e ci costruirei sopra la logica con actionsctip ma ci vuole un buon livello.
    Visto che tu lavori il PHP, perchè non crearti il 'grosso' della logica in PHP e poi inviare un true o false a Flash ?


  • User Newbie

    Innanzitutto grazie della risposta.....perchè non fare tutto con php? perchè cosi facendo non imparerei meglio actionscript........proverò e se proprio mi perdo faccio con php. Quando sistemo tutto ti faccio sapere..... grazie.


  • Super User

    Intanto potresti incominciare da quì:
    Actionscript che recupera i millisecondi dal server:

    
    var server:LoadVars=new LoadVars();
    server.onLoad =function(success)
    {
    	if (!success)
    	{
    		trace('PHP Server error!');
    	}
    	else
    	{
    		var serverTime:Number=this.time;
    		trace(serverTime);
    		//quì dovresti incominciare a lavorare con la classe Date
    	}
    }
    server.load('gettime.php');
    
    

    E questo (anche se lo saprai meglio di me) è il PHP che potresti utilizzare:

    
    <?php
    // ---------------------
    // prevent browser cache
    // ---------------------
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
    echo "time=" . time();
    ?>