automatischer Textumbruch in Scrollpane

Hi,

auch wenn Du den Text extern einlädst. kannst Du über die .width-Eigenschaft die Breite des Textfeldes beeinflussen (vorausgesetzt, es handelt sich um ein mehrzeiliges Textfeld und die .autoSize-Eigenschaft steht auf true). Direkt nach dem Laden kannst Du ja die Breite der ScrollPane abfragen (müsstest sogar über _parent eine lokale Referenz darauf bekommen).

Gruß
.
 
Der Zeilenumbruch funktioniert jetzt zwar, allerdings zeigt die ScrollPaine leider keinerlei Scrollbalken bei langen Texten an.

Das Problem ist ja, dass die Textfeldlänge sich je nach externen Textumfang ändert, dass jedoch die ScrollPaine nicht mitbekommt und darum auch keinen Scrollbalken anzeigt.
Wie gesagt, ein Textumbruch geht jetzt, aber Scrollen ist in der Scrollpaine nicht möglich.
Ich bin echt am verzweifeln!

Gruss,

Cornel
 

Anhänge

  • website2xml.zip
    93 KB · Aufrufe: 14
Hi,

wie gesagt: Durch den Aufruf der Methode ScrollPane.refreshPane() solltest Du das Problem beheben können (getestet).

BTW: Dein Code hat einige Trunctations (z.B. ist "label" ein reserviertes Wort). Zudem bringt der Aufruf von getTextExtent nicht viel, da diese Methode nichts festlegt, sondern nur Informationen zurückgibt.

Gruß
.
 
Hallo,

ersteinmal vielen Dank, dass Du Dir die Mühe gemacht hast, mein File zu analysieren. Die Überschneidungen habe ich soweit rausgenommen.
Dann habe ich versucht, per refreshPane() ein Neuladen der Inhalte in der ScrollPaine zu erreichen - leider erfolglos:
Code:
var clip2 = _root.attachMovie("LClip", "LClipInhalt", 1001);
clip2.textlabel.htmlText = this.inhalt;
_root.box_inhalt.setScrollContent(clip2);
_root.box_inhalt.refreshPane();

Warum funktioniert das nicht? Habe ich hier einen Fehler?

Viele Grüße,

Cornel.
 
k.A. - wie gesagt, die Komponenten sind manchmal etwas komisch. ;) Probier mal, mit dem Refresh ein oder zwei Frames zu warten:
PHP:
var clip2 = _root.attachMovie("LClip", "LClipInhalt", 1001);
clip2.textlabel.htmlText = this.inhalt;
_root.box_inhalt.setScrollContent(clip2);

var c = 0;
this.onEnterFrame = function() {
    if (c > 1) {
        _root.box_inhalt.refreshPane();
        delete this.onEnterFrame;
    }
    c ++;
}

Gruß
.
 
Ich habe es mal so ausprobiert:
Code:
var c = 0;
this.onEnterFrame = function() {
if (c > 2) {
_root.box_inhalt.refreshPane();
delete this.onEnterFrame;
}
c ++;
}

Und klappt jetzt wirklich super *freu*
Ich danke Dir wirklich sehr für den Tip

Cornel
 
Ich habe die XML-Datei noch ein wenig modifiziert:
Code:
<?xml version="1.0"?>
<inhalts_resources>
    <resource type="willkommen">
	<willkommen>Willkommen</willkommen> 
	 </resource>
    <resource type="inhalt1">
        <linktitle>Link1</linktitle>
        <beschreibung>Hier ist die Beschreibung1</beschreibung>
        <inhalt>Hier steht der Inhaltstext 1</inhalt> 
	<bild>pic1.jpg</bild><bild>pic2.jpg</bild><bild>pic3.jpg</bild>       
    </resource>
</inhalts_resources>

Hinzugekommen ist also die Rubrik "willkommen", die ohne Mauscklick in die ScrollPaine geladen werden soll - funktioniert nach meinem Beispiel natürlich nicht:
Code:
meinXML = new XML();
meinXML.ignoreWhite = true;
meinXML.load("website2.xml");
meinXML.onLoad = function(status) {
        if (status) {
                xmlpfad = this.firstChild.childNodes;
                createEmptyMovieClip("label_mc", 1);
                for (var i = 1; i < xmlpfad.length; i++) {
                        text_label = xmlpfad[i].firstChild.firstChild;
                        label_mc.attachMovie("LClip", "LClip" + i, i);
                        label_mc["LClip" + i].textlabel.autoSize = "left";
                        label_mc["LClip" + i].textlabel.htmlText = text_label;
                        label_mc["LClip" + i]._y = label_mc["LClip" + i]._height * i * 1.1;
                        label_mc["LClip" + i].daten = xmlpfad[i].firstChild.nextSibling.nextSibling.firstChild;
                        //
                        // 
                        //
                        label_mc["LClip" + i].beschreibung = xmlpfad[i].childNodes[1].firstChild.nodeValue;
                        label_mc["LClip" + i].inhalt = xmlpfad[i].childNodes[2].firstChild.nodeValue;
                        label_mc["LClip" + i].bild = xmlpfad[i].childNodes[3].firstChild.nodeValue;
						label_mc["LClip"].willkommen = xmlpfad[0].childNodes[1].firstChild.nodeValue;
                        //
                        //
                        //
                        label_mc["LClip" + i].onRelease = function() {
                                //
                                // Beschreibung und Inhalt wird in den Scrollpanes angezeigt
                                // 
                                var clip = _root.attachMovie("LClip2", "LClipBeschreibung", 1000);
                                clip.textlabel.htmlText = this.beschreibung;
                                _root.box_beschreibung.setScrollContent(clip);
								//
                                //
								//
                                var clip2 = _root.attachMovie("LClip", "LClipInhalt", 1001);
                                clip2.textlabel.htmlText = this.inhalt;
                                _root.box_inhalt.setScrollContent(clip2);
								//
                                // Refreshing der ScrollPaine nach 2 Frames
                                // 
								var c = 0;
								this.onEnterFrame = function() {
    							if (c > 1) {
        						_root.box_inhalt.refreshPane();
								_root.box_beschreibung.refreshPane();
        						delete this.onEnterFrame;
    							}
    							c ++;
								} 
                                //
								//
								//
								_root.box_bild.loadScrollContent(this.bild);
                                //
								//
                                //

                        };
                }
                box_links.setScrollContent(label_mc);
                
        }
};
//
// ScrollPaine-Eigenschaften
//
box_inhalt.boundingBox_mc._alpha = 0; 
box_inhalt.depthChild0._visible = false;

var clip3 = _root.attachMovie("LClip", "LClipWillkommen", 1001);
clip3.textlabel.htmlText = this.willkommen;
_root.box_inhalt.setScrollContent(clip3);
Ich hoffe, dass der Pfad zur XML -Info (willkommen) stimmt:
Code:
label_mc["LClip"].willkommen = xmlpfad[0].childNodes[1].firstChild.nodeValue;
Denn dann liegt der Fehler bestimmt am Aufrufen:
Code:
var clip3 = _root.attachMovie("LClip", "LClipWillkommen", 1001);
clip3.textlabel.htmlText = this.willkommen;
_root.box_inhalt.setScrollContent(clip3);

Gruss,

Cornel
 

Anhänge

  • willkommen.zip
    34,2 KB · Aufrufe: 11
Zuletzt bearbeitet:

Neue Beiträge

Zurück