Scroll-Button nur bei Bedarf

Bolte

Grünschnabel
Hallo,

ich möchte verschiedene Texte in ein dynamisches Textfeld laden,
in dem ich die Möglichkeit habe den Text zu scrollen.
Soweit noch alles OK.

Nun möchte ich die Scroll-Button nur einblenden, wenn es auch was zu scrollen gibt,
sprich der Text zu lang ist für das html-Textfeld.

Gibt es da eine Abfragemöglichkeit? Ich habe leider im Forum nichts gefunden...

Gruß,
Bolte
 
Hi.

Ich würde es so machen: Das Textfeld packst du in einen Movieclip. Das hat im Endeffekt meines Wissens nach nur Vorteile. Jetzt kannst du nämlich die Höhe des Textfeldes (eigentlich des Movieclips) per _yscale abfragen und ggf. den Button sichtbar machen:

PHP:
if(_root.textfeld._yscale > 500) { // 500 ist der Beispielwert
_root.Scrollbutton._visible = true;
}

Natürlich musst du den Scrollbutton beim Laden des Films durch _root.Scrollbutton._visible =false;
unsichtbar machen.

Mfg
loeff
 
Hallo,

@ loeffellutscher: danke für die schnelle Antwort,
aber leider funktioniert es bei mir,
auch nach längerem probieren nicht .

Irgendwie kann ich nicht auf die textfield._yscale-Variable zugreifen.
Ich habe zur Kontrolle ein Textfeld erstellt mit dem yscale-Wert als Variablen,
doch bekomme keinen Wert ausgegeben

Also, ich habe im MC ´info_box´ einen MC ´mc_text_box´ für das TextField ´text_box´ erstellt.
Und folgendes Script dem MC ´mc_text_box´ mitgegeben...

PHP:
onClipEvent (enterFrame) { 
        if(_root.info_box.mc_text_box.text_box._yscale > 250) { 
                _root.info_box.key_up._visible = true;
                _root.info_box.key_down._visible = true;
        }
}

Hat jemand eine Idee, wo mein Fehler liegt?

Gruß,
Bolte
 
Moin!

Sorry. Ich hatte das (wie immer ....) verwechselt. Die _yscale-Eigenschaft gibt das ganze in Prozent aus, also z.B. _yscale = 50; halbiert den entsprechenden Movieclip. Gemeint war natürlkich die _height - Eigenschaft.

In deinem Codeschnipsel ist aber auch ein Fehler. Du verwendest das enterFrame - Clip Event. Dieses würde ich nur verwenden, wenn sich der Inhalt des Textfeldes ständig ändert. Deswegen verwende ich im Beispiel das load-Clip Event:

PHP:
 onClipEvent (load) { 
        if(_root.info_box.mc_text_box.text_box._height > 250) { 
                _root.info_box.key_up._visible = true; 
                _root.info_box.key_down._visible = true; 
        } 
        else {
                _root.info_box.key_up._visible = false; 
                _root.info_box.key_down._visible = false; 
       }
}

Mfg
loeff

edit: Hatte "Mfg" und "Moin" vergessen. Das darf natürlich nicht fehlen :-)
edit #2: das visible = false; hab ich eingefügt.
 
Zuletzt bearbeitet:
Hi,

mal ´ne generelle Frage...
Mein TextField wird nicht wärend der Laufzeit instanziert,.
Wenn ich also ein TextField in einem MC aufziehe,
so hat das TextField ja eine Breite und Höhe.

Auch wenn ich zur Laufzeit TextField.autoSize = "true" setze,
so ändert sich die Höhe meines FextFields nicht
und passt sich nicht an die Menge des geladenen Textes an...

Daher kann ich die .height-Eigenschaft nicht abfragen...

Wie kann ich meinem TextField diese Eigenschaft mitgeben?

Gruß,
Bolte
 
Moin (mal wieder)!

Also bei mir funktioniert es, wenn ich es so mache (z.B.):

PHP:
haha.autoSize = true;
muah = "blalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblablablalblabla";

Und die Einstellungen des Textfeldes sind angehängt.

Mfg
loeff
 

Anhänge

  • unbenannt.jpg
    unbenannt.jpg
    19,8 KB · Aufrufe: 51
Zurück