Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-07-2003, 19:38   #1 (permalink)
whatever
 
Benutzerbild von oberstyler
 
Registriert seit: Mar 2003
Ort: München
Beiträge: 113
Zeitliche Abläufe zentral mit AS steuern?

Hi,

das ist mein erstes größeres flash Projekt. Und jetzt stehe ich, rein vom Verständnis her, vor einem Problem. Ich versuche soviel wie möglich der Bewegungen und Einblendungen mit AS hin zu bekommen, da mir dies oft am flüssigsten scheint. Allerdings fehlt mir irgendwie noch so der Denkanstoss wie ich die einzelnen Sachen nacheinander aktiviere.

Zum Beispiel:

Wenn ich 4 verschiedene Bilder nacheinander bewegen will. Dies geschieht über folgenden AS:
ActionScript:
  1. MovieClip.prototype.moveIt = function(x, y, fnc) {
  2.         this.move = function() {
  3.                 i++;
  4.                 var dX = this.fnc(this._x, x, i, "x");
  5.                 var dY = this.fnc(this._y, y, i, "y");
  6.                 this._x += dx;
  7.                 this._y += dy;
  8.                 updateAfterEvent();
  9.                 if ((Math.abs(dx)+Math.abs(dy))<0.5 && (Math.abs(this._x-x)+Math.abs(this._y-y))<1) {
  10.                         delete this.speedx;
  11.                         delete this.speedy;
  12.                         delete this.fnc;
  13.                         clearInterval(id);
  14.                 }
  15.         };
  16.         var i = 0;
  17.         this.fnc = fnc;
  18.         var id = setInterval(this, "move", 10);
  19. };
  20.  
  21. move1 = function (aktPos, destPos, i, type) {
  22.         var speed = 60;
  23.         speed -= i;
  24.         return (destPos-aktPos)/speed;
  25. };


Der entsprechende Aufruf steht dann derzeit noch im ersten Frame des jeweiligen MovieContainers der den sich zu bewegenden Teil enthält

ActionScript:
  1. mc1.moveIt(0, 0, _root.move2);


Wie kann ich es jetzt hinbekommen, dass ich wenn das erste Bild an der richtigen Stelle ist, das zweite starte, und so weiter?

Eben nacheinander?

Müsste noch nicht einmal wirklich starten wenn das andere fertig ist, sondern eben zu einem bestimmten zeitpunkt.

Irgendwie kommt mir komisch vor da den timer zu verwenden.

Danke, Philipp

edit: Mist, falscher Thread, bitte nach Actionscript MX verschieben. Sorry

Geändert von oberstyler (26-07-2003 um 19:40 Uhr)
oberstyler ist offline   Mit Zitat antworten
Alt 26-07-2003, 19:53   #2 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
Zitat:
Geschrieben von oberstyler
edit: Mist, falscher Thread, bitte nach Actionscript MX verschieben. Sorry
-> done.
Kein Problem.

Gruß
rena
__________________
www.rena-hermann.de

The angels have the phone box
rena ist offline   Mit Zitat antworten
Alt 27-07-2003, 16:08   #3 (permalink)
whatever
 
Benutzerbild von oberstyler
 
Registriert seit: Mar 2003
Ort: München
Beiträge: 113
Ich push den thread jetzt noch mal hoch.

Hat den vielleicht einer wenigstens ein Grundkonzept wie er einen Movie mit mehreren Abfolgen mit AS anstatt von der Zeitleiste steuert?


Bütte
oberstyler ist offline   Mit Zitat antworten
Alt 27-07-2003, 17:05   #4 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
wenn ich dich richtig verstehe suchst du nach grundsätzlichen denkanstössen zeitbasierend änderungen irgendwelcher eigenschaften von movieclips nacheinander stattfinden zu lassen.

sei dies nun die änderung der position, der breite, der farbe, etc.

ein ziemlich geniales tutorial gibt es da unter:

www.ultrashock.com
tutorials/flashMX/
Time-based Scripted Animation – Part I
von aral balkan

der macht da nahezu alles möglich, du kannst auch pausen einbauen zwischen den abläufen, einfach genial auch der ansatz grundsätzlich anstatt frame-basiert/time-basiert zu scripten wird hier sehr gut erläutert, kann ich nur empfehlen.

ich hoffe das hilft dir weiter
greetings mooseMash
mooseMash ist offline   Mit Zitat antworten
Alt 27-07-2003, 17:09   #5 (permalink)
anyway
Gast
 
Beiträge: n/a
Ich habe es mir zu eigen gemacht, bei solchen Sachen immer alle Filme, die ich in einer bestimmten Reihenfolge animieren will, in ein Array zu werfen, und dann mit...

naechsterFilm = FilmArray.shift();

..mir den nächsten Film zur Animation bereit zu legen. Beispielsweise könnte diese Zeile dort stehen, wo Du den Interval löscht. Um die Animation dann zu stoppen, wenn alle Filme durchgelaufen sind, reicht es in einer weiteren else-Bedingung zu fragen, ob das Array null Indezies enthält - dann kann der Interval gelöscht werden.

anyway.
  Mit Zitat antworten
Alt 28-07-2003, 02:43   #6 (permalink)
whatever
 
Benutzerbild von oberstyler
 
Registriert seit: Mar 2003
Ort: München
Beiträge: 113
Danke soweit.

dass mit moose hat mir weitergeholfen. Gerade um sachen nacheinander ablaufen zu lassen. muss jetzt noch mal schauen was weniger performance frisst. meine alpha und move prototypes oder die moose sachen.

geb vielleicht dazu nochmal status. aber später.

Danke Phil
oberstyler ist offline   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 15:35 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele