Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-11-2003, 08:50   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Beiträge: 25
movie erst nach rechts und dann nach links skalieren

hi!

habe jetzt schon alles durchsucht und nix passendes gefunden. ich will einen movie in 2 richtungen skalieren. in eine richtung ist ja kein problem, wenn der registrierungspunkt an der richtigen seite ist. kann man den registrierungspunkt eines mc irgendwie zur laufzeit ändern?

so soll das ganze aussehen

hat jemand eine idee wie man das per as lösen kann? ich benötige es für eine menüanimation, also habe ich auch keine festen werte für die position vor dem ziehen... bin verzweifelt
deesigns ist offline   Mit Zitat antworten
Alt 19-11-2003, 10:09   #2 (permalink)
anyway
Gast
 
Beiträge: n/a
Naja, den Koordinatenursprung zu versetzen selbst geht nicht, Du kannst aber z.B. aus dem inneren Rechteck Deines MovieClips nochmal ein MovieClip machen, und kannst diesen dann relativ zum Koordinatenursprung Deines äußeren Clips bewegen...

füge einfach mal folgendes Script in die Hauptzeitleiste (erstes Schlüsselbild) eines neuen Projekts ein und sieh was passiert - danach nimmst Du Dir das Script vor und versuchst es zu verstehen! Könnte man auch einfacher Scripten aber ich habe die 4 Zustände, die man für diese Bewegung braucht, in vier verschiedene Funktionen geschrieben, was es -wie ich hoffe- für Dich einfacher macht, zu verstehen, was da mathematisch zu rechnen ist...

hier das script:

ActionScript:
  1. function bewegung() {
  2.     // Variablen zum Bewegungstween festlegen
  3.     var ow = 200, spd = 50, tspd = spd/2;
  4.     // verschachtelten mc erstellen
  5.     var m1 = this.createEmptyMovieClip('mc1', this._depth++);
  6.     var m2 = m1.createEmptyMovieClip('mc2', m1._depth++);
  7.     m1._x=100, m1._y=200;
  8.     // balken zeichnen
  9.     with (m2) {
  10.         lineStyle(0, 0x00);
  11.         beginFill(0x000000);
  12.         lineTo(ow, 0);
  13.         lineTo(ow, 50);
  14.         lineTo(0, 50);
  15.         endFill();
  16.     }
  17.     // bewegung 4 zustände...
  18.     var fwd1 = function () {
  19.         if (this._width<2*ow) {
  20.             this._width += ow/tspd;
  21.         } else {
  22.             this.onEnterFrame = fwd2;
  23.         }
  24.     };
  25.     var fwd2 = function () {
  26.         if (this._x<ow) {
  27.             this._x += ow/tspd;
  28.             this._width -= ow/tspd;
  29.         } else {
  30.             this.onEnterFrame = bwd1;
  31.         }
  32.     };
  33.     var bwd1 = function () {
  34.         if (this._x>0) {
  35.             this._x -= ow/tspd;
  36.             this._width += ow/tspd;
  37.         } else {
  38.             this.onEnterFrame = bwd2;
  39.         }
  40.     };
  41.     var bwd2 = function () {
  42.         if (this._width>ow) {
  43.             this._width -= ow/tspd;
  44.         } else {
  45.             this.onEnterFrame = fwd1;
  46.         }
  47.     };
  48. // zuweisung der ersten Animation durch onEnterFrame
  49.     m2.onEnterFrame = fwd1;
  50. }
  51. // Aufruf der Bewegungsfunktion
  52. bewegung();

anyway.

Geändert von anyway (19-11-2003 um 10:11 Uhr)
  Mit Zitat antworten
Alt 19-11-2003, 10:40   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Beiträge: 25
hallo anyway!

danke für deine antwort. dein script läuft super, verstehen tu ich es auch. ich brauche das ganze aber etwas dynamischer. in deinem script ist die neue breite auch die breite der verschiebung. ich habe schon mal an deinem script rumgebastelt, es aber nicht hinbekommen.

ich brauche dieses ding für eine navigation, muss also per variable sagen können wohin der block sich schieben soll(x) und welche breite er am ende haben soll(_width). eine ähnliche variante wie deine hab ich auch schonmal gebastelt, da hatte ich aber das problem das es nur gefunkt hat, wenn der balken nur nach rechts oder nur nach links wandert. hilfe, ich weiss nicht wie ich es umschreiben soll

weisst du was ich meine?
deesigns ist offline   Mit Zitat antworten
Alt 19-11-2003, 10:45   #4 (permalink)
anyway
Gast
 
Beiträge: n/a
Nö - aber nach einer halben Stunde rumprobieren, kannst Du doch wohl nicht behaupten, es nicht hinzukriegen - zumal Du, wie Du selbst sagtest, das Script verstehst - dann müsste es ein leichtes sein, mit den Variablen und Eingangswerten rumzuspielen bzw. eine weitere Variable zu setzen, wenn es Dein Vorhaben dann erfordert...

...probier ruhig mal ein bißchen - von nichts kommt nichts

anyway.
  Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 23:35 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele