Skip to main content
Participant
December 10, 2011
Question

Total control of the framerate

  • December 10, 2011
  • 1 reply
  • 840 views

Hello all,

I would like to control the framerate of my app by a external event, like a timer or a network socket. I have one solution wich works, but not very elegantly:

stage.frameRate = 0;

addEventListener(Event.ENTER_FRAME, handleEnterFrame);

var timer : Timer = new Timer(1000);

timer.addEventListener(TimerEvent.TIMER, handleTimer);

timer.start();

protected function handleTimer(event : TimerEvent) : void {

     stage.frameRate = 1;

     stage.frameRate = 0;

}

protected function handleEnterFrame(event : Event) : void {

     trace("frame rendered");

}

So is there a method like "stage.render()" to manually control the framerate ?

Thanks !

Olivier

This topic has been closed for replies.

1 reply

kglad
Community Expert
Community Expert
December 10, 2011

1.  you're using an invalid value for the frame rate (.01 to 1000).

2.  that's not going to do anything that can't be done more succinctly. 

3.  if you want to minimize the frame rate, assign it to be .01.

ogilquinAuthor
Participant
December 10, 2011

What I want to do is to render every frames when the application handle a Socket. It is to render many applications at the same time, on differents computers.

The code I posted works, but it is ugly to set the framerate to 0 then 1.

Any idea ?


Thanks

kglad
Community Expert
Community Expert
December 10, 2011

remove your timer code.  assign your frame rate to be .01, if you want to minimize frame rate between socket events.

in a socket listener use:

stage.frameRate=30;

stage.invalidate();

stage.addEventListener(Event.RENDER,renderedF);

// and outside that listener add

function renderedF(e:Event):void{

stage.removeEventListener(Event.RENDER,renderedF);

stage.frameRate=.01;  // again, if that's what you want

}