Movieclip horizontal scrollen

mila_black

Grünschnabel
Hallo, ich habe eine Frage zum Scrollen von Movieclips:
auf meinem Bildschirm befindet sich ein Movieclip der eine lange Leiste von rechts nach links darstellt. Auf dieser Leiste befinden sich Jahreszahlen von 1995 bis 2030. Der Movieclip ist viel länger in seiner Ausdehnung, als er von dem tatsächlichen Screen angezeigt werden kann. Nun möchte ich, daß man immer zu einer bestimmten Jahreszahl scrollen kann: also der Movieclip soll sich nach links bewegen, wenn ich in den linken Bereich der Leiste mit meiner Maus fahre und er soll sich nach rechts bewegen, wenn ich mit meiner Maus in den rechten Bereich der Leiste fahre. Das ganze würde ich über unsichtbare Button lösen, die ich im linken und rechten Bereich der Kalenderleiste, also des Movieclips platziere. Nur weiß ich nicht, wie ich den Scrollbefehl schreibe. es muß ja eine bestimmte Position des Movieclips ausgelesen werden? Ich hab schon alles mögliche ausprobiert, muß aber auch sagen, daß ich nicht so große Ahnung von Actionscript habe. Es wäre schön, wenn ihr mir helfen könntet.
Viele Grüße, mila_black
 
Keine Angst vor der Enter-Taste.

Absätze erleichtern das Lesen ungemein.

Ganz allgemein kann man mit _root._xmouse und _root._ymouse die Position der Maus abfragen.

Und mit
mc._x = 20;
mc._y = 300;
legt man die Filmsequenz mit dem Instanznamen "mc" auf die Koordinaten 20 / 300.

Je nach dem wo die Bereiche sind bei denen sich was wie bewegen soll muß man die Befehle entsprechend miteinander verbinden.

Hier gibt´s das ganze auch schon fertig als fla-Datei in einigen Versionen:

http://www.flashkit.com/movies/Scripting/Scrolling/Accele_S-Greg_Mey-87/index.php
http://www.flashkit.com/movies/Animations/Scratchpad/Interfaces/Sliding_-Andre_Me-392/index.php
http://www.flashkit.com/movies/Scripting/Scrolling/horizont-matt_rob-6157/index.php
 
Hallo,

soweit ich dahinterblicke (bin auch noch ziemlich am Anfang mit diesem Thema), gibt es (mindestens) zwei Lösungsansätze:

1. Erstelle den Movieclip so, dass er auf seiner Zeitleiste einmal von ganz links bis ganz rechts scrollt und danach umgekehrt (wichtig: ein stop() an der Stelle, wo er umkehrt. Das kann über zwei Bewegungs-Tweenings gemacht werden.
Wandle alle Bilder an den Stellen, wo der Clip anhalten kann (also ein Datum mittig angezeigt wird) in Schlüsselbilder um. In diese Schlüsselbilder muss nun jeweils ein Code rein, der den Clip anhält, wenn die Maus die unsichtbare Schaltfläche verlässt (in etwa: if (_root.maus_draussen) stop();). die Variable maus_draussen wird in Abhängigkeit von der Mausposition in der Hauptzeitleiste gesetzt.
In den unsichtbaren Schaltflächen muss dann entschieden werden, ob der Clip nach links oder rechts rollen soll.

2. Über ActionScript: Der Clip besteht aus 4 Bildern
Bild 1: if (_root.maus_ueber_button_L) this._x--;
Bild 2: gotoAndPlay(1);
Bild 3: if (_root.maus_ueber_button_R) this._x++;
Bild 4: gotoAndPlay(3);

In den unsichtbaren Schaltflächen sollte nun Code hinein, der den Clip auf das richtige Bild setzt: on (rollOver) {movie_clip.gotoAndPlay(1)}
Verlässt die Maus die Schaltflächen, so kann man zum anhalten den Clip auf ein (fünftes) Bild setzen, in dem nur ein stop()-Befehl steht: on (rollOut) {movie_clip.gotoAndStop(5)}

Diese Erklärung ist zugegebenermaßen etwas kompakt und unverständlich - ich werde gleich mal ein Beispielscript posten, das ist vielleicht etwas einfacher.

d.a.t.i.c.
 
Hier ein kleines Beispiel.

Beachte den Code in den Schaltflächen (but1 und but2), sowie den Code in den Bildern des Objektes scroller.

Das kann man natürlich noch ausbauen und die "Maushand" über den Schaltflächen unterdrücken (but1.showHandCursor=false).

P.S.: Ich habe die Transparenz der Schaltflächen auf 30% gesetzt, damit man sie einfacher erkennen kann -> sollte dann auf 0 gesetzt werden.

d.a.t.i.c.
 

Anhänge

  • scroller.zip
    3,1 KB · Aufrufe: 556
Vielen Dank für die Antworten. Ich werde es gleich mal ausprobieren …
und beim nächsten Thread Absätze einbauen ;)

mila
 
Ich habe das Script von Datic ausprobiert, es funktioniert wunderbar.

Allerdings scrollt der Movieclip sehr langsam. Wenn man einen langen Movieclip mit einen Kalender von links nach rechts scrollen lassen will, dauert es doch sehr lange …

Gibt es eine Möglichkeit, die Scrollgeschwindigkeit zu beeinflussen? Vielleicht mit _speed?

mila
 
Hallo !

Du mußt in der if-Schleife die Werte verändern.

der Operator "--" bzw. "++" veringert/vergrößert den Wert um 1
du kannst die Operatoren "-=" bzw. "+=" verwenden.

z.B.
leiste._x-=5

Günter
 
Ich arbeite normalerweise mit einer Art "fließendem Übergang":
Dabei wird der Clip langsam beschleunigt und abgebremst.

Hier ein einfaches Beispiel (klicke auf das Rechteck).
Dieses Beispiel funktioniert nur in eine Richtung, aber das lässt sich problemlos ausbauen.
 

Anhänge

  • smooth.zip
    2,1 KB · Aufrufe: 423

Neue Beiträge

Zurück