Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 14 su 14

Discussione: leggere altro da rss

  1. #11
    praticamente io ho due fotogrammi (il primo e il secondo) dove si presenta il codice per la visualizzazione e lo scroll orizzontale dell'rss.

    sul primo fotogramma ci sta questo:
    Codice PHP:
    stop();
    // creo una stringa a cui assegno il nome del file esterno da caricare
    var xmlFile:String = new String("http://www.repubblica.it/rss/homepage/rss2.0.xml");
    // inizializzo un array, che utilizzerò come oggetto contenitore dei dati provenienti da XML
    var parsed:Array = new Array();
    // inizializzo un'istanza della classe XML per la lettura dei dati esterni
    var parser:XML = new XML();
    // attivo la proprietà ignoreWhite dell'istanza di XML, in modo di evitare che gli spazi vuoti del documento esterno
    // interferiscano con il parsing dei nodi XML
    parser.ignoreWhite true;
    // richiamo l'evento onLoad della classe XML che sancisce l'esatto momento in cui Flash ha ricevuto i dati dall'esterno -> if(this.loaded)
    // oppure non è stato in grado di comunicare con il file XML, restituendo l'errore conseguente -> "Impossibile aprire news.xml"
    parser.onLoad = function(ok) {
        if (
    this.loaded) {
            
    // creo una variabile temporanea a cui associo tutti i nodi <item> sotto forma di elementi di un array
            
    var temp this.firstChild.childNodes;
            
    // su questa variabile temporanea faccio un ciclo
            
    for (var 0i<temp.lengthi++) {
                
    // ed inserisco ad ogni iterazione un object all'interno dell'array
                // l'object sarà costituito dagli elementi presenti nel file XML
                // "data" che corrisponde al primo elemento di ogni nodo item (gli array hanno base 0, quindi il primo nodo sarà [0])
                // "title" corrisponde al secondo elemento, quindi [1]
                // "url" corrisponde al terzo elemento, quindi [2]
                
    parsed.push({date:temp[i].childNodes[0].firstChild.toString(), title:temp[i].childNodes[1].firstChild.toString(), url:temp[i].childNodes[2].firstChild.toString(), copyright:temp[i].childNodes[3].firstChild.toString()});
                if (
    i>=temp.length-1) {
                    
    gotoAndStop(2);
                }
            }
        } else {
            
    trace("Impossibile aprire "+xmlFile);
        }
    };
    // dopo aver definito l'evento onLoad, attivo il caricamento del file esterno, con il metodo load della classe XML
    parser.load(xmlFile); 
    sul secondo fotogramma questo:
    Codice PHP:
    // ancora una volta stoppiamo la timeline
    stop();
    // utilizziamo la proprietà autoSize della classe TextField, per fare in modo che il campo si adatti alla dimensione del contenuto
    newsticker.testo.autoSize "left";
    // rendiamo il nostro campo html=true per fare in modo che i tag html che inseriremo vengano letti come tali
    newsticker.testo.html true;
    // applichiamo un ciclo in cui leggeremo ogni valore di tipo object inserito nell'array "parsed"
    for (var 0k<parsed.lengthk++) {
        
    // aggiungiamo il testo al campo con queste righe:
        //
        // aggiungo l'indirizzo della pagina con la notizia intera, accedendo alla proprietà "url" di ogni object contenuto nell'array
        // aggiungo la data accedendo alla proprietà "date" di ogni object contenuto nell'array
        // aggiungo il titolo accedendo alla proprietà "title" di ogni object contenuto nell'array
        
    newsticker.testo.htmlText += "[url='"+parsed[k].url+"']"+parsed[k].date+" "+parsed[k].title+" "+parsed[k].date+" "+parsed[k].copyright+"[/url] - ";
    }
    // creo una funzione prototipo per la classe MovieClip
    MovieClip.prototype.animate = function() {
        
    // inizializzo una variabile che tenga traccia della dimensione massima della maschera (nel nostro caso è 200)
        // in questo modo ottengo un punto di partenza da cui far cominciare l'animazione
        
    var limit this.mask._width;
        
    // inizializzo una variabile che mi indichi il punto in cui l'animazione dovrà finire
        // visto che l'animazione va da destra a sinistra, il valore sarà negativo, per ottenerlo moltiplico un vaolre positivo per -1
        
    var end = (this.testo._width)*-1;
        
    // sposto il campo di testo all'inizio del percorso di animazione
        
    this.testo._x limit;
        
    // applico la tween che muove il campo di testo da "limit" a "end"
        
    this.= new mx.transitions.Tween(this.testo"_x"mx.transitions.easing.None.easeNonelimitendthis.testo._width/20true);
        
    // ogni volta che l'animazione finisce, viene fatta ricominciare da capo
        
    this.t.onMotionFinished this.t.start;
    };
    // richiamo la funzione sul nostro MovieClip "newsticker"
    newsticker.animate();
    // inizializzo una variabile booleana per verificare se quando il mosue si muove è sul newsticker e di conseguenza ne deve "uscire fuori" (rollout)
    var rollout:Boolean false;
    // creo un oggetto "ascoltatore" che tiene traccia degli eventi applicabili alla classe Mouse
    var mouseListener:Object = new Object();
    // utilizzo l'evento onMouseMove per verificare se il mouse si trova in un determinato momento fuori/dentro newsticker
    mouseListener.onMouseMove = function() {
        
    // se la variabile rollout è false, vuol dire che sto entrando (rollover) nel clip newsticker
        // se invece è true, vuol dire che ne sto uscendo (rollout)
        
    if (!rollout) {
            
    // se vado sul newsticker blocco l'animazione (if)
            // se ne esco, la riattivo (else)
            
    if (newsticker.mask.hitTest(_xmouse_ymouse)) {
                
    newsticker.t.stop();
            } else {
                
    newsticker.t.resume();
                
    rollout true;
            }
        } else {
            
    // quando rientro nel newsticker riabilito il primo blocco if/else
            
    if (newsticker.mask.hitTest(_xmouse_ymouse)) {
                
    rollout false;
            }
        }
    };
    // aggiungo l'ascoltatore alla classe Mouse, in modo da fargli verificare gli eventi sopra descritti
    Mouse.addListener(mouseListener); 
    sicuro sbaglio qualche stupidaggine anche xkè è tutto commentato.

  2. #12
    si lo avevo capito
    ma nn ti funge come ti avevo postato??
    nella lettura

    parsed.push({date:temp[i].childNodes[0].firstChild.toString(), title:temp[i].childNodes[1].firstChild.toString(), url:temp[i].childNodes[2].firstChild.toString(), description:temp[i].childNodes[2].childNodes.toString(),copyr:temp[i].childNodes[3].firstChild.toString()});




    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  3. #13
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    è ovvio che non funziona, quel parsing non è stato realizzato per un RSS, ma per un xml realizzato ad hoc per l'esempio

    per farlo funzionare con l'RSS bisogna adattare il parsing

  4. #14
    qualcuno di buon cuore potrebbe adattarlo?
    sempre che non ci voglia un botto di tempo?
    io sono inguaiato.
    oppure mi segnalate qualche esempio di rss reader che scrolla in orizzontale?

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.