Назад в раздел
ИНСТРУМЕНТЫ НОВОГО ПОКОЛЕНИЯ - счетчики
div.main {margin-left: 20pt; margin-right: 20pt}
ИНСТРУМЕНТЫ НОВОГО ПОКОЛЕНИЯ - счетчики
//------------------------------------------------------------------------- // ИНСТРУМЕНТЫ НОВОГО ПОКОЛЕНИЯ //-------------------------------------------------------------------------
Сегодня я поделюсь со всеми весьма полезной и очень нужной одной сетевой приблудой, а именно - своей машинкой, для подсчета остановок.
И так, знакомтесь - флэшевый КАУНТЕР.
Каунтер - это такая штука, которая присвоит Вам порядковый номер, в тот момент, когда Вы поимеете неосторожность заглянуть, вдруг, на мою страничку, заблудившись в ВВВ, бескрайних просторах инета. Тут-то я и не упущу момент ехидно потирая ручонки записать : - АГА! Попался, будешь 13 номер... ;)=
А попросту - СЧЕТЧИК. Ведь каждый согласится, что счетчик жизненно необходимая вещь для использования в корыстных целях...
Почему именно флэшевый? А почему бы и нет?
Флэш точно такой же инструмент, как и остальные, но по моему мнению (а не по мнению какого-то там продажного Нильсена, ну и рожа на фотке, явно булки жрет, буржуй) флэш и предоставляет именно те широкие горизонты и ВОЗМОЖНОСТИ для полета творческой мысли, какие не предоставляет никакая другая программа на сей день.
Но какая же свобода без энергетической подпитки? Поэтому себя всячески нужно поощрять и хвалить, например: - О, на моем хомяке сегодня уже восьмой посетитель за этот год, УРА! Вперед! Не стой на месте, твори сам.
//. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. ЭКИПИРОВКА
Для нашего полета нам потребуются крылья следующих моделей: 1 Графический редактор ФЛЭШ версии 5, или 6 (МХ) 2 Текстовый редактор (любой подходящий, например БЛОКНОТ, я же юзаю УЛЬТРАЕДИТ http://www.ultraedit.com) 3 И, разумеется, сервер (подойдет даже локальный) с ФТП-доступом к нашему аккаунту и поддержкой PHP.
PHP это П-Х-П (php), а не какое-то там русское нациАнальное Ед... тьфу, меньшинство - да, это именно тот плазменный мотор, который и будет сжигать наш керосин во время продвижения по службе...
Если Вы все это удачно раздобыли и считаете себя готовым, то ГО-0-ГО-0-ГО-0!
- Налево, командаааа... - в RUSH на базу "А", две гренки в проход, добиваем оставшихся СТ из 1-3, раунд наш! - Stick together, team!
Инструктор предполагает, также, что Вы уже прошли КМБ (курс малолетнего бойскаута) И знакомы со всеми морскими и фэлшевыми узлами, как то:
- А как мэне изменить размер рабочего по-о-оля, учитэл? - СлушАй, Гиви, дастал, берешь саперку и мэняешь, от меня до следующего танка...
- Харашо, учител, а кнопка-то гиде рисовается? - Гиви, в П... всо, малчу, малчу, дарагой, утри соплю...
... а также, что знакомы с тем, как пишутся скрипты внутри флэш-редактора.
//. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. ИНСТРУМЕНТЫ НОВОГО ПОКОЛЕНИЯ Откроем редактор ФЛЭШ 5, или МХ Сохраним наш файл в какую-нибудь дирректорию, с именем "counter.fla" Необходимые в работе элементы: Мувиклип - 1 штука. (рисуем черный прямоугольник, выделяем, жмем Ф-8, выбираем МУВИКЛИП, ЕНТЕР, цель уничтожена) Текстовое поле - 1 штука, например внутри этого мувиклипа. Заходим в режим редактирования оного по даблклику и поверх черного квадрата рисуем текстовое поле в свойствах поля (правый клик на поле > properties) выставляем напротив надписи VAR: counter и не забудьте поменять цвет текста на отличный от фона, например - белый =) выходим из режима редактирования (например сделаем даблклик вне рабочей области) выделив мувиклип, по правой кнопке мыши заходим в контекстное меню и выбираем ACTIONS вписываем в окошко только одну строчку: #include "counter.mx" Откроем блокнотик =). И напишем в файле следующие строки: //. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . onClipEvent(load) { loadVariables("./counter.php",this,"POST"); } onClipEvent(data) { this.counter = this.n; } //. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Сохранимся с именем "counter.mx" в той же дирректории что и файл 'COUNTER.FLA'. И на этом создание нашей клиентской части завершено. Осталось только нажать PUBLISH и скомпилировать файл. То, что я сейчас описал настолько просто, что меня даже не сильно затруднит это теперь растолковать ;) onClipEvent(load) - событие, которое срабатывает при инициализации клипа. loadVariables - функция, которая пошлет запрос на наш сервер по следующему пути: "./counter.php" this - означает, что ответ предназначен для СЕБЯ, т. е ответ придет в тот же объект из которого он был вызван. "POST" - это метод посылки нашего запроса. onClipEvent(data) - событие, которое произойдет, когда придет ответ от сервера вместе со всей требухой целиком и полностью и вместе с данными. this.counter = this.n; - эта строка всего навсего присвоит переменной "counter" (текстовое поле, помним?) значение "n" - его мы опишем потом. "n" - и будет содержать некое число, которое пришлет нам наш скрипт "counter.php" хе хе. и все Клиент готов... И будет жить... //. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. РАСТАМАНСТВО?
ПХП...или... ПЫ-ХЫ-ПЫ? или ... Пых Пых Пых...
Тока не будем спорится и ссорить насчет того, кто круче Перловка или Овсянка-Сээр ПХП - круче, и точка. Удобнее. ...Мне.. удобнее... ;)= И вам понравится...
Создадим новый фаил в том же блокноте и скопируем нижесодержащиеся строчки, а потом сохраним это все с "что в иииимени тебеееээээ моййооооммм" именем файла "counter.php" снова в ту же дирректорию, что и другие файлы...
Может это несколько некорректно, но я ужасный неряха и обожжжжаю сваливать всякие разные файлы в одну кучу вперемешку и вперепрыжку... Всегда есть возможность нажать ctrl+F4 или F8 =)...
прим. переводчика бумаги: все, что начинается с "//" можно в файле стереть нафиг, это просто комментарии... и читать будет проще.
//---------------------------- САМ СКРИПТ --------------------------- <? $filename = "counter/counter.txt"; // зададим имя файла, который будет хранить нашу великую цифру $testfile=file_exists($filename); // протестируем наличие этого файла в указаном месте ф-я вернет true/false if($testfile) // если true, то файл существует, можно с ним работать {
$fp=fopen($filename,"r+"); // откроем файл ("r+" - говорит о том, что файл открывается на чтение+запись) flock($fp,1); // заблокируем файл, чтобы два процесса не ввязались в борьбу за обладание им
$counter=file($filename); // запомним содержимое файла в массив $counter fputs($fp,$counter[0]+1); // и запишем это же содержимое внутрь текстового файла, но прибавив единичку $numb = $counter[0]+1; // тут мы просто запомним "а скока их там всего этих цыфирь" echo ("&n=$numb&"); // а вот эта строчка и пошлет нужную нам строку во флэш
// например, если мы не из флэша вызовем скрипт, а просто из браузера // пропишем путь к нему как http://mydomen.ru/myscripts/counter.php // То увидим страничку с числом зверя ;), например &n=155996600456& ОГО, скока посетителей.
flock($fp,3); // разблокируем файл fclose($fp); // закроем его, он нам больше не нужен }else{ mkdir("counter",0700); // ".. а мне плевать - уходи...я агент 007" создадим дирректорию для файла, в котором будет храниться число для счетчика (а 0700 это права доступа $fp = fopen($filename,"w+"); // а вот если в наличии файла не оказалось, то провернем такую процедДуру // откроем файл, но уже на "W+" ' запись, но если файла нет, то скрипт его создаст fputs($fp, "1"); // запишем туда число 1, поскольку он еще пустой и первенький наш... =)... аж слеза прошибла... fclose($fp); // и закроем его } // УСЕ, ЕНЖОЙ, и пусть энвиронмент попляшет вместе с нами в диком буги-вудууу... ?> //----------------------- конец фыльма ----------------------
//. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. КАК ЖЕ ЭТО ВСЕ РАБОТАЕТ...
Теперь у нас есть все запчасти для использования, а именно: "Клиент" - это файл "counter.swf" "Сервер" - это наш ПыХыПы.
Чтобы все это заработало, побросайте это на сервере в одну дирректорию (не забудьте задать права доступа для дирректории (в фаре жмем КНТРЛ+А = RWX RWX RWX)) и запустите из браузера, сначала "counter.php" пример: http://wb.legus.ru/test/php/counter/counter.php
потом "counter.swf" пример: http://wb.legus.ru/test/php/counter/counter.html
и понажимайте F5, а тоскливо наблюдать одну только единичку ;)= (правда кэш нужно-таки чистить, постоянно)
При загрузке файла "counter.swf" он обратится, с помощью "loadVariables();" по заданному пути к скрипту "counter.php" Скрипт же откроет файл "counter.txt" , посмотрит туда, узнает какое там лежит число, затем прибавит еденичку, затем выдаст это в виде ответа (echo) - ФЛЭШУ и закроет файл.
"counter.swf" примет ответ скрипта и с помощью события (data) отобразит в текстовом поле этот ответ.
Но если хочется, чтобы счетчик был навороченым и крутым, не обязательно отображать какие-то там цифры в поле. Фишка в том, чтобы получить ответ. А уж как его потом использовать зависит от мастерства флэшера.
Например мой счетчик на сайте немного более продвинут и не будет безумно крутится при каждом рефреше страницы, а крутанется только через день. Поскольку я заюзал метод "POST" я могу совершенно прозрачно передавать скрипту любые свои безумные параметры...
Что ж.. изучаем ПыХыПы и все получится ;)= //. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Все копирайты можно тоже удалить, все-равно скрипт, кроме вас никому не интересен, Зато потом можно будет растопырить пальцы и сказать
function() { trace(Я - КРУТ) // undefined }
//------------------------------------------------------------------------- // Copyright © Willyam Bradberry 2002 // [flash - master] mailto:willyam@newmail.ru // wb@3wgraphics.net //-------------------------------------------------------------------------
ЗЫ: ФЛЭШЕР не забудь громко крикнуть ВСЛУХ "СПАСИБО УИЛЬЯМ БРЭДБЕРРИ" это поможет немного тебе избавиться от ЧСВ (чувство собственной важности) и чуть -чуть помолодеть...
ЗЗЫ: пояснялки:: "в фаре жмем..", это заначит открываем программу FAR http://www.rarsoft.com и подключаемся по ФТП к серверу (alt+F2 > FTP). //. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "создадим дирректорию для файла, в котором будет храниться число для счетчика (а 0700 это права доступа)" скрипт устроен так, что проверит наличие файла и выполнит эту строку только один раз, в его(файла) отсутствие //. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "0700" - про права доступа можно прочитать во всяких хелпах по ПХП и ЮНИКС-ос http://www.php.net
Автор: © Уильям Брэдберри Источник:
http://www.flasher.ru
|
|
|
|
|
|
|
Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
|
|
|