Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-01-2005, 21:34   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 11
Question Screensaverartige Animation.. ohne ruckeln?

Ich will einfach ein Objekt flüssig une beliebig über den Bildschirm bewegen (so à la Bildschirmschoner von einer "Wand" sur anderen).. das klappt auch nur zuckelt es halt ohne Ende..

Ich mache das bisher so:
<b>1. Frame</b>
<ul>
run_x_val=15;
run_y_val=15;

x = getProperty("Objekt", _x);
y = getProperty("Objekt", _y);

run_x=run_x_val;
run_y=run_y_val;
</ul>

<b>2. Frame</b>
<ul>
if (x>750) run_x=-run_x_val;
if (x<50) run_x=run_x_val;
if (y>550) run_y=-run_y_val;
if (y<50) run_y=run_y_val;

x=x+run_x;
y=y+run_y;

setProperty("Objekt", _x, x);
setProperty("Objekt", _y, y);
</ul>

<b>3. Frame</b>
<ul>
gotoAndPlay("2. Frame");
</ul>


Gibt es eine schönere und v.a. flüssige Methode das zu realisieren?
mcstone ist offline   Mit Zitat antworten
Alt 11-01-2005, 21:48   #2 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
ich würde es eher so lösen:

erstelle deinen Mc der bewegt werden soll (gib ihm z.b. den Instanznamen "meinMc")

dann legst du ins erste Frame (also da wo auch der Mc liegt das:
ActionScript:
  1. stop();
  2. Stage.scaleMode="exactFit";
  3. xspeed=15;
  4. yspeed=15;
  5. trace(Stage.height);
  6. rand_r=Stage.width-this._width;
  7. rand_u=Stage.height-this._height;
  8. meinMc.onEnterFrame = function () {
  9.     this._x+=xspeed;
  10.     this._y+=yspeed;
  11.     if(this._x<=0 || this._x>=rand_r) {xspeed=-xspeed}
  12.     if(this._y<=0 || this._y>=rand_u) {yspeed=-yspeed}
  13. }

grz
pape

//edit: ob es wirklich den rand berührt / vom rand abtitscht, ghängt davon ab,ob due das Objelt Zentriertr ausrichtest (dann m+üssteste noch wisth und height vom mc durch 2 teilen) oder auf 0/0... das script oben bezieht sich auf 0/0!

//edit2: willkommen im Forum!

Geändert von pape (11-01-2005 um 21:51 Uhr)
pape ist offline   Mit Zitat antworten
Alt 11-01-2005, 22:13   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 11
Question

Zitat:
willkommen im Forum!
Danke

Bzgl. des Codes das klappt in der Tat besser (etwas flüssiger) ruckelt aber immer noch .. wenn ich die frames/sekunde auf 60 stelle und xspeed/yspeed auf 0.1 geht es einigermassen aber est flackert immer noch ein klein wenig.. bin also für jede weitere Idee empfänglich

Aber auf jeden Fall erst mal danke..
mcstone ist offline   Mit Zitat antworten
Alt 11-01-2005, 23:09   #4 (permalink)
...
 
Benutzerbild von flash bier
 
Registriert seit: Nov 2001
Beiträge: 1.227
hab mal eine Version mit setInterval und einem updateAfterEvent(); gemacht.
Ausserdem hab ich mal den speed auf 1 gesetzt, was mir am sinnvollsten erscheint, da es wohl auch keine 0.1 Pixel gibt !

ActionScript:
  1. stop();
  2. Stage.scaleMode="exactFit";
  3. xspeed=1;
  4. yspeed=1;
  5. trace(Stage.height);
  6. rand_r=Stage.width-this._width;
  7. rand_u=Stage.height-this._height;
  8. millisecs=5;
  9.  
  10. setInterval(moveIt,millisecs);
  11.  
  12. function moveIt(){
  13.     meinMc._x+=xspeed;
  14.     meinMc._y+=yspeed;
  15.     if(meinMc._x<=0 || meinMc._x>=rand_r) {xspeed=-xspeed}
  16.     if(meinMc._y<=0 || meinMc._y>=rand_u) {yspeed=-yspeed}
  17.     updateAfterEvent();
  18. }

MfG flash bier
__________________
Schweig oder sprich Worte, die besser sind als Schweigen !
flash bier ist offline   Mit Zitat antworten
Alt 11-01-2005, 23:28   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 11
Hmm.. ja.. danke, aber bei mir zuckelt die zweite Version ein bisschen mehr als die erste zudem dreht er leider nicht um (nehme an das rand_r und rand_u nicht global sind und in der Funktion nicht erkannt werden, habe aber nicht ausreichend Ahnung von Actionscript).. auf jeden Fall danke, ich denke ich begnüge mich für den Augenblick mit papes Version (aber wenn ihr noch eine flüssigere Idee habt habe ich immer ein offenes Ohr )
mcstone ist offline   Mit Zitat antworten
Alt 11-01-2005, 23:44   #6 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
flüsssiger wird es wohl nicht gehen... bei mir ruckelt da aber auch nix...

was hast du für nen pc?^^

pape
pape ist offline   Mit Zitat antworten
Alt 11-01-2005, 23:51   #7 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 11
P4, 1 Giga Ram .. liegt aber vermutlich an Flash es geht halt nicht flüssiger (jetzt ist es - dank Eurer Hilfe - auch nur noch ein ganz ganz leichtes Flackern), habe das Teil auch auf langsameren Rechnern getestet (PII, 256 Ram) dort läuft es ebenfalls gleich "flüssig"..
mcstone ist offline   Mit Zitat antworten
Alt 12-01-2005, 15:26   #8 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
was für ein objekt ist es, was du bewegst?

ich teste das nämlich einfach nur mit nem kleinen viereckigen mc

jenachdem, wenn du vielleicht große bilder bewegst, könnte es natürlich anders aussehen...
pape ist offline   Mit Zitat antworten
Alt 12-01-2005, 15:48   #9 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 11
Nicht sehr gross.. allerdings selbst auch animiert une mint einigen Details.. es kann also gut daran liegen dass das Objekt einfach zu komplex ist - sieht jetzt aber schon gut aus ich maile Dir das Ergebnis gerne zu wenn es Dich interessiert ;-) (habe halt Deine E-Mail nicht )
mcstone ist offline   Mit Zitat antworten
Alt 12-01-2005, 22:05   #10 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
kannste gerne mal zeigen:

saite !at! gmx.net
pape ist offline   Mit Zitat antworten
Alt 12-01-2005, 22:16   #11 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 11
Ok, geht eben raus...
mcstone 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 05:18 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele