ERLEDIGT
NEIN
NEIN
ANTWORTEN
11
11
ZUGRIFFE
516
516
EMPFEHLEN
-
04.10.02 13:23 #1
Hi Leute

Was haltet ihr von folgender Timer-Variante in OOP umgesetzt?
Einfacher konnte ich's mir von der Sacher her erstmal nicht vorstellen...PHP-Code:MovieClip.prototype.timer = function (time, interval) {
timercheck = function () {
endTime = getTimer();
diff = endTime - startTime;
trace(diff);
if (diff >= time) {
clearInterval(timeInterval);
delete startTime;
delete endTime;
delete diff;
delete timeInterval;
}
}
startTime = getTimer();
timeInterval = setInterval(timercheck, interval);
}
timer(50, 1);
Eure Ideen, Vorschläge, Meinungen, Erweiterungen etc. würden mich da mal interessieren.
Geist,
antworthungrigGeändert von Adam Wille (04.10.02 um 13:26 Uhr)
Ah, these are the days
Let them roll as they roll
And be all you are
Because you're beautiful
Material
-
04.10.02 18:41 #2
- Registriert seit
- May 2002
- Ort
- _root
- Beiträge
- 1.342
Hi geist
sieht interessant aus. könntest du nicht noch ein praktisches beispiel bringen, bei dem deine methode zur anwendung kommt ?
gruss skyla
-
04.10.02 18:50 #3
Mh, es gibt ehrlich gesagt noch 2 Dinge, an denen's mir hapert.
1)
Beim ersten Durchlauf wird nur ein Stop-Punkt erreicht, der nach 50 ist - ist also blöd, wenn mehrere Timing-Punkte erreicht werden sollen...dann kann ich ja fast gleich onEnterFrame nutzen
2)
Mir ist noch keine rechte Methode eingefallen, um dem Player zu sagen, dass er zB erst diese Methode runterrasseln soll und dann dem nächsten Befehl nachgeht.
Dann wäre's ja im Prinzip erst ein richtiger Timer, wenn ich anweisen könnte, dass per timer(500, 50) ne halbe Sekunde gewartet werden soll und erst dann das nächte geschieht...macht's aber nicht
Aber ich bin am Grübeln, Skyla.
Du kannst auch schon direkt was in den Code reinsetzen, bspw.
aber dann geht auch schon wieder der prototype-Effekt verloren, denn dann hab ich nix davon, wenn ich eh wieder den ganzen Prototypen verändern muss, um einen Effekt vonstatten gehen zu lassen...PHP-Code:MovieClip.prototype.timer = function (time, interval) {
timercheck = function () {
endTime = getTimer();
diff = endTime - startTime;
trace(diff);
if (diff >= time) {
trace("2 Sekunden gewartet");
clearInterval(timeInterval);
delete startTime;
delete endTime;
delete diff;
delete timeInterval;
}
}
startTime = getTimer();
timeInterval = setInterval(timercheck, interval);
}
timer(2000, 50);
Theoretisch geht's aber so...mir fehlt halt irgendwie der blöde Anstoß dazu, dass erst nach komplettem Ablauf weiteragierrt wird im Script.
GeistAh, these are the days
Let them roll as they roll
And be all you are
Because you're beautiful
Material
-
04.10.02 18:56 #4
- Registriert seit
- May 2002
- Ort
- _root
- Beiträge
- 1.342
ok- jetzt versteh ich's. muss zugeben habe das ding ein paar minuten studiert, aber nicht wirklich gecheck, für was es gut sein soll.
aber kannst du nicht verschiedene funktionen mit dem setInterval zeitlich steuern ?
-
04.10.02 19:02 #5
Wie stellst du dir das vor?
Die Variante, an die ich noch am ärgsten geglaubt hatte, war den Timer in eine for-Schleife zu stecken, denn wenn die Schleife nicht zuende ist, dann wird folglich nix weitergemacht, aber auch da macht er das, was nach der Schleife kommt, noch eher als den Timer zuende laufen zu lassen...verzwickt...
GeistAh, these are the days
Let them roll as they roll
And be all you are
Because you're beautiful
Material
-
04.10.02 21:19 #6
Also zur Zeit hab' ich's mit 'ner switch-Anweisung laufen, da kann man bspw. nette Flacker-Effekte erzielen.

