ActionScript: Protect your Flash games on the web, sitelock all your games.

Si vous souhaitez diffuser vos jeux Flash sur les portails de jeux NE LES UPLOADER PAS AVANT D’AVOIR SITELOCKE VOS JEUX.

POURQUOI ?

Vos jeux peuvent être « volés » par d’autres portails de jeux. Ils le mettrons sur leur portail sans autorisation de votre part.
Ou bien si vous n’avez pas encore terminé votre jeu et que vous voulez le mettre à jour « bonjour la misère » pour mettre à jour votre jeu sur tous les portails du web.

J’ai essayé beaucoup de codes pour sitelocker mes jeux mais certains trouvés sur le net sont encore en ActionScript 2.0 ou totalement périmés.
Certains ne fonctionnent pas avec le préfixe « https » ou sans les « www ».
Un autre exemple, quand vous voulez simplement tester votre jeu sur votre machine, il faut commenter le code de sitelock et ne pas oublier de le décommenté avant de l’uplopadé sur web.

Donc j’ai décidé de créer mon propre script de sitelock.

Il s’agit d’une version simplifiée de mon script de base mais cette version est parfaite pour toutes utilisations.

Installation

Copier et coller ce bout de code et ajouter les domaines dans le tableau « [ ] » séparés par des virgules.

[« kongregate.com », …, …]

Vous pouvez vérouiller la lecture en local du jeu en changeant le second paramètre pour « false ».
La valeur par défaut étant true.

sitelock(["kongregate.com","benoitfreslon.com"]);

/**
* Sitelock your swf file on domains
*
* @param arrDomain List of all authorized domains
* @param local This swf can be played on local computer ?
*/
function sitelock(arrDomain:Array, local:Boolean = true):void
{

	var isAut:Boolean = false;

	var url:String = root.loaderInfo.url;
	var arr:Array = root.loaderInfo.url.split("://");

	var domain:String = arr[1].split("/")[0];

	// localmode
	if (url.split("file://").length > 1)
	{
		if (local)
		{
			//trace("Local mode is autorized");
			return;
		}
		else
		{
			destroy();
			return;
		}
	}
	for (var i:String in arrDomain)
	{
		arr = domain.split(arrDomain[i]);
		if (arr.length > 1)
		{
			isAut = true;
			domain = arrDomain[i];
			//trace("*** Sitelock: Domain found");
			break;
		}

	}
	if (! isAut)
	{
		//trace("*** Sitelock: Not authentified");
		destroy();
	}
	return;
}
/**
* This function is called when the game is locked.
*/
function destroy()
{
	// Domain error
	trace("*** Domain Error ***");
	root.alpha = 0;
}