<?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>
			Optimisation des performances du code ActionScript pour le contenu Flash Lite sur des périphériques mobiles
		</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">RUBRIQUE DANS&#160;: </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="Optimisation des images Flash Lite pour les périphériques mobiles"><img src="images/prev.gif" alt="Précédent" /></a></dd><dd class="next"><a accesskey="n" class="next" href="WS4BC3BE1E-4574-4f96-BB90-23BFC3108D34.html" title="Gestion de la mémoire du fichier Flash Lite pour les périphériques mobiles"><img src="images/next.gif" alt="Suivant" /></a></dd></dl></div><div class="hierarchy"><a href="WS28F6F81C-55B3-4ad5-B632-171637249F5B.html">Création, prévisualisation et test de contenu dans Adobe Device Central</a> /
     <a href="WS3A29C98D-5768-45ea-AB2F-75FAF64078EE.html"><b>Conseils pour la création de contenu pour des périphériques mobiles</b></a> 
     </div>

<!-- END BREADCRUMBS -->
			</div>
<!-- END BREADCRUMBS -->
<!-- BEGIN PAGE TITLE -->
<!--googleon: index-->
			<h1>
				Optimisation des performances du code ActionScript pour le contenu Flash Lite sur des périphériques mobiles
			</h1>
<!--googleoff: index-->
<!-- END PAGE TITLE -->
<!-- BEGIN CONTENT WRAPPER -->
			<div id="content_wrapper">
<!--googleon: index-->
				<div><p>
                        
                        
                        En raison des limitations en termes de puissance de traitement et de mémoire disponible sur la plupart des périphériques mobiles, appliquez les directives suivantes lorsque vous développez du contenu ActionScript pour Flash Lite à destination des périphériques mobiles&amp;nbsp;:</p>
<div class="p">
                        <ul><li>
                              <p>Simplifiez autant que possible le fichier et son code. Supprimez les clips non utilisés, supprimez les images et les boucles non nécessaires et évitez la lecture de trop d'images ou d'images parasites.</p>

                           </li>
<li>
                              <p>L'utilisation de boucles <samp class="codeph">FOR</samp> peut être gourmande en ressources en raison du temps système nécessaire pour la vérification de la condition à chaque itération. Lorsque les ressources requises pour l'itération et le temps système pour la boucle sont identiques, exécutez plusieurs opérations plutôt qu'une boucle. Le code peut être plus long, mais les performances seront meilleures.</p>

                           </li>
<li>
                              <p>Arrêtez la lecture en boucle d'images dès qu'elle n'est plus requise.</p>

                           </li>
<li>
                              <p>Si possible, évitez le traitement de tableaux et de chaînes, car cette opération peut s'avérer particulièrement gourmande en ressources.</p>

                           </li>
<li>
                              <p>Essayez toujours d'accéder directement aux propriétés, au lieu d'utiliser les méthodes de lecture/définition d'ActionScript, qui consomment davantage de ressources que les autres méthodes d'appel.</p>

                           </li>
<li>
                              <p>Gérez les événements de façon mesurée. Conservez des tableaux d'événements compacts en utilisant des conditions pour détecter la présence d'un écouteur (différent de <samp class="codeph">null</samp>) avant d'appeler ce dernier. Supprimez les intervalles actifs en appelant la fonction <samp class="codeph">clearInterval</samp> et supprimez tous les tableaux actifs en appelant la fonction <samp class="codeph">removeListener</samp> avant de supprimer le contenu à l'aide de la fonction <samp class="codeph">unloadapplication</samp> ou <samp class="codeph">removeapplicationClip</samp>. Flash ne récupère pas la mémoire des données SWF (par exemple, des intervalles et des tableaux) si des fonctions ActionScript font référence aux données SWF lorsqu'un clip est déchargé. </p>

                           </li>
<li>
                              <p>Supprimez les variables obsolètes ou définissez-les sur <samp class="codeph">null</samp>, ce qui permet de marquer les données à supprimer. La suppression des variables permet d'optimiser l'utilisation de la mémoire lors de l'exécution, dans la mesure où les actifs superflus sont supprimés du fichier SWF. Il est préférable de supprimer les variables que de les définir sur <samp class="codeph">null</samp>.</p>

                           </li>
<li>
                              <p>Supprimez de façon explicite les tableaux des objets en appelant la fonction <samp class="codeph">removeListener</samp> avant la suppression des données inutiles.</p>

                           </li>
<li>
                              <p>Si vous appelez une fonction de façon dynamique et transmettez un ensemble fixe de paramètres, utilisez la fonction <samp class="codeph">call</samp> et non pas la fonction <samp class="codeph">apply</samp>.</p>

                           </li>
