`
Читать книги » Книги » Компьютеры и Интернет » Программирование » Гэри Розенцвейг - Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Гэри Розенцвейг - Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

1 ... 81 82 83 84 85 ... 90 ВПЕРЕД
Перейти на страницу:

onClipEvent(load) {

// Получаем исходную информацию.

totalFileSize = _root.getBytesTotal();

startTime = getTimer();

startBytes = _root.getBytesLoaded();

// Прячем полосу загрузки.

this._xscale = 0;

}

onClipEvent(enterFrame) {

// Выясняем, сколько байт уже загружено.

bytesLoaded = _root.getBytesLoaded();

// Преобразуем это значение в величину от 0 до 1.

amountLoaded = bytesLoaded/totalFileSize;

// Преобразуем полученное значение в величину от 0 до 100.

percentLoaded = int(100*amountLoaded);

// Определяем масштаб полосы загрузки.

this._xscale = percentLoaded;

// Определяем скорость загрузки.

timeSoFar = getTimer() – startTime;

speed = bytesLoaded/timeSoFar;

// Выясняем, сколько времени осталось до конца загрузки.

bytesLeft = totalFileSize – bytesLoaded;

timeLeft = (bytesLeft/speed)/1000;

// Преобразуем полученное значение

// в величину с одной цифрой после запятой.

speed = int(10*speed)/10;

// Устанавливаем текстовые поля.

_root.bytesMessage = int(bytesLoaded/1000) + "kb/" + int(totalFileSize/1000) + "kb";

_root.speedMessage = speed + "k/sec";

_root.timeMessage = int(timeLeft) + " seconds remaining"; [21]

// Проверяем, все ли уже загружено.

if (amountLoaded >= 1.0) {

_root.gotoAndStop("complete");

}

}

Другие типы экранов загрузки

Только что рассмотренные экраны загрузки – стандартные. Кроме них существует множество других вариантов. Самый простой: можно отображать только статический кадр с надписью «Loading, Please Wait.» (Идет загрузка, пожалуйста, подождите.). Когда загрузка будет завершена, ролик просто перейдет следующему кадру.

Этот вариант можно усложнить и поместить какую-либо повторяющуюся анимацию в кадр.

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

Возможно, для создания таких экранов загрузки функции getBytesTotal() и getBytesLoaded() не понадобятся. Вместо них можно воспользоваться функцией ifFrameLoaded(), чтобы узнать, загружены ли все графические объекты определенного кадра. Эта функция пригодится, если вы хотите, чтобы пользователь начал какую-то часть игры, но не смог продолжить до тех пор, пока необходимые кадры не будут готовы.

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

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

Итак, прочитав эту книгу, вы решили создать свою собственную игру. На это у вас ушли месяцы. Когда вы закончили свой проект, получилась замечательная Flash-игра. Вы убеждены, что она станет суперпопулярной и сделает вас знаменитым.

Вы разместили игру на Web-сайте и начали ждать результатов. Через несколько недель вы узнали, что в нее играют сотни людей. Вы также обнаружили аналогичную игру на домашней страничке подростка из штата Небраска.

Минуточку! Это же ваша игра! Она на домашней страничке какого-то подростка, который утверждает, что сам создал ее! Но что еще хуже – на его страничку заходят миллионы и миллионы людей. И лавры за созданную вами игру достаются ему.

Предотвратить это можно несколькими способами. Давайте сначала рассмотрим, как происходит такая кража.

Как и почему воруют игры

Уже на протяжении пяти лет я создаю для Web игры на базе технологий Shockwave и Flash. Я обнаружил, что мои игры без разрешения используются на различных Web-сайтах, начиная от персональных домашних страничек и заканчивая официальными бизнес-сайтами.

Первое, что следует понять, – в 90 % случаев вор даже не подозревает, что совершает кражу. Для большинства людей Internet стал большой бесплатной игровой площадкой. Многое они получают бесплатно и даже не думают о том, кто владеет этой программой или любой другой информацией, какова была стоимость ее создания, они не задумываются о проблемах копирования и интеллектуальной собственности. Все это не имеет значения, так как большинство программ бесплатные.

Когда кто-то начинает создавать свой собственный Web-сайт, не важно – домашнюю страничку или сайт, который положит начало электронному бизнесу, этот человек не думает о таких вопросах. Напротив, он считает, что раз можно посмотреть что-то бесплатно, то можно, также не платя денег, использовать понравившееся на своем Web-сайте. Если пользователь видит что-то заслуживающее внимания на чужом сайте, он смотрит HTML-код и копирует его. Если он видит интересную анимированную GIF-картинку, он щелкает правой кнопкой мыши и сохраняет ее на компьютере, чтобы впоследствии использовать для своего сайта. Если он видит вашу игру, то также берет ее и размещает на своей страничке.

Некоторые люди понимают, что это неправильно, но не осознают, какой вред причиняют. Они считают, что если ограничение скорости – 55 миль/час, то ничего не случится, если они будут ехать со скоростью 56 миль/час. Для них сеть – многомиллионная корпорация, и они не могут кому-то навредить, если возьмут одну небольшую игру для своего сайта.

Годами я слышал все это. Люди просят, и я разрешаю размещать игры на их сайтах, даже если не был знаком с ними ранее. Люди убеждены, что раз они купили одну из моих книг, значит, все, что есть на моем Web-сайте, может появиться и на их страничках. Люди утверждают, что все программы и другая информация должны быть бесплатными, чтобы можно было брать игры, ни у кого не спрашивая разрешения.

Методы, которыми пользуются люди для получения Flash-игр, на удивление просты. Один из вариантов: вор просматривает HTML-код страницы, где располагается ваш ролик, получает имя и путь к нему с помощью параметра src тэга OBJECT или embed, а затем указывает в браузере непосредственный путь к swf-файлу. После этого пользователь может выбрать пункт File → Save as (Файл → Сохранить как), чтобы сохранить swf-файл на своем локальном жестком диске.

Даже если вы умудрились спрятать HTML-код от пользователя, он всегда может найти скрытые файлы в кэше своего браузера и выбрать из них соответствующий swf-файл.

Как предотвратить воспроизведение игры с другого компьютера

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

Итак, как помешать кому-либо украсть вашу игру? Никак. Но вы можете помешать ему проигрывать игру с другого сайта, таким образом, украденная игра станет бесполезной.

Ключ к такой защите – свойство _url, которое возвращает строчку, содержащую весь путь к вашему swf-файлу. Если ролик располагается по адресу http://www.garyrosenzweig.com/flash5book/copyprotection1.swf, именно эту строчку вернет свойство _url.

После того как вы ее получили, можете разбить ее на части и выделить имя основного домена. Например, в вышеприведенном адресе основной домен – garyrosenzweig.com. Просмотрите следующий фрагмент программы Copyprotection1.fla:

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

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

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

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

c1 = _url.indexOf("://"+3;

c2 = _url.indexOf("/", c1);

domain = _url.sunstring(c1, c2);

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

c3 = domain.lasrIndexOf(".")-1;

c4 = domain.lastIndexOf(".", c3) +1;

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

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

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

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

...

Совет

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

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

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

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

c1 = _url.indexOf("://"+3;

c2 = _url.indexOf("/", c1);

domain = _url.sunstring(c1, c2);

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

c3 = domain.lasrIndexOf(".")-1;

c4 = domain.lastIndexOf(".", c3) +1;

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

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

if (domain != "garyrosenzweig.com") {

gotoAndPlay("stolen");

} else {

gotoAndPlat("start");

}

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

Как обойти защиту от копирования

1 ... 81 82 83 84 85 ... 90 ВПЕРЕД
Перейти на страницу:

Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Гэри Розенцвейг - Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript, относящееся к жанру Программирование. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.

Комментарии (0)