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.