Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-05-2005, 23:26   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Ort: Köln
Beiträge: 79
mit setinterval geschwindigkeit beim abspielen von MC ändern

Hallo zusammen,

hoffe das mir jemand von euch helfen kann, komm mit dem seitintervall voll nicht klar
in ein paar anderen posts stand was von clearInterval, vielleicht muss ich damit noch was machen

was bis jetzt klappt:
# je nach position der maus relativ zum MC den inhalt in einer schleife abspielen (bis ende dann wieder von anfang) oder zurücklaufen (bis anfang, dann wieder vom ende) lassen

was noch nicht klappt:
# das setinterval scheint irgendwie zu beschleunigen, denn je länger ich auf einer der seiten bin desot schneller wird der MC abgespielt
# setinterval schneller laufen lassen je weiter die maus vom MC entfernt ist

ActionScript:
  1. stop();
  2.  
  3. current_frame = 1;
  4. period = 500; // time in milliseconds after which to restart interval
  5. max_frame = 20; // last frame of animation
  6. min_frame = 1; // first frame to start
  7. sensor.intervalID = setInterval(sensor, "interval", period); // start function mover on MC sensor every period milliseconds
  8. sensor.interval = change_frame;
  9.  
  10. function change_frame( ) {
  11.     // check how far on the right hand side the mouse is
  12.     if (_xmouse >= 50 && _xmouse <= 75) {
  13.         period = 500;
  14.     }
  15.     if (_xmouse >= 76 && _xmouse <= 100) {
  16.         period = 300;
  17.     }
  18.     if (_xmouse >= 101 && _xmouse <= 150) {
  19.         period = 200;
  20.     }
  21.     if (_xmouse >= 151 && _xmouse <= 250) {
  22.         period = 100;
  23.     }
  24.    
  25.    
  26.     // check how far on the left hand side the mouse is
  27.     if (_xmouse >= -50 && _xmouse <= -75) {
  28.         period = 500;
  29.     }
  30.     if (_xmouse >= -76 && _xmouse <= -100) {
  31.         period = 300;
  32.     }
  33.     if (_xmouse >= -101 && _xmouse <= -150) {
  34.         period = 200;
  35.     }
  36.     if (_xmouse >= -151 && _xmouse <= -250) {
  37.         period = 100;
  38.     }
  39.    
  40.    
  41.     // change frames
  42.     if (_xmouse > 50) { // if mouse X more than 50 px away from sensor X
  43.         if (current_frame == max_frame) { // if current frame = last frame
  44.             gotoAndStop (min_frame); // goto first frame
  45.             current_frame = min_frame; // tell AS current frame
  46.         } else {
  47.             gotoAndStop (current_frame++);
  48.         }
  49.     }
  50.     if (_xmouse < -50) {
  51.         if (current_frame == min_frame) {
  52.             gotoAndStop (max_frame);
  53.             current_frame = max_frame;
  54.         } else {
  55.             gotoAndStop (current_frame--);
  56.         }
  57.     }
  58.     updateAfterEvent( );
  59. }


hoffe das ihr mir helfen könnt
.
Angehängte Dateien
Dateityp: zip menue.zip (7,6 KB, 1x aufgerufen)
kharn ist offline   Mit Zitat antworten
Alt 08-05-2005, 00:19   #2 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Um das "peroid" Deines "intervals" zu ändern, mußt Du erst mal den interval stopen, und in wieder aufrufen!
Und den interval vorallem richtig aufrufenh!!
kleine Demo!!
ActionScript:
  1. var period = 500;
  2. var fakt = 5;
  3. function changeP(period, fakt) {
  4.     clearInterval(ID);
  5.     ID = setInterval(funky, period, fakt);
  6. }
  7. function funky(fakt) {
  8.     mc._x += fakt;
  9. }
  10. for (var i = 1; i<=5; i++) {
  11.     this["btn"+i].i = i;
  12.     this["btn"+i].onPress = function() {
  13.         var m = Number(this.i+"00");
  14.         changeP( m, fakt);
  15.     };
  16. }
Angehängte Dateien
Dateityp: zip setChange.zip (3,2 KB, 15x aufgerufen)
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 08-05-2005, 10:56   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Ort: Köln
Beiträge: 79
Thx :)

@RustyCake: gut das ich meine Tetanus impfung letzten hab machen lassen
THX für die schnelle hilfe

hab versucht das Skript anzupassen komm aber leider nicht weiter

hab jetzt 2 intervalle am laufen, das erste (check_mouse) checkt alle 50 millisekunden wo sich die mouse befindet
dann je nach position soll das zweite intervall (change_frame) starten, das mit der für diese postion bestimmten wiederholungsgeschwindigkeit (period) zum nächsten oder vorherigen frame springt

ich glaub ich check einfach nicht wie interval zu benutzen ist
???? WER WEIß RAT?????

