Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-07-2004, 09:52   #1 (permalink)
scriptvermurkser
 
Benutzerbild von SwKy
 
Registriert seit: Apr 2003
Beiträge: 269
_y bewegen

Hallo!

Habe einen Film, den ich per AS bewegen will, mache das folgender maßen

film._y --;

bewegt sich auch, aber kriegt man das auch noch flüssiger hin?



p.s. außerdem ist mir die Bewegung auch zu langsam, möchte gerne, dass sich der film flüssig und schneller bewegt

Geändert von SwKy (15-07-2004 um 09:57 Uhr)
SwKy ist offline   Mit Zitat antworten
Alt 15-07-2004, 10:08   #2 (permalink)
scriptvermurkser
 
Benutzerbild von SwKy
 
Registriert seit: Apr 2003
Beiträge: 269
okay. habe jetzt:

Speed_Y = 20.0;
film._y -= Speed_Y;

jetzt bewegt sich das ganze schneller.
hab das script in einen frame gelegt. Dafür brauche ich zwei frames, den zweiten mit gotoAndPlay(1); wie mach ichs am besten, damit ich keinen zweiten frame brauche? Oder hat jemand einen anderen Vorschlag?
SwKy ist offline   Mit Zitat antworten
Alt 15-07-2004, 10:25   #3 (permalink)
fly, you fools!
 
Registriert seit: Jun 2003
Ort: Oldenburg
Beiträge: 131
du kannst dem film zb über die hauptzeitleiste ein onEnterFrame verpassen:

PHP-Code:
Speed_Y 20.0;
film.onEnterFrame = function() {
    
film._y -= Speed_Y;
}; 
löschen kannste das dann wieder zb mit:

PHP-Code:
delete film.onEnterFrame
|H|K| ist offline   Mit Zitat antworten
Alt 15-07-2004, 13:18   #4 (permalink)
scriptvermurkser
 
Benutzerbild von SwKy
 
Registriert seit: Apr 2003
Beiträge: 269
ja super, das funkt.
allerdings ruckelt das ganze ganz schön. ich lasse einen fisch von links nach rechts durch das Bild schwimmen. Der Fisch ist in Flash gebaut, die framerate steht schon auf 50 die Bühne ist 800x400, Speed steht auf 40

warum ruckelt das ganze ? das ist doch blöd, ein ruckelnder fisch
SwKy ist offline   Mit Zitat antworten
Alt 15-07-2004, 13:21   #5 (permalink)
fly, you fools!
 
Registriert seit: Jun 2003
Ort: Oldenburg
Beiträge: 131
der fisch hüpft natürlich in schritten von 40px über die bühne, da wird er wohl mal ruckeln dürfen! ;D
|H|K| ist offline   Mit Zitat antworten
Alt 15-07-2004, 13:53   #6 (permalink)
scriptvermurkser
 
Benutzerbild von SwKy
 
Registriert seit: Apr 2003
Beiträge: 269
ups

oh! na das ist ja blöd. Ich dachte er schwimmt dann einfach schneller
hab natürlich nicht bedacht, dass er dann einfach größere Sprüge macht.
Was mach ich denn dan? Geht das irgendwie, dass er über die Bühne schwimmt und nicht hüpft?
SwKy ist offline   Mit Zitat antworten
Alt 15-07-2004, 14:29   #7 (permalink)
fly, you fools!
 
Registriert seit: Jun 2003
Ort: Oldenburg
Beiträge: 131
du musst halt versuchen die balance zwischen einer angemessenen geschwindigkeit und einer gleichzeitig flüssigen bewegung hinzubekommen. dabei musst du natürlich selber sehen welches verhältnis für deine animation am besten ist.
|H|K| ist offline   Mit Zitat antworten
Alt 15-07-2004, 14:56   #8 (permalink)
Freizeitflasher
 
Benutzerbild von Alphanimal
 
Registriert seit: Jun 2004
Ort: Niederösterreich
Beiträge: 615
ja, hohe fps und kleine schritte!
aber fps von 30 müsste eigentlich reichen ...?

vielleicht braucht was anderes die CPU Ressourcen auf?

Nochwas: Für "flüssige" Bewegungen is es nett wenn das ganze Beschleunigt un abbremst.
Ein netter Trick ist, eine Zielposition anzugeben, und den Abstand zwischen Objekt und Ziel jeden Frame zu Halbieren, oder zu zweidritteln oder auch 1/20
...
jeden Frame: objekt._x += (ziel_x - objekt._x)/5;

mfg
Alphanimal ist offline   Mit Zitat antworten
Alt 15-07-2004, 15:20   #9 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Und benutze mal zusätzlich:

Speed_Y = 5;
film.onEnterFrame = function() {
film._y -= Speed_Y
;
updateAfterEvent(); << damit wird es flüssiger
};


