<h2>Votre Formation vidéo</h2><br/>
Votre formation est décomposée<br/>
en chapitres très clairs de 20 à 30 min. <h2>Des exemples SWF </h2><br/>
Chaque leçon est accompagnée<br/>
du code source avec le fla et les classes. <h2>Votre Suivi personnalisé</h2><br/>
Vous pouvez  me poser toutes<br/>
vos questions sous les cours vidéos.

Sujets sur : texte

Cours ActionScript 3 ‘texte’

Création d’un effet “texte défilant”

1 question

Ecrit le 30 mars par Matthieu
Publié dans le(s) sujet(s) ActionScript 3

Dans ce tutoriel ActionScript, je réponds à une question posée par un membre de la Formation AS3 Facile.

Comment réaliser un effet de défilement sur du texte ?

Voici ce que vous allez apprendre dans ce Tutoriel ActionScript Flash :

  • Création d’une classe utilitaire, réutilisable pour tous vos projets flash.
  • Création d’une classe pour la gestion du défilement d’un champ texte.
  • Utilisation des polices chargées dynamiquement dans le texte défilant.
  • Comment gérer le focus sur un champ texte input TextField, pour effectuer différentes actions.

Cette formation AS3 vous permettra d’ajouter des textes défilants dans vos applications flash.

Texte Défilant

Version démonstration

Ci-dessous un exemple d’utilisation de la classe utilitaire “texte défilant”.

https://www.actionscript-facile.com/wp-content/uploads/2012/03/texte-defilant.swf

Télécharger le code source du cours AS3

Vous trouverez l’ensemble du code source commenté pour vous aider à l’améliorer.

/**
 
  The Initial Developer of the Original Code is
  Matthieu  - https://www.actionscript-facile.com
  Portions created by the Initial Developer are Copyright (C) 2010
  the Initial Developer. All Rights Reserved.
 
  Contributor(s) :
 
 */
package com.as3facile.utils.text
{
	import flash.events.TimerEvent;
	import flash.utils.Timer;
	import flash.text.TextField;
 
	/**
	 * Permet d'afficher un texte avec un effet de défilement.
	 * 
	 * @author Matthieu
	 */
	public class TextDefil
	{
		private var oText : TextField;
		private var sTextInput : String;
 
		private var oTimer : Timer;
 
		private var nIndex : int;
		private var sTxtDefil : String;
 
		/**
		 * Constructeur.
		 * 
		 * @param txtDefil : l'objet TextField pré-configuré qui recevra le texte à afficher.
		 * 
		 */
		public function TextDefil(txtDefil:TextField) 
		{
			oText = txtDefil;
			oTimer = new Timer (95);// vitesse de défilement de 95 ms par défaut
			oTimer.addEventListener (TimerEvent.TIMER, onDefilTxt);
		}
 
		/**
		 * Affiche le texte petit à petit.
		 * Possibilité d'ajouter d'autrse effets sur le texte.
		 * 
		 */
		private function onDefilTxt(event : TimerEvent) : void
		{
			sTxtDefil += sTextInput.charAt (nIndex); // ajoute les caractères un par un au texte complet
			oText.text = sTxtDefil;// mise à jour du texte
			nIndex++;// caractère suivant
 
			// une fois que la phrase est affichée entièrement, arrêt du Timer
			if (nIndex == sTextInput.length) oTimer.stop();
		}
 
		/**
		 * Lance l'affichage du texte, lettre une par une.
		 * @param value : le texte à afficher.
		 * 
		 */
		public function startDefil(value:String):void
		{
			sTextInput = value;
			oText.text = sTxtDefil = "";
			nIndex = 0;
			oTimer.start();
		}
 
		/**
		 * Arrête le défilement du texte.
		 * 
		 */
		public function stopDefil():void
		{
			oTimer.stop();
		}
 
		/**
		 * Vitesse de défilement en ms.
		 * 
		 */
		public function setSpeed(value:Number) : void
		{
			oTimer.delay = value;
		}
 
		/**
		 * Détruit l'objet proprement.
		 * 
		 */
		public function destroy() : void
		{
			oTimer.removeEventListener (TimerEvent.TIMER, onDefilTxt);
		}
 
	}
}

