Tweening kurz anhalten

chuvak

Erfahrenes Mitglied
Ich hab ein Tweening erstellt, bei dem eine Grafik mit einer Endlosschleife von von links nach rechts fährt.
Ich möchte, dass die Grafik anhält, wenn man mit der Maus drüberfährt. Wenn man die Maus wieder wegnimmt, soll die Grafik weiterfahren.
Wie kann ich das machen?

Danke!
 
Instanziere dein MC und dann
PHP:
deinMC.onRollOver = function() {
this.stop();
}
deinMC.onRollOut = function() {
this.play();
}
 
Erstmal danke für die schnelle Antwort.
Aber da ich noch ein ziemlicher Anfänger in Flash bin, weiss ich leider nicht genau, was du mit "deinMC" meinst.
Wenn ich ein Bild in ein MC konvertiere, gebe ich zB als Name "abc" ein und als Instanz "def". Durch was muss ich dann "deinMC" ersetzen?
 
hi,

kurz zur Erklärung.

Wenn du ein "Bild" nennen wir es einfach mal eine Grafik in einen Movieclip über F8 erstellst und dort den Namen angibst z.B. mc_grafik, so hat dieser Symbolname keine Bedeutung in ActionScript. Erst wenn du deinem Movieclip auf der Bühne einen Instanznamen gegeben hast, kann ActionScript diesen aktivieren bzw. finden. Nach deiner Vorgehensweise must du deinMC mit def ersetzen - also so:

PHP:
def.onRollOver = function() {
this.stop();

zur Erklärung. Das this. spricht dein MC an. Du könntest genau so schreiben

PHP:
def.stop();

Vorteil mit this: Wenn du z.B. deinen Instanznamen ändern möchtest, so mußt du nur die obere Zeile def.onRollOver = function() {

Trotzdem noch ein kleiner Tipp. Vergib sprechende Instanznamen, damit du dich auch noch nach 4 Wochen zurecht findest.

wie z.B. mc_grafik, dann weißt du
1. es handelt sich um einen MC
2. wie er ausschaut

Denn auch Buttons können Instanznamen haben;)

schöne Grüße
DJ Trancelight
 
Zuletzt bearbeitet:
Hallo,

Wie hat doch Tobi mal so schön gesagt:

[klugscheissmodus]

Wenn du die Instanz, die den RollOver trägt, stoppen willst, ist das natürlich Unsinn, aber korrekterweise müsstest du in der RollOver-Funktion erstmals auf die übergeordnete Zeitleiste und dann auf den MovieClip referenzieren:

Code:
def.onRollOver = function () {
     this._parent.def.stop();
}

[/klugscheissmodus]

gruss
 
Ich hab alles gemacht, wie ihr es gesagt habt.
Aber beim Ausführen sagt der Debugger "Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
def.onRollOver = function() {"

Muss ich
PHP:
def.onRollOver = function () {
     this.stop();
}
auf den MC draufschreiben?
 
Hallo,

nein, du solltest diese Art von Event-Handler auf ein Keyframe der Zeitleiste setzen, auf der sich dein MovieClip befindet. Wenn du den Code lieber auf den MovieCLip setzen möchest, codest du:

Code:
on (rollOver) {
     this.stop();
}

gruss
 
Tut mir leid, entweder bin ich zu dumm oder mein PC.
Es klappt einfach nicht.
Ich hab die Beispieldatei angehängt.
 

Anhänge

  • 25796attachment.zip
    4,7 KB · Aufrufe: 17
Hallo,

1. Du musst auch wirklich deinen MovieClip tweenen und nicht irgendwelche automatisch erstellten Grafik-Symbole, denn auf die kannst du gar keinen Code legen.

2. In deinem Fall empfiehlt sich die Verwendung von this._parent, da du die Zeitleiste, in der sich besagte MovieClip befindet, stoppen willst und nicht etwa den MovieClip selbst.

gruss
 

Anhänge

  • 25797attachment.zip
    7,2 KB · Aufrufe: 16
Zurück