Avatar billede carsten1973 Nybegynder
04. marts 2011 - 08:45 Der er 2 kommentarer og
1 løsning

Min flash tæller springer ca. hvert andet sekund over

Jeg har lavet en tæller i adobe cs5, som regner min alder ud i sekunder og derfor løbende tæller et sekund ligesom et digital ur. Det virker fint når jeg tester det via flash cs5 programmet, men når jeg åbner det via en browser - både IE, Forefox og Google Chrome, springer den sådan cirka hvert andet sekund over. Det er uanset, om det blot er .swf filen, jeg åbner eller embedder den i HTLM kode.

Mvh Carsten
Avatar billede maqhem Nybegynder
04. marts 2011 - 09:29 #1
Vil du dele din kode med os, så vi kan se, hvad der kan være galt? :)
Avatar billede carsten1973 Nybegynder
04. marts 2011 - 14:35 #2
Her under er koden. Jeg kan oplyse, at framerate er 100 fps


package
{
    import flash.display.MovieClip;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
  // import flash.events.MouseEvent;
   


    public class Counter extends MovieClip
    {
        private var timer:Timer = new Timer(1000,0);
        private var birthdate:Date=new Date(1973,5,10,19,0,0,0);
        private var now:Date=new Date();
        private var age:int;
       

               

        public function Counter():void
        {
            age=((now.getTime()/1000)-(birthdate.getTime()/1000));

            timer.start(); 
            trace("count");

        }
        public function count():void
        {
           

            out.text=""+int(age+timer.currentCount);

           
        }

         
    }

}
Avatar billede maqhem Nybegynder
04. marts 2011 - 15:24 #3
Din kode er ikke helt stabil, og din fejl er ganske sandsynligt her:

out.text=""+int(age+timer.currentCount);

Når du beder om at lægge timerens counter på, så driller det, hvis timeren driller eller indstilles forkert. Så i stedet bør du sætte out.text til at være korrekt altid - uanset hvad din timer gør. Prøv følgende:

package
{
    import flash.display.MovieClip;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    // import flash.events.MouseEvent;

    public class Counter extends MovieClip
    {
        private var timer:Timer = new Timer(1000,0);
        private var birthdate:Date = new Date(1973,5,10,19,0,0,0);
        private var age:int;

        public function Counter():void
        {
            age = (new Date().getTime() - birthdate.getTime()) / 1000;

            timer.start();
            trace("count");
        }

        public function count():void
            out.text = (getAge()).toString();
        }

        private function getAge():int {
            return (new Date().getTime() - birthdate.getTime()) / 1000;
        }
    }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester