Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-03-2004, 09:17   #1 (permalink)
be creative
 
Benutzerbild von Electric-X
 
Registriert seit: Jul 2002
Ort: Nbg
Beiträge: 763
_x - Mausbewegung - frame abspielen

Hallo
hab hierzu folgendes AS:

ActionScript:
  1. on(rollOver) {
  2.     bb = 700;
  3.     frames = _totalframes;
  4.     s = 0.2;
  5.     v = 0.6;
  6.    
  7.     tf = (frames/bb)*_root._xmouse;
  8.     f = this._currentframe;
  9.     speed = speed*v+(tf-f)*s;
  10.     f += Math.round(speed);
  11.     this.gotoAndStop(f);
  12. }


Dies liegt auf meinem MC. Gut und in dem MC befindet sich eine 40 Frames Animation (3D Körper der rotiert).
Nun gut so weit klappts auch dass er sich dreht so bald ich drüberfahre wirds jedoch seltsam - der 3d körper ruckelt und bleibt stehen. Ich wollte es irgendwie schaffen dass der 3d körper sich dreht und wenn ich drüberfahre, dass man ihn so zu sagen "lenken" kann - in der form, dass die frames im mc je nachdem man die maus in der x koordinate bewegt er im mc frames zurück geht oder vor.

wenn da jemand was wüsste wäre super!
__________________
electric-X.de | canyouhearit.de

>> Ideen sind das wichtigste. zu lernen wie man sie umsetzt, ist das Ziel.
Electric-X ist offline   Mit Zitat antworten
Alt 10-03-2004, 11:40   #2 (permalink)
verdammt guter kaffee!!!
 
Benutzerbild von flashgordoncole
 
Registriert seit: Mar 2002
Ort: augsburg
Beiträge: 480
Das Ruckeln kommt von der Einzelbildanimation. Da ja der Bildbereich auf die Frames aufgeteilt wird, ist -in deinem Besipiel- (700/40) alle 17.5 Pixel ein neuer Frame dran. Das ist wahrscheinlich zuwenig. Um eine einigermassen flüssige Bewegung zu bekommen brauchts min. 18 fps. In deinem Fall muss man in 40/18 = 2.2 sek. über das gesamte Bild fahren.

Verdoppel mal die Einzelbilder. Dann wirds schon flüssiger.

Dann mit den s und v Werten noch ein bischen experimentieren, oder im Yulia-Nau (oder wie die hiess )-Thread die Optimierungsposts studieren.

greez

f-g-c
__________________
...fire works with me....

...die scripte sind nicht was sie scheinen...
flashgordoncole ist offline   Mit Zitat antworten
Alt 10-03-2004, 14:16   #3 (permalink)
be creative
 
Benutzerbild von Electric-X
 
Registriert seit: Jul 2002
Ort: Nbg
Beiträge: 763
danke schonmal das hilft um einiges weiter was die flüssigkeit des abspielens betrifft.

leider aber spielen die frames nur ab wenn ich mit der maus darüberfahre - wollte aber dass es halt irgendwie immer durchläuft und erst bei onRollover dass man mit x bewegung der maus die frames vor und zurückspielen kann.

ne idee evtl?
__________________
electric-X.de | canyouhearit.de

>> Ideen sind das wichtigste. zu lernen wie man sie umsetzt, ist das Ziel.
Electric-X ist offline   Mit Zitat antworten
Alt 10-03-2004, 16:04   #4 (permalink)
be creative
 
Benutzerbild von Electric-X
 
Registriert seit: Jul 2002
Ort: Nbg
Beiträge: 763
ActionScript:
  1. onClipEvent (load) {
  2.     bb = 900;
  3.     frames = _totalframes;
  4.     s = 0.2;
  5.     v = 0.5;
  6. }
  7.  
  8. onClipEvent (enterFrame) {
  9.     if(this.HitTest(_xmouse, _ymouse, true)
  10.                     {
  11.                         tf = (frames/bb)*_root._xmouse;
  12.                         f = this._currentframe;
  13.                         speed = speed*v+(tf-f)*s;
  14.                         f += Math.round(speed);
  15.                         this.gotoAndStop(f);
  16.                     } else {
  17.                         this._currentframe;
  18.                         play();
  19.                     }
  20. }

habs mal darüber versucht aber das is au nix :/
__________________
electric-X.de | canyouhearit.de

>> Ideen sind das wichtigste. zu lernen wie man sie umsetzt, ist das Ziel.
Electric-X ist offline   Mit Zitat antworten
Alt 10-03-2004, 17:47   #5 (permalink)
verdammt guter kaffee!!!
 
Benutzerbild von flashgordoncole
 
Registriert seit: Mar 2002
Ort: augsburg
Beiträge: 480
hmm..

ActionScript:
  1. on(rollOver) {
  2.         bb = 700;
  3.         frames = _totalframes;
  4.         s = 0.2;
  5.         v = 0.6;
  6.        
  7.         tf = (frames/bb)*_root._xmouse;
  8.         f = this._currentframe;
  9.         speed = speed*v+(tf-f)*s;
  10.         f += Math.round(speed);
  11.         this.gotoAndStop(f);
  12. }
  13. on(rollOut) {
  14.          this.play();
  15. }

ungetestet...
greez
f-g-c
__________________
...fire works with me....

...die scripte sind nicht was sie scheinen...
flashgordoncole ist offline   Mit Zitat antworten
Alt 10-03-2004, 23:14   #6 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
ansonsten schieb doch mal ne test-fla rüber...

gruss
__________________
8bm | join ff@BOINC
formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn
the binary ist offline   Mit Zitat antworten
Alt 10-03-2004, 23:35   #7 (permalink)
verdammt guter kaffee!!!
 
Benutzerbild von flashgordoncole
 
Registriert seit: Mar 2002
Ort: augsburg
Beiträge: 480
Mein letzter Post war natürlich Mist... :-/

Habs mal selbst versucht, und weiss jetzt auch was Du meinst. Das Script verursacht einen Konflikt zwischen dem Loop der abläuft und der Zuweisung von von X-Koordinaten zu bestimmten frames. Ist der Loop beispielsweise gerade auf Frame 1 und die Maus kommt von rechts auf den MC wird der Film komplett vorgespult. Sieht sch***** aus

Ein paar Gedanken dazu:

Der Weg über die X-Koordinate funktioniert so nicht.
Der Hittest müsste den aktuellen Loop-Frame abfragen und als Grundlage für die Steuerung nutzen, also z.B:

Breite des MC: 300 px
Gesamtframes Loop: 100

z.B. Hittest auf mc bei x=60px, während der Loop bei Frame 10 ist: Die Mausbewegung nach links bis zum rand des MC müsste dann den Film *rückwärts* von Frame 10 bis Frame 90 laufen lassen und die Mausbewegung bis zum rechten Rand des MC den Film von Frame 10 bis Frame 90 vorwärts abspielen.

greez
f-g-c
__________________
...fire works with me....

...die scripte sind nicht was sie scheinen...
flashgordoncole ist offline   Mit Zitat antworten
Alt 11-03-2004, 08:38   #8 (permalink)
be creative
 
Benutzerbild von Electric-X
 
Registriert seit: Jul 2002
Ort: Nbg
Beiträge: 763
Ja das stimmt schon so...

Man müsste abfragen _currentframe - also wo sich der gerade befindet wenn man draufgeht - und ab da an wenn _xmouse mehr nach links oder rechts ist dasser dann nextFrame bzw. prevFrame geht. Wäre doch besser oder?

Nachtrag:

hab mal die Fla gezippt aufn server hochgeladen

hier kliggn für gezippte fla und swf
__________________
electric-X.de | canyouhearit.de

>> Ideen sind das wichtigste. zu lernen wie man sie umsetzt, ist das Ziel.

Geändert von Electric-X (11-03-2004 um 08:46 Uhr)
Electric-X 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:39 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele