1&1 Webhosting
Flashhilfe.de - Flash Community

onEnterFrame von der Bildrate unabhängig [Flash 8]

Forum > Flash Entwicklung > onEnterFrame von der Bildrate unabhängig

 


AntwortenRegistrieren Seite1  

 12.05.2009, 14:25 
Benutzerbild von Olli_K
Beiträge: 1393
Wohnort: Hauptstadt
Registriert: Dec 2004

onEnterFrame von der Bildrate unabhängig
Hallo,

gibt's eine Möglichkeit die Funktion, die mit onEnterFrame aufgerufen wurde, von der Bildrate unabhängig zu machen - z.B. mit einem setTimeout zu verlangsamen? setInterval funktioniert hier leider nicht.

ActionScript:
1
2
3
4
5
6
7
bewegung = function () {
   //tue diverse Dinge
};
play_Button.onRelease = function() {
   onEnterFrame = bewegung;
   //gameInterval = setInterval(bewegung, 500);
};
pixbox
Geändert von Olli_K am 12.05.09 um 18:03 Uhr

 12.05.2009, 14:33Re1
Benutzerbild von ffflash
Beiträge: 317
Registriert: Dec 2005

wie meinst du das mit "setinterval funktioniert hier leider nicht"?
 12.05.2009, 14:37Re2
Benutzerbild von Olli_K
Beiträge: 1393
Wohnort: Hauptstadt
Registriert: Dec 2004

Themenautor/in

Wenn ich die Funktion mit onEnterFrame aufrufe läuft sie einwandfrei gemäß der Bildrate ab. Rufe ich sie mit setInterval auf, läuft sie nur einmal ab?
pixbox
 
nicht sichtbar bei eingeloggten Mitgliedern
 12.05.2009, 14:42Re3
Benutzerbild von ffflash
Beiträge: 317
Registriert: Dec 2005

also ich hab das gerade mal getestet (setinterval is ja generell unabhängig von der framerate):

ActionScript:
1
2
3
4
5
function print_test(mov:MovieClip) {
   trace("test - test ");
}

this.test_interval = setInterval(print_test, 1000, this);


läuft einwandfrei jede sekunde ...
 12.05.2009, 14:49Re4
Benutzerbild von Olli_K
Beiträge: 1393
Wohnort: Hauptstadt
Registriert: Dec 2004

Themenautor/in

Ja bei Dir vielleicht, bei mir aber nicht. In meiner Funktion steht etwas mehr. Aber wir kommen voll von meiner Frage ab. Wie setInterval funktioniert, weiß ich - ungefähr 67.387 mal eingesetzt.

Toll, danke, der Beitrag wäre umsonst formuliert. Ich suchte nach einer Alternative, weil setInterval bei meinem script nicht funktioniert.

Siehe Zeile 109
ActionScript:
1//code vom Beitragsautor entfernt (copyright)
pixbox
Geändert von Olli_K am 12.05.09 um 15:10 Uhr

 12.05.2009, 14:51Re5
Benutzerbild von ffflash
Beiträge: 317
Registriert: Dec 2005

warte, ich glaube ich war blind:

versuch dein skript mal wie folgt umzuschreiben:

ActionScript:
1
2
3
4
5
6
function bewegung() {
    trace("wtf");
};
play_Button.onRelease = function() {
    gameInterval = setInterval(bewegung, 500);
};



Hey - ganz ruhig! Ich weiß garnicht wieso du so unfreundlich wirst. Oo und das du nach einer alternative suchst, war mir leider nicht klar - ich dachte nur, dass es nicht funktioniert du aber nicht weißt warum.
Geändert von ffflash am 12.05.09 um 14:54 Uhr

 
nicht sichtbar bei eingeloggten Mitgliedern
 12.05.2009, 15:01Re6
Benutzerbild von Olli_K
Beiträge: 1393
Wohnort: Hauptstadt
Registriert: Dec 2004

Themenautor/in

Sorry, ich wusste nicht, daß Du nicht wusstest, daß ich schon etwas fortgeschrittener bin und  fundierte Kenntnisse besitze.

Meinst Du, ich komme mir nicht schon lächerlich genug vor, eine Frage zu onEnterFrame und setInterval zu posten?

Zu Deinem Post von 14:51 - genauso habe ich es ja versucht, es funzt aber nicht. Mein Spiel ist ja fertig, ich will es nur etwas langsamer machen, aber nicht über die Framerate.
pixbox
Geändert von Olli_K am 12.05.09 um 15:02 Uhr

 12.05.2009, 15:05Re7
Benutzerbild von ffflash
Beiträge: 317
Registriert: Dec 2005

natürlich wusste ich das, lächerlich kam mir das nicht vor, es kommt gerne mal vor, dass man auf dem schlauch steht und die einfachsten dinge nicht hinbekommt. na dann mal viel spaß beim weitersuchen ;)
 12.05.2009, 15:08Re8
Benutzerbild von Olli_K
Beiträge: 1393
Wohnort: Hauptstadt
Registriert: Dec 2004

Themenautor/in

...na dann mal viel spaß beim weitersuchen ;)

Genau, das meinte ich, erstmal schnell Antworten und dann das Weite suchen. Diesen Beitrag kann ich vergessen und ein neuen kann ich mir wegen Doppel-Posting klemmen.
pixbox
 12.05.2009, 15:11Re9
Benutzerbild von ffflash
Beiträge: 317
Registriert: Dec 2005

Vielleicht formulierst du deine Fragen dann einfach mal genauer? :)
 12.05.2009, 15:16Re10
Benutzerbild von Olli_K
Beiträge: 1393
Wohnort: Hauptstadt
Registriert: Dec 2004

Themenautor/in

Ja ich weiß, Du wolltest nur helfen.

Vergessen wir's und widmen uns wieder dem Tagesgeschäft.
pixbox
 12.05.2009, 15:55Re11
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4906
Wohnort: zuhaus
Registriert: Apr 2004

hi,
kannst ein delay einbauen. allerdings ist es, wie in der ausgabe zu sehen, sehr ungenau:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var delay:Number = 10;
var current:Number = 0;
var lasttime:Number = 0;

this.onEnterFrame = framer;

function framer()
{
   if(current == delay)
   {
      trace("time " + (getTimer() - lasttime) )
      lasttime = getTimer();
      current = 0;
                // weiter gehts
   }
   current++;
}
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
 12.05.2009, 17:09Re12
Benutzerbild von Olli_K
Beiträge: 1393
Wohnort: Hauptstadt
Registriert: Dec 2004

Themenautor/in

Einfach genial! Tolle Idee! Danke.

Das mit der Ungenauigkeit sieht das Auge bei meinem zu Bewegenden Objekt nicht. Das Gute an dem Delay ist, daß ich den Wert dynamisch zur LZ ändern kann und so einen dyn. Schwierigkeitsgrad im Game verwirklichen kann.
pixbox
Geändert von Olli_K am 12.05.09 um 17:21 Uhr

 
Themen
Ähnliche Beiträge zum Thema
 

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de