Text automatisch scrollen

M

majinz

Hallo

So ich hab ein weiteres Problem. Diesmal ist es wie ich hoffe nicht so kompliziert.

Im Grunde brauche ich einen Textscroller. Allerdings soll es keine Pfeile geben, sondern der Text soll automatisch Scrollen, nur über einen Scrollbalken kann man selber in das geschehen eingreifen.
Dank diesem Thread den die Suchfunktion ausgespuckt hab ich den Scrollbalken geschafft.

Jetzt ist meine Frage: Wie mache ich das der Text automatisch scroll und vor allem soll der Scrollbalken immer mitgehen.

Vielen Dank schon im Vorraus.

Florian
 
Hi,

bevor ich blind drauflosposte: Soll es ein Textfeld sein, das über die .scroll-Eigenschaft zeilenweise gerollt wird, oder kommt da unter Umständen noch etwas anderes rein (Bilder MovieClips etc.)?

Gruß
.
 
Da kommt unter Umständen oder ziemlich sicher sogar was anderes rein. Ich brauche das nicht nur für Texte sondern werd es auch für eine Bildergalerie brauchen.
 
Hi,

ok, ich habe mal eben meinen Scroller um eine entsprechende Funktion erweitert.

Du rufst im Prinzip kontinuierlich die Funktion scroller.scrollBy auf. Sobald der Scroller an seine Grenzen trifft, wird in der Callback-Funktion die Scrollrichtung umgekehrt. Das automatische Scrollen wird so lange unterbrochen, wie Du den Scrollbalken selbst betätigst.

Gruß
.
 

Anhänge

  • autoscroll2.zip
    21,3 KB · Aufrufe: 114
Wow, Vielen Dank, ist genau das was ich gesucht habe :)

Ich bin dir schon wieder einmal zu großem Dank verpflichtet.

Florian
 
Hallo

Auch wenn dein Scroller perfekt für meine Zwecke geeignet ist, habe ich noch eine Frage dazu:

Wie kann ich das aussehen des Scrollbalken (den man bewegen kann) verändern.
Dieser Balken soll bei mir aus nur zwei horizontalen Sprichen bestehen. Irgendwie hab ich das Gefüll das du den Scroller dynamisch zeichnest. Wenn ich die entsprechenden Zeilen Funktion reDraw (scroller > scroll_slide) auskommentier ist gar kein Balken mehr da. Könntest du mir kurz erklären wie ich das ändere.

Florian

PS: Ansonsten ist der Scroller echt super. Hab zwar ein bisschen gebraucht bis ich die funktionsweise verstanden habe, aber echt ein Klasse Teil.
 
Die Funktion reDraw() zeichnet bei mir nur ein paar horizontale Striche in den Anfasser. Da der Balken ja skaliert wird, kann sich dort nichts befinden, was aus Linien bestehe, da diese beim Mitskalieren oft unschön verzerrt werden. Alle anderen sichtbaren Objekte des Scrollers befinden sich im Ordner "SCROLLER ASSETS" in der Bibliothek. Für den Anfasser ist das z.B. nur eine rechteckige Fläche ("sliderbar"), die sich im MC "scroll_slide" (der eigentliche Anfasser) befindet. Willst Du wirklich nur zwei horizontale Linien sehen (ich nehme an, jeweils an der oberen und der unteren Kante des Anfassers), ändere die Funktion reDraw() einfach so ab:
PHP:
function reDraw() {
	frame.clear();
	frame.lineStyle(1, 0x000000, 90);
	frame.moveTo(0, 0);
	frame.lineTo(bar._width, 0);
	frame.moveTo(0, bar._height);
	frame.lineTo(bar._width, bar._height);
}
Dem MC "bar" kannst Du einen niedrigeren Alphawert geben, wenn der eigentliche Balken nicht sichtbar sein soll.

Gruß
.
 
Hallo,

Die Höhe des Anfassers soll nicht verändert werden. Die soll fix sein und die zwei Linien sollen einen fixen Abstand (ca. 10px) haben. Man soll den Scrollbalken aber auch bewegen können, wenn man ihn zwischen den zwei Linien berührt.

Florian

Edit: Bei dem von dir geposteten Script meldet er zwei Fehler. Hab da aber keinen gefunden.
Code:
**Fehler** Symbol=scroll_slide, Ebene=code, Bild=1:Zeile 2: Syntaxfehler.
     frame.clear(); 

**Fehler** Symbol=scroll_slide, Ebene=code, Bild=1:Zeile 3: Syntaxfehler.
     frame.lineStyle(1, 0x000000, 90); 

Anzahl der ActionScript-Fehler: 2 	 Gemeldete Fehler: 2
 
Hi,

die Fehler entstehen manchmal, wenn Du Code per Copy&Paste in den AS-Editor einfügst. Tipp es per Hand ab, und alles wird gut. ;)

Ich sprach übrigens von der Funktion "reDraw" im "scroll_slide", nicht im Scroller selbst.

Wie hoch soll denn der Anfasser sein? Ebenfalls 10 Pixel? Dafür ist in der Tat die reDraw()-Funktion im "scroller" zuständig. So kannst Du den Anfasser auf eine fixen Größe einstellen:
PHP:
function reDraw() {
	if (!dir) {
		var ratio = ct._height / mask._height;
	} else {
		var ratio = ct._width / mask._width;
	}
	var oh = slider.bar._height;
	slider.bar._height = 10;
	slider.reDraw();
	if (ratio > 1) {
		slider._visible = true;
	} else {
		slider._visible = false;
	}
}

Gruß
.
 
Hallo

Hab deinen Code kopiert bzw. abgeschrieben aber leider passiert nichts.

habs in scroller > scroll_slide kopiert.

Und noch was. Der Scroller schneidet mir unten immer ein bisschen (eine halbe Zeile) ab.

Florian
 

Neue Beiträge

Zurück