nextFrame funktion bis zu einem gewissen frame

Z-r0

Erfahrenes Mitglied
Hi Leute,

Ich will ein Menu ähnlich diesem machen, nur dass es eine ganze animation ist, die einen vorwärts und rückwärts Teil enthält.
Sie soll aber mit prevFrame() rückwärtslaufen solange man nicht bis zu einem bestimmten Frame angelangt ist, von wo sie dann stoppt und dann beim runtergehen vom button nicht mit prevFrame läuft sondern dann normal den Rest abspielt..

Wie kann ich es also machen, dass diese Animation durch die funktion nextFrame() abgespielt wird, sobald ich auf den Menupunkt gehe, bis zu einem bestimmten Frame und dort dann hält und erst weiterläuft sobald ich runtergehe oder drücke?

Hoffe es war verständlich.

Ciao!
 
Hi,

Hoffe es war verständlich.
Nicht wirklich, aber meinst Du so etwas?
Code:
stop();

this.onRollOver = function() {
  this.onEnterFrame = function() {
    if (_currentframe < _totalframes) {
      nextFrame();
    } else {
      delete this.onEnterFrame;
    }
  }
}

this.onRollOut = function() {
  this.onEnterFrame = function() {
    if (_currentframe > 1) {
      prevFrame();
    } else {
      delete this.onEnterFrame;
    }
  }
}

Gruß
.
 
Hi,

ja sowas in der Art nur, dass er nicht nextFrame() machen soll bis currentframe<totalframes

sondern bis zum Frame 47 soll er nextFrame() machen und dann stoppen.

und prevFrame soll nur benutzt werden, solange er vor Frame 47 ist und falls er da schon angekommen ist soll beim RollOut die Animation von Frame 47 an einfach weiterspielen.

Das soll so sein, weil die Effekt-verschwindet-Animation eine andere ist als der Umgekehrte Effekt-erscheint-Vorgang.

Mein Code sieht so aus. Er funktioniert zwar nicht hilft aber wahrscheinlich beim Verständnis.

PHP:
_root.menu_mc.onEnterFrame = function() {
if (mouse_over_homepage_mc) {
	if(_currentframe<47){
_root.menu_mc.nextFrame();
	}
	else{ delete _root.menu_mc.onEnterFrame;}

} else {
	if(_currentframe<46){
_root.menu_mc.prevFrame();
	}
	else{this.play}

}
};

das ist in der Hauptzeitleiste und das auf einem invisible button der den MC steuern soll:

PHP:
on (rollOver) {
_root.mouse_over_homepage_mc = true;
} on (rollOut) {
_root.mouse_over_homepage_mc = fstartlse;
}

'ne Idee?

Ciao!
 
Hi,

kannst Du bitte noch einmal genau erklären, bei welchem Maus-Status die Zeitleiste von wo bis wo laufen soll?

Gruß
.
 
Also ich habe einen MC der eine Animation abspielt von sagen wir Frame 1 bis 100.
Dann hab ich ein Invisible button der diese von mir gepostete nextFrame funktion hat.

Was ich möchte, ist dass beim Rollover auf den Invisible Button (oder von mir aus auch auf den MC) die Animation abgespielt wird bis sie beim Frame 47 angelangt ist. Da soll es dann aufhören. Aber es soll über die nextFrame funktion gemacht werden, damit man die Animation mit der prevFrame Funktion rückwärts abspielen lassen kann, was passieren soll, wenn man vor dem Erreichen des 47. Frames vom Mc runtergeht (RollOut)

So sagen wir ich habe nun Frame 47 erreicht und die Animation stoppt jetzt und der Zeiger ist natürlich weiterhin auf dem MC. Wenn ich nun runtergehe (Rollout) soll die Animation einfach von Frame 47 bis Frame 100 abgespielt werden.

Hoffentlich kann man das diesmal verstehen. Ist eigentlich ein ganz einfacher Vorgang nur habe ich keine Ahnung wie man z.B. verhindert das die nextFrame Funktion weiter als dieser Frame 47 geht.

Ciao!
 
Hi,

jetzt habe ich es verstanden. ^^
Code:
stop();

var maxframe = 47;

function over() {
  this.onEnterFrame = function() {
    if (_currentframe < maxframe) { // weiter bis zu 47
      nextFrame();
    } else {
      delete this.onEnterFrame;
    }
  }
}

function out() {
  if (_currentframe < maxframe) { // wenn kleiner 47 ...
    this.onEnterFrame = function() {
      if (_currentframe > 1) {
        prevFrame();
      } else {
        delete this.onEnterFrame;
      }
    }
  } else { // ansonsten weiter:
    play(); // in den letzten Frame muss ggf. ein "stop()" oder "gotoAndStop(1)"
  }
}

Du bräuchtest nun wahrscheinlich noch eine Fallunterscheidung, für den Fall eines rollOver-Ereignisses, wärend der Clip von Frame 47 bis zum Ende läuft. Was soll dann passieren?

Gruß
.
 
Vielen Dank Tobias!
Genau sowas brauche ich.

Für den Fall, dass ein Rollover ab Frame 47 geschieht sollte er einfach zum Anfang springen oder vielleicht die Animation erst beenden und dann zum Anfang gehen.

Ciao!
 
Hi,

Code:
function over() {
  if (_currentframe > maxframe) {
    delete this.onEnterFrame;
    gotoAndStop(1);
    return;
  }
  this.onEnterFrame = function() {
    if (_currentframe < maxframe) { // weiter bis zu 47
      nextFrame();
    } else {
      delete this.onEnterFrame;
    }
  }
}

Gruß
.
 
Tut mir leid, dass ich mich erst so spät melde.

Wollte mich nurnochmal bedanken und sagen, dass die Sache damit erledigt wäre :)


Danke und ciao!
 
Zurück