Ich wollte zwar eigentlich Teile meiner HP nicht posten, aber jetzt wo der Effekt mal hier im Spiel ist - schaut's euch mal an
Frage ist jetzt sicher noch, inwiefern sich das ganze von nem enterFrame-Event unterscheidet - weil ja die Intervalle natürlich nicht alle 1 Sekunde geschehen, sondern bei meinem Rechner bspw. der Player etwas alle 6-10 Millisekunden reagiert und 'ne Aktion bringen kann.PHP-Code:MovieClip.prototype.flicker = function (time, interval, timertype) {
timercheck = function () {
endTime = getTimer();
diff = endTime - startTime;
if (diff >= time) {
clearInterval(timeInterval);
delete startTime;
delete endTime;
delete diff;
delete timeInterval;
switch (timertype) {
case 1:
_root.i++;
themc._visible = false;
init();
break;
case 2:
_root.i = 1;
themc._visible = true;
init();
break;
}
}
}
timerstart = function () {
startTime = getTimer();
timeInterval = setInterval(timercheck, interval);
}
timerstart();
}
i=1;
function init () {
flicker(30, 1, i);
}
init();
Aber das würde ja bspw. einer Framerate von 100 fps entsprechen - und die kann sich jemand mit grafischen Effekten wohl kaum dauerhaft erlauben...
Noch Meinungen?
GeistAh, these are the days
Let them roll as they roll
And be all you are
Because you're beautiful
Material
-
05.10.02 01:22 #7
- Registriert seit
- May 2002
- Ort
- _root
- Beiträge
- 1.342
hi geist
ist sehr schwierig, bei diesem code deine gedanken nachzuvollziehen. ich denke du solltest bei solchen code-brocken mehr mit // arbeiten
grüsse skyla //auf eine anwendung wartend
-
06.10.02 16:55 #8
Er wartet auf eine Anwendung?
Nimm einen Quadrat als MC, setz es auf die Bühne und benenn es "themc" und dann pflanzt du den Code von unten in Frame 1 und da ist dann deine Anwendung...
Aber du bekommst auch noch die kommentierte Version plus "updateafterEvent", ja...
GeistAh, these are the days
Let them roll as they roll
And be all you are
Because you're beautiful
Material
-
06.10.02 17:39 #9
- Registriert seit
- May 2002
- Ort
- _root
- Beiträge
- 1.342
Hi ghost, hier noch die optimierte Version:
PHP-Code:setInterval(function(){theMC._visible=random(2);updateAfterEvent()},40);}
ist glaub ich noch n'zacken schneller als deine. aber bei der länge von deinem script ist das auch kein wunder.
mmmmbrummmmmm !
-
06.10.02 17:46 #10
Meckerfritze...

War doch nur mal 'n Beispiel dafür, wozu der Prototyp gut sein soll...zum Warten halt.
Jetzt überleg' halt mal mit, wie das Ding als Timer zu gebrauchen ist - auch ohne Flackerzeugs.
GeistAh, these are the days
Let them roll as they roll
And be all you are
Because you're beautiful
Material
-
07.10.02 19:12 #11
- Registriert seit
- May 2002
- Ort
- _root
- Beiträge
- 1.342
...Mecker-Zicke wär mir lieber
aber ich glaub halt immernoch, dass du "nur" setInterval () nachgebaut hast...
bewirb dich doch mit deinem scribt mal bei Macromedia Abteilung Flash Entwicklung *lol*
gruss skyla
keep on rollin' ghost
-
07.10.02 23:30 #12
Ne, hab ich nicht.

Wenn's halt mal ordnungsgemäß funktionieren könnte, dann wäre das nicht setTimeout() sondern halt wait() - setTimeout() für solche Zwecke zu missbrauchen ist ja frivol und nicht mit der Flasher-Ehre vereinbar...
Hoffentlich kommt der Moment...argh.
MM-Anwärter GeistAh, these are the days
Let them roll as they roll
And be all you are
Because you're beautiful
Material
Ähnliche Themen
-
Timer in C++
Von AirsoftDivisionHRO im Forum C/C++Antworten: 5Letzter Beitrag: 20.01.08, 14:51 -
vba timer
Von RulerofDarkness im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 30.11.05, 14:49 -
Timer
Von Dark Ranger im Forum Visual Basic 6.0Antworten: 7Letzter Beitrag: 09.10.05, 20:02 -
Timer
Von Jai im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 08.09.05, 11:01 -
Timer in SWT
Von trispo im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 27.12.04, 23:00





Zitieren
Login





