Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-07-2005, 23:55   #1 (permalink)
Neuer User
 
Registriert seit: May 2003
Beiträge: 60
hilfe bei "renas" setinterval tutorial

hallo,

ich habe in der rubrik "tutorial", das setinterval tutorial von rena gefunden:
Geschwindigkeit von Zeitleistenanimationen unabhängig von der Bildrate steuern

nun wollte ich das script in sofern modifizieren, das sich die abspielgeschwindigkeit des mc's nicht stufenweise per buttondruck steigert, sondern, dass man nur einmal den button drückt und sich die geschwindigkeit automatisch bis zum maximum verdoppelt.

ich hatte gedacht das man einfach eine zusätzliche variable z++ einfügt, die man dann mit der variable speed multipliziet, funzt aber nicht.

hat jemand einen tipp von euch???




renas original script:


ani=function(){
//Aufruf des nächsten Frames
mc.nextFrame();
//Falls beim letzten Frame angekommen, wieder zum ersten
if(mc._currentframe==mc._totalframes){
mc.gotoAndStop(1);
}
//Folgender Befehl macht den Ablauf flüssiger - sagt man jedenfalls
updateAfterEvent();
}
// Die Häufigkeit des Aufrufs ist hier in eine Variable geschrieben
// Sie kann aber auch direkt in den setInterval-Befehl gesetzt werden
speed=50
// Initiieren des Intervals
// ID=setInterval(Funktion die aufgerufen wird, Wiederholung alle x Millisek.)
aufruf=setInterval(ani,speed)



plus.onPress=function(){
speed-=10;
clearInterval(aufruf); //aufruf ist die oben verwendete ID des Intervals
aufruf=setInterval(ani,speed);
}
minus.onPress=function(){
speed+=10;
clearInterval(aufruf);
aufruf=setInterval(ani,speed);
}
laikabase ist offline   Mit Zitat antworten
Alt 06-07-2005, 00:00   #2 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
Statt speed+=10; kannst auch speed = 100; (das doppelte von 50 in dem Beispiel) setzen.

Falls du bei jedem Klick verdoppeln willst: speed *=2;

Gruß
Rena
__________________
www.rena-hermann.de

The angels have the phone box
rena ist offline   Mit Zitat antworten
Alt 06-07-2005, 00:15   #3 (permalink)
Neuer User
 
Registriert seit: May 2003
Beiträge: 60
erstmal vielen dank für dein ausführliches tutorial und deine schnelle antwort.

ich glaube ich habe habe mich etwas missverständlich ausgedrückt.
ich möchte nicht mehrmals klicken um die geschwindigkeit zu steigern. ich möchte wenn ich den "schneller" button einmal gedrückt habe, das sich die animationgeschwindigkeit von da an alleine bis zum max steigert. praktisch wie bei einem "fade in" button, der nur einmal gedrückt wird und der volumenwert steigert sich alleine von wert0 bis wert100.

deshalb dachte ich, das man einfach eine onEnterFrame funktion einsetzt die eine variable automatisch hochzählt. vielleicht ist das aber auch völliger blödsinn (hat zumindest nicht geklappt), ich bin noch ein ziemlich AS-anfänger.

grüsse
laikabase ist offline   Mit Zitat antworten
Alt 06-07-2005, 00:47   #4 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Hy.

Dann bau doch ein onEnterFrame ein.
Hier z.B. beim Zoomen.

ActionScript:
  1. _root.b1.onPress = function() {
  2.     this.onEnterFrame = function() {
  3.         _root.kreis._width += 10;
  4.         _root.kreis._height += 10;
  5.     };
  6.     this.onRelease = function() {
  7.         delete this.onEnterFrame;
  8.     };
  9. };
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 06-07-2005, 09:14   #5 (permalink)
Neuer User
 
Registriert seit: May 2003
Beiträge: 60
haut einfach nicht hin

wie gesagt, dass habe ich schon versucht, haut aber nicht hin - keine ahnung was ich sachon wieder falsch gemacht habe.


a=0;
ani=function(){
a++
mc.nextFrame();
if(mc._currentframe==mc._totalframes){
mc.gotoAndStop(1);
}
updateAfterEvent();
}
speed=50
aufruf=setInterval(ani,speed)
// buttons zum verändern von speed

_root.plus.onPress = function() {
this.onEnterFrame = function() {
speed-=10
clearInterval(aufruf)
aufruf=setInterval(ani,speed)
};
this.onRelease = function() {
delete this.onEnterFrame;
};
};
laikabase ist offline   Mit Zitat antworten
Alt 06-07-2005, 09:53   #6 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Also Du musst bedenken,
dass bei einer Framerate von 25bps
in einer Sekunden 25x -10 geschieht.

Ich weiß nicht wie kurz Du auf den Button
drückst, aber das geht ratze-fatze.
Vielleicht liegt da der Fehler.
__________________

--------------------------------
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 15:22 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele