Jag försöker ta det till en vana att modifiera mina SWFer så att de inte snor så mycket CPU än vad den behöver, då några onämda anklagar flash vara seg och resurskrävande när det i själva verket handlar om koden utvecklaren skrivit.
Ett bra sätt, som faktiskt reducerar CPU användning är frameRate i flash. Ta till exempel du har en webb-app eller en AIR app, och du vill animera allting smidigt och smooooooth... då tar du högre framerate (30+) och allt är bra.
Det är så att flash måste ju rendera varje frame, även om du inte har något på framen, så måste den renderas och köras ändå. Säg att man sätter frameRate på 60, då jäklar drar det iväg onödigt.
i AS2 så var man tyvärr fast vid att köra den frameRaten som man satte i Flash IDE, men inte så i AS3. Säg din web/AIR-app, när den exempelvis tappar focus, kan du sänka frameraten så att när appen inte används, så använder den mindre resurser.
I en webapp kan du sätta eventListener på Event.MOUSE_LEAVE och när det anropas så sätter du frameRate på ex 2, sen vid MouseEvent.MOUSE_OVER eller MouseEvent.MOUSE_MOVE, så sätter du framerate tillbaka till 60, eller vad det nu var du använde innan.
Följande siffror kan variera från dator till dator: Enligt en test på Macbook Pro 2.8 Core Duo så kör en helt blank app 1.8% av CPU medans en reducerad kör 0.4% av CPU. Tyvärr är det så att Window chrome i AIR aldrig tappar focus, så dit försvinner en bit.
Så tänk gärna på det nästa gång du skapar en app, det är vårt sätt att programmera som tyvärr ger så många dåliga rykten för Flash.
Sen så, visst, flash kräver lite kräm, men en processor är väl menad för att användas !?
Love Flash, Love ActionScript 3 and Love the Users!