ActionScript:
  1. stop();
  2.  
  3. var current_frame = 1;
  4. var period = 500; // time in milliseconds after which to restart interval
  5. max_frame = 20; // last frame of animation
  6. min_frame = 1; // first frame to start
  7.  
  8.  
  9. setInterval (check_mouse, 50); // start check mouse every 50 milliseconds
  10. function check_mouse () {
  11.     trace ("X: " + _xmouse + " period: " + period + " current_frame: " + current_frame );
  12.     // check how far on the right hand side the mouse is
  13.     if (_xmouse >= 50 && _xmouse <= 75) {
  14.         period = 500;
  15.         change_period (period, current_frame);
  16.     }
  17.     if (_xmouse >= 76 && _xmouse <= 100) {
  18.         period = 300;
  19.         change_period (period, current_frame);
  20.     }
  21.     if (_xmouse >= 101 && _xmouse <= 150) {
  22.         period = 200;
  23.         change_period (period, current_frame);
  24.     }
  25.     if (_xmouse >= 151) {
  26.         period = 100;
  27.         change_period (period, current_frame);
  28.     }
  29.    
  30.    
  31.     // check how far on the left hand side the mouse is
  32.     if (_xmouse <= -50 && _xmouse >= -75) {
  33.         period = 500;
  34.         change_period (period, current_frame);
  35.     }
  36.     if (_xmouse <= -76 && _xmouse >= -100) {
  37.         period = 300;
  38.         change_period (period, current_frame);
  39.     }
  40.     if (_xmouse <= -101 && _xmouse >= -150) {
  41.         period = 200;
  42.         change_period (period, current_frame);
  43.     }
  44.     if (_xmouse <= -151 && _xmouse >= -250) {
  45.         period = 100;
  46.         change_period (period, current_frame);
  47.     }
  48. }
  49.  
  50.  
  51.  
  52. function change_period (period, current_frame) {
  53.     clearInterval(intervalID);
  54.     intervalID = setInterval(change_frame, period, current_frame);
  55. }
  56.    
  57.    
  58. function change_frame (current_frame) { 
  59.     if (_xmouse > 50) { // if mouse X more than 50 px away from sensor X
  60.         if (current_frame == max_frame) { // if current frame = last frame
  61.             gotoAndStop (min_frame); // goto first frame
  62.             current_frame = min_frame; // tell AS current frame
  63.         } else {
  64.             gotoAndStop (current_frame++);
  65.         }
  66.     }
  67.     if (_xmouse < -50) {
  68.         if (current_frame == min_frame) {
  69.             gotoAndStop (max_frame);
  70.             current_frame = max_frame;
  71.         } else {
  72.             gotoAndStop (current_frame--);
  73.         }
  74.     }
  75. }
Angehängte Dateien
Dateityp: zip menue_02.zip (7,9 KB, 2x aufgerufen)

Geändert von kharn (08-05-2005 um 10:58 Uhr)
kharn ist offline   Mit Zitat antworten
Alt 09-05-2005, 00:13   #4 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Ersten versteh ich nicht wieso Du mit minuswerten arbeitest!!
Und inn der changeframe auch noch eine Mauspositions.abfrage hast?
Kannst des bitte aufklären
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 09-05-2005, 21:46   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Ort: Köln
Beiträge: 79
bin noch ziemlicher AS noob und mach mehr mit trial + error

ich möcht in einem moviclip forwärts oder rückwärts "spulen" jenachdem ob sich die Maus rechts oder links davon befindet

die negativen werte hab ich bekommen, wenn sich die maus links vom mc befindet

geh ich das jetzt total kompliziert an? oder hab ich einfach nur ein Brett vorm Kopf?

Kannst du mir nen Tipp geben?
kharn ist offline   Mit Zitat antworten
Alt 09-05-2005, 23:30   #6 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Zitat:
Zitat von kharn
ich möcht in einem moviclip forwärts oder rückwärts "spulen" jenachdem ob sich die Maus rechts oder links davon befindet
rechts oder links wovon??
Ist nicht wirklich so kompliziert, wenn ich des selbe denke wie Du
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 10-05-2005, 12:38   #7 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Ort: Köln
Beiträge: 79

auf der Bühne hab ich einen MC (nennen wir ihn mal container liegen), in diesem liegt ein weiterer MC (Bild)

wenn sich die maus rechts vom Bild befindet sollen im MC (container) die frames rückwärts laufen und wenn die maus rechts vom MC (Bild) ist sollen im MC (container) die frames weiterlaufen

wenns irgendmöglich ist würde ich gerne die geschwindikeit mit der von frame zu frame gesprungen wird von der Entfernung der maus zum MC (Bild) abhängig machen
z.B. je weiter die maus links ist desto schneller läuft der film rückwärts

hoffe das mein ansatz bisher wenigstens ein bisschen sinn macht und du mir weiter helfen kannst
kharn 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 22:09 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele