Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    168

    AS3: news da XML con anteprima e cliccandoci news "espansa"

    Salve a tutti il mio problema con il quale lotto da 1 mese è il seguente:

    in un filmato devo fare in AS3:

    1) leggere un xml e caricare alcuni campi in un campo di testo tipo

    data - luogo
    titolo
    anteprima news
    --------------------Leggi tutto

    data - luogo
    titolo
    anteprima news
    --------------------Leggi tutto

    etc etc.

    Cliccando sul Leggi Tutto accanto vorrei vedere tutto il mio file xml riferito a quell'evento. i campi di testo se ne hanno bisogno ci vorrei la barra di scorrimento, se sono corti < 500 px no.

    ho scritto il seguente codice:

    // IMPORTO I CONTROLLI E EVENTS
    import fl.controls.ScrollBar;
    import fl.events.ScrollEvent;

    // MI FACCIO IL CSS DEI CAMPI
    var format1:TextFormat = new TextFormat();
    format1.color=0xFFFFFF;
    format1.font="Arial";
    format1.size="12";

    // CAMPO DI TESTO DELLE ANTEPRIME
    var myTextField:TextField = new TextField();
    myTextField.width=300;
    myTextField.x=10;
    myTextField.y=0;
    myTextField.multiline=true;
    myTextField.wordWrap=true;
    myTextField.mouseWheelEnabled=true;
    myTextField.antiAliasType="advanced";
    myTextField.addEventListener(TextEvent.LINK, textInputHandler);

    // CAMPO DI TESTO DEL DETTAGLIO
    var myTextFieldDettaglio:TextField = new TextField();
    myTextFieldDettaglio.width=400;
    myTextFieldDettaglio.x=380;
    myTextFieldDettaglio.y=0;
    myTextFieldDettaglio.multiline=true;
    myTextFieldDettaglio.wordWrap=true;
    myTextFieldDettaglio.mouseWheelEnabled=true;
    myTextFieldDettaglio.antiAliasType="advanced";
    myTextFieldDettaglio.border=true;

    // MI CREO LA MASCHERA PER IL TESTO CON L'ELENCO
    var mcMask:MovieMaskMC = new MovieMaskMC();

    // MI CREO LA SCROLLBAR
    var sb:ScrollBar = new ScrollBar();

    // METTO SULLO STAGE TUTTO QUELLO CHE HO CREATO
    this.addChild(myTextField);
    this.addChild(myTextFieldDettaglio);
    this.addChild(mcMask);
    this.addChild(sb);


    // FUNZIONE CHE MASCHERA L'ELENCO
    function Maschera() {
    mcMask.x=myTextField.x;
    mcMask.y=myTextField.y;
    myTextField.mask=mcMask;
    sb.x=myTextField.x+myTextField.width;
    sb.y=myTextField.y;
    sb.height=mcMask.height;
    sb.enabled=true;
    sb.setScrollProperties(mcMask.height, 0, (myTextField.height-mcMask.height));
    sb.addEventListener(ScrollEvent.SCROLL, scrollMC);
    }

    // FUNZIONE CHE ASSEGNA IL CSS AI CAMPI DI TESTO E ME NE MASCHERA UNO
    function DaiStile() {
    myTextField.setTextFormat(format1);
    myTextFieldDettaglio.setTextFormat(format1);
    Maschera();
    }

    // FUNZIONE CHE SCROLLA L'ELENCO NEWS
    function scrollMC(event:ScrollEvent):void {
    myTextField.y=- event.position+mcMask.y;
    }

    // MI CARICO IL MIO XML
    var xmlLoader:URLLoader = new URLLoader();
    var xmlData:XML = new XML();

    xmlLoader.addEventListener(Event.COMPLETE, LoadXML);

    xmlLoader.load(new URLRequest("xml/eventiXml.xml"));

    function LoadXML(e:Event):void {
    xmlData=new XML(e.target.data);
    ParseEventi(xmlData);
    }

    function ParseEventi(eventi:XML):void {
    trace("XML Output");
    trace("------------------------");
    //FA il PARSE DI TUTTI GLI EVeNTI CONTROLLANDO LA LUNGHEZZA DEL FILE
    var Eventi:XMLList=eventi.EVENTO;
    var str_Evento:String="";
    var str_Dettaglio:String="";
    var str_Data:String="";
    var str_Titolo:String="";
    var str_Luogo:String="";
    var str_Anteprima:String="";
    var str_Foto:String="";
    var str_Dettagli:String="";
    var str_Foto_tn:String="";
    //var Prova:TextEvent=new TextEvent(TextEvent.LINK, false, false, "ciao");
    for (var i:int = 0; i < Eventi.length(); i++) {
    var ElementoEvento:XML=Eventi[i];
    str_Data=ElementoEvento.DATAA;
    str_Titolo=ElementoEvento.TITOLO;
    str_Luogo=ElementoEvento.LUOGO;
    str_Anteprima=ElementoEvento.ANTEPRIMA;
    str_Foto=ElementoEvento.FOTO;
    str_Dettagli=ElementoEvento.DETTAGLI;
    str_Foto_tn=ElementoEvento.FOTO_TN;


    str_Dettaglio=str_Data+" | "+str_Titolo+" | "+str_Luogo+" | "+str_Anteprima;
    //ElementoEvento.DATAA+" - "+ElementoEvento.TITOLO+"
    "+ElementoEvento.LUOGO+"
    ----------------------------------------------------

    ";
    str_Evento=str_Evento+ElementoEvento.DATAA+" - "+ElementoEvento.TITOLO+"
    "+ElementoEvento.LUOGO+"
    Leggi Dettagli ----------------------------------------------------

    ";
    }
    myTextField.htmlText=str_Evento;
    var altezza_testo:int=myTextField.textHeight+100;
    myTextField.height=altezza_testo;
    DaiStile();
    }


    // QUI HO FATTO UNA PROVA PER PASSARE I DATI DELLA NEWS AL CAMPO DETTAGLIO.. MA NON MI PRENDEVA IL
    QUINDI HO PROVATO COSI.. MA NON FUNZIONA
    function textInputHandler(linkEvent:TextEvent):void {
    var str:String = linkEvent.text;
    str = str.replace("|","
    ");
    this.myTextFieldDettaglio.htmlText = str;
    DaiStile();
    }

    ---------------------------------------------------
    Il mio problema è:

    1) le scrollbar le vorrei avere solo quando il campo di testo delle news è lungo più di 400 px
    2) quando passo il contenuto della news nel campo DETTAGLIO non riesco a mettere i BR tra i miei valori del XML che carico.

    grazie a tutti... e scusate se sono stata lunga.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    168
    noone?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.