ActionScript 3.0 :: GetTimer() Returns The Same Value On Two Subsequent Frames?
Oct 9, 2011
I'm encoutering something pretty weird. My framerate is set to 60 and I have a function that listens to enterFrame events and calls getTimer() to calculate the time between steps. That usually works nicely, however when I run the swf in flash player 10.3 or 11 standalones, the time delta is detected for many steps as being '0' because getTimer() returns exactly the same thing as on the previous step. The flash movie as such doesn't skip frames (except it looks bad since everything moves according to the time delta) and the framerate is 60 as it should (EDIT: Not actually true, 0 ms frames are skipped). It doesn't even happen every time. Sometimes I run it with the aforementionned players and it's just fine, apparently for no reason. I have tried the debug and release players and the problem happens with both.I'm targeting flash player 10.0 and it works well with that standalone player, as it does with 10.1. Not targeting 10.3 might be part of the problem I guess, but I have no idea really. At any rate, I was wondering if anyone else encountered that problem before, and hopefully would know the cause. I have found nothing about it on the web so far.Technical info: I'm using flashDevelop 3.3.2 and the Flex 4.1 open source sdk
EDIT: It would seem it's not a getTimer problem. The time delta between frames is reported correctly but faulty frames do last 0ms.
Here is my code to create a string like this:1-xxxxxxxxxx (where x is a random number)I'd like to display this number on subsequent frames using the same dynamic test field (feedback_txt).How would I create a variable which would hold the random number? How would I display the code on the subsequent frame so the string would display?
var myNum1:Number = Math.round(Math.random()*9); var myNum2:Number = Math.round(Math.random()*9); var myNum3:Number = Math.round(Math.random()*9);
I'm making a racing game and am trying to have the final time displayed after I cross the finish line...In frame 4 (where the game begins) i have a setInterval timer that counts down from 20.when it reaches 0, my text is: startTime; where var startTime:Number = (getTimer()/1000).In frame 12 (where the game ends) i have
finalTime.text = endtime // finalTime is a textbox var endtime:Number = (_root.finishTime-_root.startTime);[code]...
when i finish the race, however, the word "undefined" is displayed in the textbox.
I have a intro to a picture of a tree which has buttons on it. The intro is an embedded flv video (not using the FLV component). The video starts on frame one and runs to frame 2. The tree is on frame 3.When I click a button on the tree, it runs the respective frames then returns to the tree. When the tree appears, the sound of the video is playing in the background.How can I make this stop?
I have a load file and a write to file method. We all know what they do. How ever load always returns true and write always returns false....Right there you know somethings wrong. Because The forums have an issue with me posting code...I posted it here: [URL] Based on this code what is the issue here? why is write always returning false and why is load always returning true? (even for files that do not exist). My understanding is that if flash cannot find the file it should write to it will create it and if it cant load said file, then that method should return false.
i'm working with externally loaded, html formatted text which employs the <img> tag, wondering if anyone knows a way to force the text directly following the <img> tag to display on a new line starting BENEATH the image in the textField rather than the default behavior of flowing AROUND the image to the right or left? inserting multiple <br> tags works, but that seems like a crappy and way to do it, fills the source file with a lot of <br> tags and requires a trial + error approach to finding the right number.
I'm having with a menu navigation system. I'm using Flash MX. I have created a menu system for the site I'm building ([URL]) where one of the buttons "Choose photographer" drops down a list of names. All the other buttons just jump to another page. The drop down is currently using tweens also the logo moves to the left as the dropdown appears and returns when the dropdown returns. All working fine apart from its a bit jerky.
It's I just wanted to get away from tweening and use action scripts instead, as I'm a newbie to all things Flash I trawled the net for tutorials and examples so that I could cobble together the exact same effect. I have managed to get the drop down work and return using the action script and it does seem smoother and works slightly better. But can I get the logo to move to the left and back in time with the drop down...no.
i was wondering when I import a class, for example "import flash.text.*;", and when I import the same class in the subsequent AS file in the same package, isn't it disk space consuming? If so, is there a way to like, import it once and it will apply to all the other AS in your package?
I am trying to access html files protected by basic authentication. Below is the code to do that but I still get the authentication dialog. I checked the fiddler and found that for the first request authorization header is present but for the subsequent requests which is requested to load the .js, css & images the authorization header is not added. This is the reason I am getting the auth dialog. Is there a way to add authorization header to the subsequent requests as well?
I need some help? Anyone experience this problem before with IE8 FLASH bug? Can not get this to work on all subsequent refresh to the flash. I have a flash piece which simply renders only on the first initial load. After that, if i refresh or visit the page, it does not load correctly. It seems I am having this problem with the swf only on subsequent loading of the page or whenever a refresh happens.
I'm trying to catch when a second is passed using getTimer. I don't want to use setInterval, because I'll need to pause, and unpause it. So.. here's my code:
[Code]...
What is wrong with this code? It seems that the time variable reachs 1000 milliseconds too fast.I'm not getting a second interval. How would I fix that?
I have recently been working on a Flash file that dynamically loads a movie based on the contents of a simple XML file. I was concerned about caching issues so tried to set up the code to avoid the XML file being cached causing the wrong content to be loaded. I did this by adding a dummy query string to the file link which is a numerical value generated by getTimer().In practice the system mostly worked but occasionally old content would load even though the XML had been changed. The code runs a setInterval that checks the XML every 20 seconds and checks if the loaded file specfied has changed. The code loads the XML with the following code:
The getTimer() functions starts counting in milliseconds as soon as the movie runs so there is a chance that the same query string is assigned to more than one file, meaning that an old cached version is loaded instead of the new, live file. I am now thinking about ways to improve this code and generate unique values for the query string. I thought using the epoch time - the time in milliseconds from which Flash calculates time and dates which is set to Jan 01 1970 - would generate a new value every millisecond and maybe adding an additional random number to that value to further reduce the chance of the same query string being generated more than once.
this.onEnterFrame = function () { var nowDate:Date = new Date(); nowTime = nowDate.getTime();
I have a simple slideshow that is non-interactive. It just loops five movie clips loaded externally. Each slide is shown for a certain amount of time that is determined with getTimer.The code for the slideshow is in the last frame of the root timeline. So, basically the slideshow starts when the root timeline finishes playing. The problem is that the timer works great the first time the code plays, but when I tell the player head to back up and enter the frame again, the clips play very rapidly, as though getTimer was not being initialized.
Is it possible to capture the time in a timer? I have some English learning games for my students that use a timer. It works fine as it is. Its starts when they click start and ends when they drag the last thing into place. What I would like to do is have a bonus scene when students do exceptionally well and get some crazy low score. I don't know how to go about capturing the end time though.
i have an .fla, which loads goes to different frames in the timeline according to the download speed of the user. i understand how it should work... start timer > upload file > stop timer > calculate download speed - easy?
so what is this simple code im missing to find the download speed? from my fruitless searching, the only relevant code i could find, is this:
Code: var time1 = getTimer(); targetClip.loadMovie("example.swf"); targetClip.onLoad = function()
[Code]....
... but i have test this, which gives an undefined property error grrr.... so what is the actionscript 3, to find the value of the download speed?
I'm in the process of making a game (a shmup) and I've started to question the accuracy of the timers in ActionScript. Sure, they're accurate enough when you want to time things on the order of a few seconds or deciseconds, but it seems to perform pretty poorly when you get to finer ranges. This makes it pretty tough to do things like have a spaceship firing a hundred lasers per second.
In the following sample, I tested how long (on average) the intervals were between 1000 timer ticks intended for 30ms. Time and time again, the results are ~35-36ms. Decreasing the time, I found the floor on the timer delay to be ~16-17ms. This gives me a max fps of ~60, which is great visually but also means I can't possibly fire more than 60 lasers per second :-(. I ran this test a few times at 100 and 1000 loops, but for both the 30ms test and the 1ms test the results didn't change. I print to a textField at the end because using trace() and launching the swf in debug mode seems to negatively affect the test. So what I'm wondering is:
Is this test a decent measure of the Timer class's performance, or are my results questionable? Will these results change dramatically on other machines? I understand this is dependent on the getTimer() method's accuracy, but the discussions I find on this topic usually center around getTimer()'s accuracy on larger intervals.
I'm programatically dragging the play head back and forth along a timeline based on a mouse event listener. The faster the mouse drags the faster the playhead rips through the frames (it's linearly proportional). I'm also firing a starter=getTimer(); event at the inital mouse_move Event trigger (and only on the initial event) and then firing a ender=getTimer() at the end of the code that calculates the new playhead position, but only if the calculation has resulted in the playhead being told to move at least one frame (the mouse can move a few pixels before playhead will move one frame). In essence it's giving me a frame per second rate.
If I look a the delta of the two timers I rarely get anything but 0. Occasionally I'll get a 1 but not very often. There are a good few dozen heavy lines of code that need to be worked out between the initial mouse_move and the decision to move the play head, and this has to be done for a number of mouse position changes before the playhead will move at all and the second getTimer call is triggered. Does the mouseEvent trigger every ms or does it trigger at the frame rate (enterframe rate) of the doc. If so the smallest delta I should see is 31ms.
This runs as an app in the standalone swf player (10.1) and never in a browser. Are my results indicative of this? Can the compiler really run this fast? How does one do very small timing tests that appear to be beyond the millisecond clock granularity?
I'm working on the game. The gameplay is based on a really small time lapse (you have only 5 secondes to do an action). My timer works great in Flash Player, i DO have 5 secondes. In a web browser (firefox, safari ..) the 5 seconds timer is now 8 seconds.
I need to get my movie to check if the user has click anywhere on the interface (doesn't matter were), if there's not click after 60second, I need to send the movie back to frame1.I know is a combination of addListener(Mouse), onMouseMove and getTimer. but I'm not very good at action script yet to combine the three.
Does the getTimer function affect the output time? so it's seen different in each country? I've created adigital clock using the time received from a php. Customers see a different time than mine. (php file works perfectly and output the time in my timezone).
I'm currently working on a detailed music media management application in Flash. There is a mp3 player which plays music and has a playback seeker (keeps track of current time for track and a tiny pin that that increases its x position as the track plays). I have a simple play & pause button that does appropriate functionality of playing & pausing the track, but the issue is that I have to pause the Timer associated with updating the playback seeker. The seekerTimer object has a delay of 1000 (1 second), while I'm listening to a track, the timer may have already excuted 600 ms, only waiting for 400 ms till the next timer event is dispatched to update the playback seeker. If I hit the pause button at 600 ms of execution time and I do a seekerTimer.stop(); and then a seekerTimer.start();, the timer does not resume its execution and instead restarts executing from 0 ms. This means that the playback seeker is not updated accordingly.
How can I pause the timer when I hit my pause button (essentially store the execution time), and then resume execution when I hit the play button? The play button doesn't have any parameters to start executing from a certain time. I looked at tutorials online but they all rely on the getTimer(); function, this returns a value of how long the Flash player has been running (from initialization). The issue is that the mp3 player in this Flash app doesn't initialize upon the application initalization (I know its a bit confusing).
I don't know how to do the actionscript tags so I am gonna use the PHP ones! PHP Code: function startTimer() { initial = getTimer()/1000; }
If this function gets called, what exactly happens here? Does it reset the timer? Or just gets the time the swf has been playing? Because when you use this mouse listener PHP Code: mouseListener = new Object(); mouseListener.onMouseDown = startTimer; It actually resets the time everytime you mouseDown. [Code] .....
I calling a function using setInterval()... however, it behaves differently in IE7 and Firefox. It is working fine in Firefox but not in IE7.Can I use getTimer() to call a specific function in every 3 seconds...?
I came accross another issue regarding the accuracy between the getTimer and date.getTime functions.I use this simple script (AS2)
[Code]...
What happens if you let this simple app running is that the trace will show that the difference between the getTimer and date.getTime results slowly increases.I would assume some inaccuracy, but not one that would slowly increase during the lifetime of the application. The reason I want to compare the two values is that I want to see if someone is tampering with the application speed with a program such as Cheat Engine. And I noticed the date.getTime function isn't affected by that program, but the getTimer function is.
I have a simple slideshow that is non-interactive. It just loops five movie clips loaded externally. Each slide is shown for a certain amount of time that is determined with getTimer. The code for the slideshow is in the last frame of the root timeline. So, basically the slideshow starts when the root timeline finishes playing. The problem is that the timer works great the first time the code plays, but when I tell the player head to back up and enter the frame again, the clips play very rapidly, as though getTimer was not being initialized. Here is the code:
I am trying to use a getTimer method that takes me to another frame (frame is "memory") after a certain amount of time after the movieclip has been loaded. The frame that I want it to go was given the name already. The timer itself does count when tested, but it just continues counting.