Télécharger “Effet texte défilant” ex-texte-defilant.zip – Téléchargé 489 fois – 194 Ko

Posez votre question ActionScript Flash !

Rencontrez-vous des difficultés dans votre programmation Flash ?

Dites-moi les sujets que vous souhaitez que j’aborde dans les prochains tutoriels ActionScript.

Comment éviter la mise en cache d’un swf / fichier xml en AS3 ?

1 question

Ecrit le 20 novembre par Matthieu
Publié dans le(s) sujet(s) ActionScript 3 |Adobe Flash

Nous allons découvrir une astuce très simple pour complètement oublier la mise en cache du Flash et du Navigateur Internet (Firefox, Google Chrome, Internet Explorer…).

Introduction

Un problème qui revient souvent avec Flash sous différentes forme :

  • je charge un fichier xml dans Flash et les données affichées ne sont pas à jour!
  • je modifie le swf, la page web m’affiche toujours l’ancienne version du swf, toujours pas de mise à jour!

Et tout cela provient de la mise en cache des données (swf, xml, texte…) par votre Navigateur Web et Flash.

Utilisation d’une variable aléatoire

Désactiver le cache des fichiers xml, eden et textes

Il suffit d’utiliser une variable générée aléatoirement pour charger vos fichiers de configuration (xml, eden, texte).

Dans votre code AS3, ajoutez tout simplement une variable aléatoire lorsque vous chargez un fichier de configuration.

// chargement du fichier XML
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, completeHandler );
loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler );
 
// chargement du fichier xml et gestion du cache du navigateur
var sXml:String = 'https://www.actionscript-facile.com/ressources/xml/interface.xml?nocache='+Math.random()*28;
 
Logger.debug ("url : "+sXml); // debug de l'application avec l'extension firefox Firebug
 
var file:URLRequest =  new URLRequest(sXml);
loader.load(file );

En principe, j’utilise la fonction AS3 Math.random(). Il est possible d’utiliser la fonction Date() ou une autre. L’important est d’appeler votre fichier xml avec une variable aléatoire.

Télécharger le code source complet sur l’article : Création d’un Mini Flex avec les Composants AS3 Facile. C’est un fichier xml qui détermine le contenu affiché par le swf.

Amusez-vous ensuite à modifier le contenu du fichier xml pour mettre à jour les informations affichées par le swf.

Désactiver le cache du swf

Pour afficher un swf dans une page Web tout en désactivant sa mise en cache, j’utilise exactement la même astuce.

C’est à dire, je crée une variable générée aléatoirement avec le chemin de mon swf. Regardez l’exemple ci-dessous (la toute dernière ligne avec echo rand(2,28)) :

SWFObject   
<script type="text/javascript" src="swfobject.js"></script>
 
<div id="flashcontent">
N'oubliez pas d'activer le Javascript.
</div>
<script language="JavaScript" type="text/javascript">
 
	var flashvars =
	{
		contextFile: "application.eden",
		dataFile: "datas.xml",
		lang : "fr",
		progressColor: "0x2d2d2d",
		progressMessage: "Chargement en cours..."
	};
 
	var params =
	{
		allowScriptAccess : "always"  ,
		bgcolor           : "#ffffff"  ,
		quality           : "best"
	} ;
 
	var attributes =
	{
		align : "middle",
		name: "application_musique"
	} ;
 
	swfobject.embedSWF("https://www.actionscript-facile.com/swf/application.swf?nocache=<?php echo rand(2,28) ?>", "flashcontent", "234", "382", "9.0.124", "expressInstall.swf", flashvars, params, attributes );
</script>

La fonction php rand() crée une variable aléatoire. Le navigateur croit que c’est un nouveau fichier swf, donc il le charge à chaque fois!

Consultez cet article: Comment utiliser SWFObject pour afficher du contenu flash ? . SWFObject présente l’avantage d’optimiser l’affichage des swf pour les moteurs de recherche (Google, Yahoo…).

Et vous, quelle solution utilisez-vous pour empêcher la mise en cache de Flash et du Navigateur Internet ?

Est ce que vous utilisez les header() en php, ou avez-vous une autre astuce ?

Je suis curieux de découvrir vos techniques de gestion du cache en ActionScript / Flash.


quis, venenatis, sit libero suscipit Sed