<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	<head>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
		<link rel="stylesheet" type="text/css" href="content.css" />
		<title>
			Ottimizzazione di ActionScript per il contenuto di Flash Lite sui dispositivi portatili
		</title>
<!-- Changed by: , 21-Mar-2006 -->
<script src="help.js" type="text/javascript" language="Javascript" charset="UTF-8">...</script> 
		
		
<script type="text/javascript">
<!--[CDATA[
handleContext(1);
if (use_ie_6_behavior) {
  document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"content-ie6.css\" />");
}
// ]]-->
</script> 
		
<script src="scripts.js" type="text/javascript" language="Javascript" charset="UTF-8">...</script> <script src="terms.js" type="text/javascript" language="Javascript" charset="UTF-8">...</script> 
	</head>
	<body id="content_body">
<!--googleoff: index-->
<!-- BEGIN PAGE CONTENT WRAPPER -->
		<div id="pneumonic">
			<h1 class="DeviceCentral">DeviceCentral</h1>
		</div>
		<div id="page_content_wrapper">
			<p class="sharedproducts">L'ARGOMENTO FIGURA IN: </p><p class="sharedproductindicators"><img src="images/flashSharedIndicator.png" title="Flash" /></p>
<!-- BEGIN BREADCRUMBS -->
			<div id="breadcrumb">
<!-- BEGIN BREADCRUMBS -->
				
<div class="nav"><dl class="page"><dd class="prev"><a accesskey="p" class="prev" href="WS139D2B99-B13E-485e-8ED0-E9E2572A00BC.html" title="Ottimizzazione dei fotogrammi di Flash Lite per i dispositivi portatili"><img src="images/prev.gif" alt="Indietro" /></a></dd><dd class="next"><a accesskey="n" class="next" href="WS4BC3BE1E-4574-4f96-BB90-23BFC3108D34.html" title="Gestione della memoria file di Flash Lite per i dispositivi portatili"><img src="images/next.gif" alt="Avanti" /></a></dd></dl></div><div class="hierarchy"><a href="WS28F6F81C-55B3-4ad5-B632-171637249F5B.html">Creazione, anteprima e test del contenuto in Adobe Device Central</a> /
     <a href="WS3A29C98D-5768-45ea-AB2F-75FAF64078EE.html"><b>Suggerimenti per la creazione di contenuto per i dispositivi portatili</b></a> 
     </div>

<!-- END BREADCRUMBS -->
			</div>
<!-- END BREADCRUMBS -->
<!-- BEGIN PAGE TITLE -->
<!--googleon: index-->
			<h1>
				Ottimizzazione di ActionScript per il contenuto di Flash Lite sui dispositivi portatili
			</h1>
<!--googleoff: index-->
<!-- END PAGE TITLE -->
<!-- BEGIN CONTENT WRAPPER -->
			<div id="content_wrapper">
<!--googleon: index-->
				<div><p>
                        
                        
                        A causa delle limitazioni della velocità di elaborazione e della memoria, seguite le indicazioni riportate di seguito quando sviluppate ActionScript per il contenuto Flash Lite utilizzato sui dispositivi portatili:</p>
<div class="p">
                        <ul><li>
                              <p>Mantenete il file e il relativo codice il più semplici possibile.  Rimuovete i videoclip non utilizzati, eliminate loop di fotogrammi e codici non necessari ed evitate la presenza di un numero eccessivo di fotogrammi o di fotogrammi non essenziali.</p>

                           </li>
<li>
                              <p>L'utilizzo del loop <samp class="codeph">FOR</samp> può essere costoso a causa delle spese necessarie quando la condizione viene verificata con ciascuna iterazione. Quando i costi dell'iterazione e quelli del loop sono simili, eseguite più operazioni separatamente anziché utilizzare un loop.  Il codice può essere più lungo, ma le prestazioni saranno migliori.</p>

                           </li>
<li>
                              <p>Interrompete la ripetizione ciclica basata sui fotogrammi quando non è più necessaria.</p>

                           </li>
<li>
                              <p>Quando possibile, evitate l'elaborazione di stringhe e array che può richiedere eccessive risorse della CPU.</p>

                           </li>
<li>
                              <p>Tentate sempre di accedere alle proprietà direttamente anziché utilizzando i metodi getter e setter di ActionScript, che hanno costi superiori rispetto ad altre chiamate di metodo.</p>

                           </li>
<li>
                              <p>Gestite gli eventi prudentemente.  Mantenete gli array event listener compatti utilizzando condizioni per verificare se un listener esiste (non è <samp class="codeph">null</samp>) prima di chiamarlo. Cancellate eventuali intervalli attivi chiamando <samp class="codeph">clearInterval</samp> e rimuovete eventuali listener attivi chiamando <samp class="codeph">removeListener</samp> prima di rimuovere il contenuto utilizzando <samp class="codeph">unloadapplication</samp> o <samp class="codeph">removeapplicationClip</samp>. Se alcune funzioni di ActiveScript fanno ancora riferimento ai dati SWF durante lo scaricamento di un videoclip, in Flash la memoria dati SWF non sarà raccolta nuovamente (ad esempio, da intervalli e listener). </p>

                           </li>
<li>
                              <p>Quando le variabili non sono più necessarie, eliminatele o impostatele su <samp class="codeph">null</samp> per contrassegnarle per la raccolta cestino.  L'eliminazione delle variabili aiuta a ottimizzare l'uso della memoria in fase di runtime perché le risorse non più necessarie vengono rimosse dal file SWF.  È preferibile eliminare le variabili anziché impostarle su <samp class="codeph">null</samp>.</p>

                           </li>
<li>
                              <p>Rimuovete esplicitamente i listener dagli oggetti chiamando <samp class="codeph">removeListener</samp> prima della raccolta cestino.</p>

                           </li>
<li>
                              <p>Se una funzione viene chiamata in modo dinamico e passa un insieme fisso di parametri, utilizzate <samp class="codeph">call</samp> anziché <samp class="codeph">apply</samp>.</p>

                           </li>
<li>
                              <p>Rendete gli spazi dei nomi, come i percorsi, più compatti per ridurre il tempo di avvio.  Tutti i livelli nel pacchetto sono compilati in un'istruzione <samp class="codeph">IF</samp> e causano una nuova chiamata <samp class="codeph">Object</samp>, pertanto la presenza di un numero inferiore di livelli nel percorso consente di risparmiare tempo.  Un percorso con i livelli <samp class="codeph">com.xxx.yyy.aaa.bbb.ccc.funtionName</samp>, ad esempio, causa l'instanziazione di un oggetto per <samp class="codeph">com.xxx.yyy.aaa.bbb.ccc</samp>. Alcuni sviluppatori di Flash utilizzano software preprocessore per ridurre il percorso a un identificatore univoco, come <samp class="codeph">58923409876.functionName</samp>, prima di compilare il codice SWF.</p>

                           </li>
<li>
                              <p>Se un file è costituito da più file SWF che utilizzano le stesse classi ActionScript, escludete tali classi dalla selezione di file SWF durante la compilazione.  Ciò consente di ridurre il tempo di download del file e i requisiti di memoria di runtime.</p>

                           </li>
<li>
                              <p>Evitate di utilizzare <samp class="codeph">Object.watch</samp> e <samp class="codeph">Object.unwatch</samp>, poiché qualsiasi modifica alla proprietà di un oggetto richiede al lettore di determinare se è necessario inviare una notifica della modifica. </p>

                           </li>
<li>
                              <p>Se il completamento del codice ActionScript eseguito su un fotogramma chiave nella timeline richiede più di 1 secondo, prendete in considerazione la divisione del codice da eseguire su più fotogrammi chiave. </p>

                           </li>
<li>
                              <p>Rimuovete l'istruzione <samp class="codeph">trace</samp> dal codice quando pubblicate il file SWF.  Per eseguire questa operazione, selezionate la casella di controllo Omit Trace Actions (Ometti azioni di analisi) nella scheda Flash della finestra di dialogo Impostazioni di pubblicazione. </p>

                           </li>
<li>
                              <p>L'eredità aumenta il numero di chiamate di metodo e utilizza più memoria: una classe che include tutte le funzionalità necessarie è più efficace in fase di runtime rispetto a una classe che eredita alcune funzionalità da una superclasse. Pertanto, può essere necessario arrivare a un compromesso di design tra l'estensibilità delle classi e l'efficacia del codice.</p>

                           </li>
<li>
                              <p>Quando un file SWF carica un altro file SWF che contiene una classe ActionScript personalizzata (ad esempio, <samp class="codeph">foo.bar.CustomClass</samp>), quindi scarica il file SWF, la definizione della classe rimane in memoria. Per salvare la memoria, eliminate in modo esplicito tutte le classi personalizzate nei file SWF scaricati.  Utilizzate l'istruzione <samp class="codeph">delete</samp> e specificate il nome della classe completo, ad esempio: <samp class="codeph">delete foo.bar.CustomClass.</samp>
                              </p>

                           </li>
<li>
                              <p>Limitate l'uso delle variabili globali, poiché non vengono contrassegnate per la raccolta cestino se il videoclip che le ha definite viene rimosso.</p>

                           </li>
<li>
                              <p>Evitate di utilizzare i componenti standard dell'interfaccia utente, disponibili nel pannello Componenti di Flash. Tali componenti sono progettati per essere eseguiti sui computer desktop e non sono ottimizzati per l'esecuzione sui dispositivi portatili.</p>

                           </li>
<li>
                              <p>Evitate funzioni molto nidificate, se possibile.</p>

                           </li>
<li>
                              <p>Evitate di fare riferimento a variabili, oggetti o funzioni non esistenti.  A differenza della versione desktop di Flash Player, in Flash Lite 2 la ricerca dei riferimenti alle variabili non esistenti è lenta, pertanto le prestazioni possono risentirne negativamente.</p>

                           </li>
<li>
                              <p>Evitate di definire le funzioni utilizzando sintassi anonima.  Ad esempio, <samp class="codeph">myObj.eventName = function{ ...}</samp>. Le funzioni definite in modo esplicito sono più efficaci, ad esempio <samp class="codeph">function myFunc { ...}; my Obj.eventName = myFunc;</samp>.</p>

                           </li>
<li>
                              <p>Riducete al minimo l'utilizzo di funzioni matematiche e di numeri con virgola mobile.  Il calcolo di tali valori rallenta le prestazioni.  Se è necessario utilizzare le routine matematiche, prendete in considerazione il ricalcolo dei valori e la memorizzazione in un array di variabili.  Il recupero dei valori da una tabella dati è molto più veloce del calcolo in Flash in fase di runtime.</p>

                           </li>
</ul>

                     </div>
</div>

<!--googleoff: index-->
			</div>
<!-- END CONTENT WRAPPER -->
		</div>
<!-- END PAGE CONTENT WRAPPER -->
		<br clear="both" />
		<div id="related">
			<div class="t">
				<div class="b">
					<div class="l">
						<div class="r">
							<div class="bl">
								<div class="br">
									<div class="tl">
										<div class="tr">
											<div id="related_in">
												<h3>
<script type="text/javascript">document.write(terms_Related_Information);</script> 
												</h3>
												
												<h4>
<script type="text/javascript">document.write(terms_AHV_HELP_RESOURCE_CENTER);</script> 
												</h4>
												<ul class="link-list"><li class="icon external"><a target="_blank" title="Questa pagina sul Web" href="http://help.adobe.com/it_IT/DeviceCentral/1.0/WSD7F8E1A9-680A-4000-9BA9-D7B01FDD7ECD.html">Questa pagina sul Web</a></li></ul>
												
											</div>
											<br clear="both" />
										</div>
									</div>
								</div>
							</div>
						</div>
					</div>
				</div>
			</div>
		</div>
		<br clear="both" />
	</body>
</html>