ActionScript 3.0, l'essentiel sous la main Adobe Flash Accueil
Fiches
Boutique
Contact
URL Rewriting
L'URL Rewriting est une technique utilisée pour optimiser le référencement des sites dynamiques en remplaçant leurs URL compliqués (remplit de plusieurs paramètres), par des URL plus pertinentes pour les moteurs de recherche.

Exemple : "http://www.julienvolle.fr/index.html?page=12&id=547" devient "http://www.julienvolle.fr/accueil"

Le problème en Flash, notamment pour les sites FullFlash, c'est qu'il n'y a qu'une seule page pour tout le contenu du site. Impossible donc de conserver un lien direct vers tels ou tels informations, et le référencement naturel en prend un coup !

Je vais vous montrer ici comment insérer et récupérer des paramètres dans l'URL, afin de crée une arborescence de navigation pour votre site en Flash. Cela permettra à vos internautes de conserver des URL détaillés avec un accès direct aux informations, et favorisera votre référencement naturel avec notamment l'utilisation d'un site map.

Exemple : "http://www.julienvolle.fr/index.html" devient "http://www.julienvolle.fr/#/accueil"

Le choix d'utiliser cette méthode doit ce décider avant de commencer le développement du site, car elle implique une rigueur et une méthode de construction bien spécifique. (Il faut faire en sorte que chaque page du site soit accessible individuellement).

Tout d'abord, il faut mettre un bout de code sur nos boutons/clips afin de renommer l'URL de la page courante en fonction de se qui ce passe dans notre animation.

//Imports Flash
import flash.Events.MouseEvent;
import flash.external.ExternalInterface;

function accueil_go(e:MouseEvent):void
{
flash.external.ExternalInterface.call("eval", "location.href = \"#/accueil\""); //On rajoute un attribu à l'URL courante
}
btn_accueil.addEventListener(MouseEvent.CLICK, accueil_go);

Ici, en cliquant sur le bouton btn_accueil, je vais rajouter le paramètre #/accueil à l'URL de mon site.
Si mon URL était "http://www.julienvolle.fr/", cela donnera "http://www.julienvolle.fr/#/accueil"

Ensuite, il faut pouvoir analyser l'URL de la page courant afin de pouvoir détecter où doit en être l'animation au démarrage.
Voici le code permettant d'extraire des paramètres de l'URL de la page courante : (ici, je gére jusqu'à 4 paramètres)

//Imports Flash
import flash.external.ExternalInterface;

var url = ExternalInterface.call("eval", "window.location.toString()"); //Récupère l'URL de la page active

function examURL():void
{
if(url.indexOf("#") != -1) //Si le signe "#" a été trouvé dans l'URL
{
//INFO: Détection d'un ou plusieurs paramètre(s)
var parametres = url.substr(url.indexOf("#")+2); //Extrait les paramètres (après le "#/")

if(parametres.indexOf("/") != -1) //Recherche du signe "/" dans les paramètres
{
var param1 = parametres.substr(0, parametres.indexOf("/")); //Extraction du 1er paramètre
var param2 = parametres.substr(parametres.indexOf("/")+1); //Extraction du reste des paramètres

if(param2.indexOf("/") != -1) //Recherche du signe "/" dans le reste des paramètres
{
var paramTMP = param2; //Mémoire tempon des paramètres restant
param2 = paramTMP.substr(0, paramTMP.indexOf("/")); //Extraction du 2e paramètre
var param3 = paramTMP.substr(paramTMP.indexOf("/")+1); //Extraction du reste des paramètres

if(param3.indexOf("/") != -1) //Recherche du signe "/" dans le reste des paramètres
{
//INFO: Détection de 4 paramètres
paramTMP = param3; //Mémoire tempon des paramètres restant
param3 = paramTMP.substr(0, paramTMP.indexOf("/")); //Extraction du 3e paramètre
var param4 = paramTMP.substr(paramTMP.indexOf("/")+1); //Extraction du 4e paramètre
//Actions... (après avoir identifié 4 paramètres)
}
else
{
//INFO: Détection de 3 paramètres
//Actions... (après avoir identifié 3 paramètres)
}
}
else
{
//INFO: Détection de 2 paramètres
//Actions... (après avoir identifié 2 paramètres)
}
}
else
{
//INFO: Détection de 1 paramètre
//Actions... (après avoir identifié 1 paramètre)
}
}
else
{
//INFO: Aucun paramètre détecté
}
}
examURL(); //On exécute la fonction 'examURL'

Aperçus & Sources : (Flash CS4)
Commentaire(s)
Aucun.