Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    5

    NewsTicker aiuto ricaricare

    Ciao a tutti,
    premetto che non sono un esperto di actionscript ma per lavoro devo realizzare un semplice news ticker a scorrimento orizzontale su una sola riga che prelevi il testo da un file .xml o .txt esterno..e fin quì devo dire che, anche grazie alle altre discussioni e ai forum, non ci sono problemi. L'swf finale farà parte di un video informativo per un ufficio (quindi non dovrà andare online) e siccome il file .txt o .xml verrà aggiornato di continuo, la mia esigenza è che il file venga ricaricato ad ogni fine scorrimento senza dover far ripartire l'swf per poter leggere le ultime modifiche. Sapreste indirizzarmi o darmi una mano?
    Per comodità e per evitare perdite di tempo vi incollo il codice che ho utilizzato:

    questo al primo frame:

    Codice PHP:
    stop();
    var 
    xmlFile:String = new String("news.xml");
    var 
    parsed:Array = new Array();
    var 
    parser:XML = new XML();
    parser.ignoreWhite true;
    parser.onLoad = function(ok) {
        if (
    this.loaded) {
            var 
    temp this.firstChild.childNodes;
            for (var 
    0i<temp.lengthi++) {
                
    parsed.push({date:temp[i].childNodes[0].firstChild.toString(), itle:temp[i].childNodes[1].firstChild.toString()});
                if(
    i>=temp.length-1gotoAndStop(2);
            }
        } else {
            
    trace("Impossibile aprire "+xmlFile);
        }
    };
    parser.load(xmlFile); 
    e questo al secondo frame (dove su un altro livello è presente il mc "newsticker" con il campo di testo dinamico e la maschera):

    Codice PHP:
    stop();
    newsticker.testo.autoSize "left";
    newsticker.testo.html true;
    for (var 
    0k<parsed.lengthk++) {
        
    newsticker.testo.htmlText += "[url='"+parsed[k].url+"']"+parsed[k].date+" "+parsed[k].title+"[/url] - ";
    }
    MovieClip.prototype.animate = function() {
        var 
    limit this.mask._width;
        var 
    end = (this.testo._width)*-1;
        
    this.testo._x limit;
        
    this.= new mx.transitions.Tween(this.testo"_x"mx.transitions.easing.None.easeNonelimitendthis.testo._width/20true);
        
    this.t.onMotionFinished this.t.start;
    };
    newsticker.animate(); 
    Spero mi possiate dare una mano e vi ringrazio anticipatamente per la disponibilità.

    Ciao
    Diazapam

  2. #2
    ciao se ho capito ,basta che sostituisci :

    codice:
    var xmlFile:String = new String("news.xml");
    con
    codice:
    var xmlFile:String = new String("news.xml?r="+random(999999));

    -Nextart.it Graphic Solutions

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    5
    ciao Nextart, grazie per la risposta.

    Ho provato a sostituire i codici ma ricevo un errore di impossibilità a trovare il file news.xml..così:

    " Impossibile aprire news.xml?r=317057
    Error opening URL
    "file://......../newsticker%20/news.xml?r=317057" "

    Ovviamente l'URL e il nome del file .xml sono rimasti invariati.


    ps.: scusa se prima ho incollato il codice AS utilizzando la box PHP..che invece non sto utilizzando.

    Grazie ancora.

    Ciao
    Diazapam

  4. #4
    il file swf se lanciato da flash ovviamente ti da errore, quella scritta serve per la cache del browes, lo inganni dicendogli ogni volta di asprire un file diverso.....
    quindi esegui il file dal browser e non dovrebbe dare errori.......

    ciao
    -Nextart.it Graphic Solutions

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    5
    Purtroppo non va ugualmente...nel senso che è vero che non mi da errore, ma in ogni caso, se durante lo scrolling modifico il testo dell'.xml, questo non mi compare modificato allo scrolling successivo ma per leggerlo devo ricaricare la pagina.

    Un altro problema è che il file swf dovrà essere utilizzato offline tramite un swf player, non tramite browser.

    Scusa per il disturbo.

    Ciao.

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    quel codice mi è familiare

    se vuoi ricaricare in tempo reale i dati dal file xml, ad ogni fine scorrimento, devi tornare al primo frame, modificando questa riga presente nel secondo frame -> this.t.onMotionFinished = this.t.start; in

    this.t.onMotionFinished = function(){
    _root.gotoAndPlay(1);
    }


    ovviamente se il newsticker non viene caricato da un altro swf principale

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    5
    Ciao and80.
    Grazie per la risposta, ho apportato la modifica e funziona tutto.
    Immaginavo che fosse una cosa semplice e che bisognava intervenire su quella riga.
    In effetti, a questo punto, credo che quel codice sia familiare a tante persone .

    Grazie ancora,
    ciao.

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    5

    adattamento da xml a txt

    Scusate ancora,
    ho avuto la necessità di modificare lo script di cui sopra per il caricamento di un file txt invece che xml.
    Ci sono riuscito ma ho qualche problema sulla tween.
    In particolare lo scorrimento risulta essere tagliato..come se fosse errata la var end.
    Questa cosa mi serve per lavoro e anche relativamente in fretta quindi sono disposto anche a pagare qualcuno per avere l'swf funzionante.

    allego i codici:

    primo frame
    codice:
    stop();
    var dati:LoadVars = new LoadVars();
    dati.onLoad = function():Void {
    _root.newsticker.testo.text = dati.testo;
    	};
    dati.load("news.txt");
    
    gotoAndStop(2);
    secondo frame
    codice:
    stop();
    newsticker.testo.autoSize = "left";
    MovieClip.prototype.animate = function() {
    	var begin = this.mask._width;
    	var end = (this.testo._width)*-1;
    	this.testo._x = begin;
    	this.t = new mx.transitions.Tween(this.testo, "_x", mx.transitions.easing.None.easeNone, begin, end, this.testo._width/20, true);
    	this.t.onMotionFinished = function(){
    	_root.gotoAndPlay(1);
    }
    };
    newsticker.animate();
    Spero che mi possiate dare una mano e vi ringrazio tutti per l'aiuto.

    Ciao.
    Diazapam

  9. #9
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    verifica che dove taglia il filmato, non ci sia qualche carattere particolare tipo una & o un +, che possano dar fastidio a flash

    inoltre il primo codice

    stop();
    var dati:LoadVars = new LoadVars();
    dati.onLoad = function(ok):Void {
    if(ok){
    _root.newsticker.testo.text = dati.testo;
    _rootgotoAndStop(2);
    }
    };
    dati.load("news.txt");

    ps. ora non ricordo bene il procedimento con XML, e non vorrei ricordare male... ma il campo di testo del newsticker esiste anche nel frame 1? altrimenti non va bene il procedimento

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.