Иллюстрированный самоучитель по Flash-games

       

Защита от копирования


Исходный файл: Copyprotection.fla

Итак, как помешать кому-либо украсть вашу игру? Никак. Но вы можете помешать ему проигрывать игру с другого сайта, таким образом, украденная игра станет бесполезной.
Ключ к такой защите - свойство _url, которое возвращает строчку, содержащую весь путь к вашему swf-файлу. Если ролик располагается по адресу http://www.ktrnk.org/my .swf. именно эту строчку вернет свойство _url.
После того как вы ее получили, можете разбить ее на части и выделить имя основного домена. Например, в вышеприведенном адресе основной домен – ktrnk.org. Просмотрите следующий фрагмент программы Copyprotection l.fla:

// Показываем весь путь.

urlText = "This game is being loaded from: " + _url;

// Получаем строку, находящуюся между символами "://"

//и следующим символом "/". cl = _url.indexOf("://"+3; с2 = _url.indexOf("/", cl);

domain = _url.sunstring(cl, c2);

// Удаляем все символы перед первой точкой.

сЗ = domain.lasrIndexOf(".")-1;

с4 = domain.lastlndexOf(".", сЗ) +1;

domain = domain.substring(c4, domain.length);

// Отображаем основной домен.

domainText = "The root domain is: " + domain;

Полученное имя основного домена вы можете сравнить с доменом, на котором находится ваш сайт. Основной домен, используемый в пути к вашей игре, для разных пользователей может выглядеть по-разному. Например, адреса http:// ktrnk.org и http://www. ktrnk.org относятся к одной страничке, но свойство _url для них будет различным. Также в адресах некоторых сайтов перед доменом могут бьпъ указаны не только символы типа "www.", например, www .games. ktrnk.org.
Если основной домен не соответствует тому, который ожидает программа, значит, игру украли. В этом случае вместо перехода к ролику игры программа может перейти к другому кадру, в котором, например, будет выводиться угрожающее сообщение.



Возможно, вы не захотите, чтобы сообщение было слишком угрожающим. Много раз я предоставлял клиенту лицензированную копию одной из игр для его сайта и забывал изменить код, чтобы игра шла на его сайте. Если вы попадете в такую ситуацию, мнение клиента о вас может измениться в худшую сторону.


Исходный файл: Copyprotection2.fla

Далее следует фрагмент программы, сравнивающей свойство _url с тем доменом, на котором располагается ваша игра. Этот код вы можете посмотреть в файле Copyprotection2.fla.

// Получаем строку, находящуюся между символами "://"

//и следующим символом "/".

cl = __url.indexOf("://"+3; с2 = _url.indexOf("/", cl) ;

domain = _url.sunstring(cl, c2);

// Удаляем все символы перед первой точкой.

сЗ = domain.lasrIndexOf(".")-1;

с4 = domain.lastlndexOf(".", сЗ) +1;

domain = domain.substring(c4, domain.length);

// Переходим к соответствующей странице,

if (domain != " ktrnk.org ") {

gotoAndPlay("stolen");

} else {

gotoAndPlat("start");

Вместо того чтобы ролик переходил к другому кадру, вы можете сделать так, чтобы он вызывал функцию getURL () с адресом HTML-страницы, на которой и будет находиться ваше гневное сообщение. Таким образом, не нужно будет помещать кадр с сообщением в каждый ролик, который вы создаете.


Содержание раздела