__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 15-07-2004, 15:29   #10 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
aber auch wieder performance lastiger...@ thebiz
pape ist offline   Mit Zitat antworten
Alt 15-07-2004, 15:33   #11 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Also updateAfterEvent() sollte jeder Rechner noch
locker verkraften können.
Oder hat noch jemand ne Kiste mit musealem Wert?
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 16-07-2004, 08:30   #12 (permalink)
scriptvermurkser
 
Benutzerbild von SwKy
 
Registriert seit: Apr 2003
Beiträge: 269
?

Moin!

Vielen Dank für die Tipps.

Das mit dem updateAfterEvent(); habe ich versucht. habe jedoch nciht den Eindruck, dass es flüssiger läuft. Hab allerdings auch nicht ganz verstanden, was damit erreicht wird, und hab so die wage Vermutung, dass die Wirkung davon abhängt, dass mein Event (also mein schwimmender Hai) auch aufhört udn ich glaube das tut es noch nicht. Ich wollte, dass mein film aufhört, wenn der hai einen bestimmten Punkt erreicht hat, um zu kontrollieren, ob was passiert, hab ich ein trace mit eingabaut.
Mein script liegt auf einem frame.

gebe ich folgendes ein

if (hai._x >= -500){
delete hai;
trace("funkt");
}

gibt er funkt aus.
gebe ich folgendes ein (was ich eigentlich bräuchte)

if (hai._x <= -500){
delete hai;
trace("funkt");
}

gibt er nichts aus. Ich nehme an, das liegt daran, das flash nur einmal, wenn er beim frame ankommt, abfragt. Und da der Fisch bei ca. 30 liegt, also >500 liegt, gibt er es bei >500 aus, aber bis der hai bei <500 ist, wird nicht mehr abgefragt. hab ich das richtig auseinanderklamüsert? Wenn ja, hieße das, ich bräuchte so was wie ne Schleife, damit das Script immer wieder abgefragt wird. Das könnte ich zwar mit einem zweiten frame mit gotoAndStop(1); machen, aber das geht doch bestimmt auch anders, oder?


@Alphanimal: das mit dem objekt._x += (ziel_x - objekt._x)/5; hab ich leider überhaupt nicht verstanden , aber das mit dem "...Halbieren, oder zu zweidritteln oder auch 1/20" wäre glaube ich genau das, was ich brauche, oder? Damit könnte ich Speed ja erhöhen, ohne dass er größere Sprünge macht, oder? Könntest du mir das noch mal erklären?
SwKy ist offline   Mit Zitat antworten
Alt 16-07-2004, 10:00   #13 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Also wenn Du ein Objekt hin und her bewegen willst,
kannst Du das so machen:

PHP-Code:
zL this;
objekt zL.hai_mc;
//------------------------------------------------
function vor() {
 
objekt._x += 15;
 if (
objekt._x 500) {
  
clearInterval(hin);
  
hin setInterval(zurueck25objekt);
 }
}
//------------------------------------------------
function zurueck() {
 
objekt._x -= 15;
 if (
objekt._x 15) {
  
clearInterval(hin);
  
hin setInterval(vor25objekt);
 }
}
//------------------------------------------------
hin setInterval(vor25objekt); 
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------

Geändert von thebiz (16-07-2004 um 10:08 Uhr)
thebiz ist offline   Mit Zitat antworten
Alt 16-07-2004, 12:19   #14 (permalink)
scriptvermurkser
 
Benutzerbild von SwKy
 
Registriert seit: Apr 2003
Beiträge: 269
aha

vielen Dank, das ist ja nett das script. Es funktioniert auch, habs auch so ziemlich verstanden, nur die erste Zeile,
zL = this;
was passiert da?
wäre nett, wenn du mir das erklären könntest. Ist zwar schön, wenns funzt, aber noch schöner (nich so frustrierend, ist ja schon frustend, dass ich nicht selber auf sowas komme ) wenn ichs auch verstehe.
Würde mich also freuen
SwKy ist offline   Mit Zitat antworten
Alt 16-07-2004, 12:30   #15 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Also das zL=this; bedeutet, das ich die Referenz auf die Zeitleiste
in der Variablen zL speichere. Du kannst auch _root nehmen.
Nur wenn Du dann die .swf woanders einlädst, dann ist _root auf
einmal nicht mehr _root. (verstanden?)
In Flash7 kann man auch die Funktion lockroot() verwenden.
Mit der kenne ich mich aber noch nicht so aus.

Schau mal in der Hilfe nach > MovieClip._lockroot.


Zur hin und her Funktion
Ich habe auch ein paar Minuten gebraucht, bis ich das so
hinbekommen habe, obwohl ich es schon mindestens 1x gemacht habe.
Es schleichen sich immer Denkfehler ein.
Aber wenn man Dinge nicht ständig macht oder wiederholt,
geraten sie in den Hintergrund.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz 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 02:59 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele