Простейшая flash captcha на ActionScript 3

1605
0

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

Раньше мною уже была написана HTML Captcha, теперь я решил попробовать написать каптчу на AS 3.0(ActionScript 3.0). Код получился минимальный!
С ActionScript 3.0 познакомился буквально месяц назад, когда понадобилось срочно сделать баннер с меняющимися фотками на flash. Быстро прочитав справку (благо с ООП знаком) у меня получился довольно неплохой баннер, который подгружает фотки из каталога, а описание к ним загружает из xml файла который лежит так же в каталоге с флеш роликом. Но разговор сейчас не об этом.

Настройки документа ActionScript 3.0
Настройки документа ActionScript 3.0

Первым делом в Adobe Flash Professional CS5 был создан пустой проект ActionScript 3.0 в котором в свойствах был указан основной класс приложения и версия флеш плеера.

Теперь пишем этот основной класс captcha. первоначально подключаем необходимые встроенные классы. Для программирования я использую удобнейшую среду Flash Develop. Все класс подключались автоматически в процессе разработки. Основная задумка каптчи в следующем: при загрузке на captcha ничего не будет, а для того чтобы увидеть контрольный код необходимо вручную навести указатель мыши на каптчу и под маской найти код. При нажатии на каптчу происходит обновление кода. Вот и вся задумка, теперь перейдем к реализации.

Тут начинается самое интересное. Основной класс captcha расширяет класс MovieClip. К каждой строчке написан подробный комментарий

Одним из пунктов задумки было сделать так, чтобы при движении мыши над каптчей ползунок двигался за указателем мыши по оси x не сдвигаясь при этом вверх и вниз. Так же было сделано, чтобы при заходе курсора мыши на каптчу, он прятался. При щелчке мыши необходимо производить запрос нового кода, поэтому на время получения кода будем отключать слушатель клика мыши, чтоб посетитель не мог щелкать слишком часто а дожидался загрузки нового кода.

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

[kml_flashembed publishmethod=»static» fversion=»9.0.0″ movie=»http://omelchuck.ru/wp-content/uploads/2011/09/captcha.swf» width=»150″ height=»50″ targetclass=»flashmovie»]

Вот такая каптча получилась в результате. При щелчке мыши можно заметить как ползунок с Flash Captcha исчезает, а сама Flash Captcha перестает реагировать на щелчки мыши. Это означает, что перестает работать слушатель событий щелчков мыши.

Чуть не забыл. В файле captcha.php для примера я внес всего 2 строчки:

Но Вы можете на свое усмотрение сделать генерацию кода с буквами или еще с какими-то символами.
Надеюсь пост оказался для кого-нибудь полезным. Планирую сделать плагин для wordpress на основе такой Captcha.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here