Frequenza fotogrammi dell'applicazione

In generale, utilizzate la più bassa frequenza fotogrammi possibile per migliorare le prestazioni.

La frequenza fotogrammi di un'applicazione determina la quantità di tempo disponibile per ogni ciclo di “esecuzione del codice dell'applicazione e rendering”, come descritto in Elementi fondamentali dell'esecuzione del codice runtime . Una frequenza fotogrammi più elevata crea un'animazione più fluida. Quando tuttavia non avvengono modifiche dell'animazione o di altri aspetti visivi, spesso non vi è motivo di utilizzare una frequenza fotogrammi più elevata. Una frequenza fotogrammi maggiore utilizza più cicli della CPU e consuma più energia rispetto a una frequenza inferiore.

Riportiamo di seguito alcune linee guida generali che potete seguire per impostare correttamente la frequenza fotogrammi predefinita della vostra applicazione:

  • Se utilizzate il framework Flex, non modificate il valore predefinito della frequenza fotogrammi iniziale.

  • Se l'applicazione comprende animazioni, una frequenza fotogrammi adeguata dovrebbe essere di almeno 20 fotogrammi al secondo. Spesso non è necessario impostare un valore superiore a 30 fotogrammi al secondo.

  • Se l'applicazione non comprende animazioni, una frequenza di 12 fotogrammi al secondo sarà probabilmente sufficiente.

Il criterio della “più bassa frequenza fotogrammi possibile” può variare a seconda dell'attività corrente dell'applicazione. Per ulteriori informazioni vedete il suggerimento successivo, “Modificate dinamicamente la frequenza fotogrammi dell'applicazione”.

Utilizzate una frequenza fotogrammi ridotta quando i contenuti video sono gli unici contenuti dinamici dell'applicazione.

Il runtime riproduce i contenuti video caricati con la frequenza fotogrammi nativa, indipendentemente dalla frequenza fotogrammi dell'applicazione. Se l'applicazione non contiene animazioni o altri contenuti visivi altamente dinamici, l'uso di una frequenza fotogrammi ridotta non incide negativamente sull'esperienza dell'utente.

Modificate dinamicamente la frequenza fotogrammi dell'applicazione.

La frequenza fotogrammi iniziale dell'applicazione viene definita nelle impostazioni del progetto o del compilatore, ma non si tratta di un valore fisso. Potete modificare la frequenza fotogrammi impostando la proprietà Stage.frameRate (o la proprietà WindowedApplication.frameRate in Flex).

Modificate la frequenza fotogrammi in base alle esigenze correnti dell'applicazione. Ad esempio, potete ridurre la frequenza fotogrammi quando l'applicazione non esegue alcuna animazione. Quando sta per iniziare una transizione animata, aumentate la frequenza fotogrammi. In modo analogo, se l'applicazione viene eseguita in background (dopo aver perso lo stato attivo), potete in genere ridurre ulteriormente la frequenza fotogrammi. È probabile che l'utente sia concentrato su un'altra applicazione o un'altra operazione.

Di seguito sono riportate alcune linee guida generali che potete utilizzare come punto di partenza per determinare la frequenza fotogrammi appropriata per vari tipi di attività:

  • Se utilizzate il framework Flex, non modificate il valore predefinito della frequenza fotogrammi iniziale.

  • Durante la riproduzione delle animazioni, impostate la frequenza fotogrammi su almeno 20 fotogrammi al secondo. Spesso non è necessario impostare un valore superiore a 30 fotogrammi al secondo.

  • Quando l'applicazione non riproduce alcuna animazione, una frequenza di 12 fotogrammi al secondo sarà probabilmente sufficiente.

  • I video caricati vengono riprodotti con la frequenza fotogrammi nativa, indipendentemente dalla frequenza fotogrammi dell'applicazione. Se i video sono gli unici contenuti dinamici dell'applicazione, una frequenza di 12 fotogrammi al secondo sarà probabilmente sufficiente.

  • Quando l'applicazione non è attiva per l'input, una frequenza di 5 fotogrammi al secondo sarà probabilmente sufficiente.

  • Quando un'applicazione AIR non è visibile, una frequenza massima di 2 fotogrammi al secondo sarà probabilmente sufficiente. Queste linee guida sono applicabili, ad esempio, se un'applicazione è ridotta a icona. È applicabile anche ai dispositivi desktop se la proprietà visible della finestra nativa è impostata su false .

Per le applicazioni create in Flex, la classe spark.components. WindowedApplication è dotata di supporto incorporato per la modifica dinamica della frequenza fotogrammi dell'applicazione. La proprietà backgroundFrameRate definisce la frequenza fotogrammi dell'applicazione quando l'applicazione non è attiva. Il valore predefinito è 1 e modifica la frequenza fotogrammi di un'applicazione creata con il framework Spak, impostandola su 1 fotogramma al secondo. Potete modificare la frequenza fotogrammi in background impostando la proprietà backgroundFrameRate . Potete impostare la proprietà su un altro valore oppure su -1 per disattivare la limitazione automatica della frequenza fotogrammi.

Per ulteriori informazioni sulla modifica dinamica della frequenza fotogrammi di un'applicazione, vedete i seguenti articoli:

Grant Skinner ha creato una classe throttler per la frequenza fotogrammi. Potete utilizzare questa classe nelle vostre applicazioni per ridurre automaticamente la frequenza fotogrammi quando l'applicazione è in esecuzione in background. Per ulteriori informazioni e per scaricare il codice sorgente per la classe FramerateThrottler, vedete l'articolo di Skinner relativo all'utilizzo della CPU inattiva in Adobe AIR e Flash Player all'indirizzo http://gskinner.com/blog/archives/2009/05/idle_cpu_usage.html .