script ändern / mc verschieben

ouagadugu

Mitglied
Hallo Zusammen,
habe ein kleines Problem mit einer hier im Forum von Datic(danke dafür) geposteter fla, die fast schon genau das beinhaltet, was ich will. Leider noch nicht ganz genau. Bei mouseOver über den ersten mc(links), wird dieser größer und die andern verschieben sich nach rechts. Bei mouseOver über clip2 verschieben sich die mc`s rechts davon auch nach recht, hier sollte sich aber der clip1 dann zusätzlich im gleichen Abstand nach links verschieben(ebneso bei mouseOver von clip3, bzw clip4 sollten sich die jeweils links positionierten clips auch nach links verschieben)
Zusammengefasst heißt das: der jeweils aktivierte clip vergrößert sich, verändert dabei die x Position des Mittelpunktes nicht, und die nicht aktiven clips links davon sollen sich nach links, die rechts davon nach rechts verschieben.

Hab schon einiges versucht, auch mit hit.Test, komme aber nicht weiter.
Vermutlich liegt die notwendige Änderung in folgender Zeile:
PHP:
if (i > 1) {
				obj._x = this["clip" + (i - 1)]._x + this["clip" + (i - 1)]._width + gap;
			}
 

Anhänge

Hi,

ich kann leider nicht in die Datei schauen, aber ich vermute, dass es so oder so ähnlich aussehen müsste:

Du brauchst eine zweite Zeile, in der Du von der x-Position des aktuellen Clips den Abstand (gap) und die Breite des Clips davor (links von dem aktuellen, eben dem, den Du verschieben willst) abziehst. Daraus ergibt sich dann die neue Position des Clips.

Wenn Du die Fla mal als MX 2004 speichern magst, würde ich auch mal nachsehen, wie sich die Theorie umsetzen lässt ;) .

Gruß
 
Hm, OK, war doch etwas mehr nötig, aber so ist das ja immer,...

Also so geht's:
In der onEnterFrame Funktion habe ich eine Schleife eingebaut, die mir den Clip raussucht, auf dem gerade die Maus ist.

Code:
for (var j=1; j<=4; j++) {
   if ((this["clip" + j]) == dest) {
      _global.clipNumber = j;
   };
};
Die Variable "clipNumber" muss in diesem Fall _global sein, weil sie sonst gelöscht wird, wenn die Funktion durchlaufen ist und dann das "Zurück-Skalieren-Und-Bewegen" :-) nicht mehr funktioniert.

Dann weiter unten noch eine Unterscheidung, dass eben die Clips links von dem aktuellen nach links und die rechts nach rechts geschoben werden:

Code:
if (i < _global.clipNumber) {
   obj._x = this["clip" + (i + 1)]._x - this["clip" + (i + 1)]._width - gap;
} else {
   if (i > _global.clipNumber) {
      obj._x = this["clip" + (i - 1)]._x + this["clip" + (i - 1)]._width + gap;
   };
};
Der aktuelle Clip wird dabei halt nicht verschoben.

Et voila,....
 

Anhänge

skomsnaes,
Der aktuelle Clip sollte sich auch nicht verschieben, sondern nur "aufzoomen", also war dein script genau richtig. Exakt was ich wollte.
Besten Dank & Gruß
 
Zurück