<li>
                              <p>Réduisez les espaces de nom (tels que les chemins) pour accélérer le démarrage. Tous les niveaux du package sont compilés à l'aide d'une instruction <samp class="codeph">IF</samp>, ce qui entraîne un nouvel appel à <samp class="codeph">Object</samp>. Par conséquent, la réduction du nombre de niveaux dans le chemin permet de gagner du temps. Par exemple, un chemin comportant les niveaux <samp class="codeph">com.xxx.yyy.aaa.bbb.ccc.funtionName</samp> entraîne la création d'une occurrence d'objet pour <samp class="codeph">com.xxx.yyy.aaa.bbb.ccc</samp>. Certains développeurs Flash ont recours à un logiciel de prétraitement pour réduire le chemin à un identificateur unique, tel que <samp class="codeph">58923409876.functionName</samp>, avant de compiler le fichier SWF.</p>

                           </li>
<li>
                              <p>Si votre fichier comprend plusieurs fichiers SWF qui utilisent les mêmes classes ActionScript, vous pouvez exclure ces classes de certains fichiers SWF lors de la compilation. Cela permet de réduire le temps de chargement du fichier et la mémoire nécessaire pendant l'exécution.</p>

                           </li>
<li>
                              <p>Evitez d'utiliser <samp class="codeph">Object.watch</samp> et <samp class="codeph">Object.unwatch</samp>, dans la mesure où tout changement de propriété des objets implique que le lecteur détermine si une notification de changement doit être envoyée. </p>

                           </li>
<li>
                              <p>Si le code ActionScript qui s'exécute sur une image clé dans le scénario prend plus d'une&#160;seconde à s'exécuter, envisagez de fractionner ce code, de façon à répartir son exécution sur plusieurs images clés. </p>

                           </li>
<li>
                              <p>Supprimez les instructions <samp class="codeph">trace</samp> de votre code lorsque vous publiez le fichier SWF. Pour se faire, activez la case Omettre les actions Trace dans l'onglet Flash de la boîte de dialogue Paramètres de publication. </p>

                           </li>
<li>
                              <p>La fonctionnalité d'héritage accroît le nombre d'appels de méthode et utilise davantage de mémoire&amp;nbsp;: une classe incluant l'ensemble des fonctionnalités nécessaires est plus efficace lors de l'exécution qu'une classe qui hérite une partie de ses fonctionnalités à partir d'une superclasse. Par conséquent, il faut établir un compromis entre l'extensibilité des classes et l'efficacité de votre code.</p>

                           </li>
<li>
                              <p>Lorsqu'un fichier SWF charge un autre fichier SWF contenant une classe ActionScript personnalisée (par exemple, <samp class="codeph">foo.bar.CustomClass</samp>), puis décharge le fichier SWF, la définition de classe reste en mémoire. Pour économiser la mémoire, supprimez de façon explicite les classes personnalisées des fichiers SWF déchargés. Utilisez l'instruction <samp class="codeph">delete</samp> et spécifiez le nom de classe avec tous ses attributs, comme dans l'exemple suivant : <samp class="codeph">delete foo.bar.CustomClass.</samp>
                              </p>

                           </li>
<li>
                              <p>Limitez l'utilisation des variables globales, dans la mesure où elles ne sont pas supprimées automatiquement si le clip qui a servi à les définir a été supprimé.</p>

                           </li>
<li>
                              <p>Evitez d'exploiter les composants d'interface standard (disponibles dans le panneau Composants de Flash). Ces composants sont conçus pour s'exécuter sur les ordinateurs de bureau et ne sont pas optimisés pour les périphériques mobiles.</p>

                           </li>
<li>
                              <p>Dans la mesure du possible, évitez d'utiliser les fonctions à imbrication complexe.</p>

                           </li>
<li>
                              <p>Evitez de référencer des variables, des fonctions ou des objets non existants. Contrairement à la version de bureau de Flash Player, Flash Lite 2 analyse lentement les références aux variables non existantes, ce qui risque d'affecter considérablement les performances.</p>

                           </li>
<li>
                              <p>Evitez de définir des fonctions à l'aide d'une syntaxe anonyme. Par exemple, <samp class="codeph">myObj.eventName = function{ ...}</samp>. Les fonctions explicitement définies sont plus efficaces, comme la fonction <samp class="codeph">function myFunc { ...}; my Obj.eventName = myFunc;</samp>.</p>

                           </li>
<li>
                              <p>Réduisez l'utilisation de fonctions mathématiques et de nombres à virgule flottante. Le calcul de ces valeurs ralentit les performances. Si vous devez utiliser des routines mathématiques, essayez de précalculer les valeurs et de les stocker dans des tableaux de variables. L'extraction de valeurs d'une table de données est beaucoup plus rapide que le calcul par Flash au moment de l'exécution.</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="Cette page sur le Web" href="http://help.adobe.com/fr_FR/DeviceCentral/1.0/WSD7F8E1A9-680A-4000-9BA9-D7B01FDD7ECD.html">Cette page sur le Web</a></li></ul>
												
											</div>
											<br clear="both" />
										</div>
									</div>
								</div>
							</div>
						</div>
					</div>
				</div>
			</div>
		</div>
		<br clear="both" />
	</body>
</html>