Меню сайта
Главная страница Файлы Онлайн книги Альбом Форум Тесты по игре STALKER Школа flash Показать сервисы
Категории раздела
Изучение ActionScript [1]
Уроки разных тематик [0]
Анимация во flash [3]
User Interface [4]
Переводы уроков [0]
Программное рисование [0]
Уроки для новичков [2]
Уроки пользовательской тематики [5]
Наш опрос
Хотели бы вы иметь e-mail вида ваш ник@stalker-war.ru?
Всего ответов: 339
Статистика
-------------------------------

-------------------------------
Всего: 5
Гостей: 5
Юзеров: 0
-------------------------------
-------------------------------



Главная » Школа flash » Уроки пользовательской тематики

Создание опроса на flash

Рассмотрим пример создания опроса при помощи технологии flash. Результаты опроса нужно будет хранить на сервере, поэтому необходим будет скрипт на каком-нибудь серверном языке, который будет записывать в текстовые файлы ту информацию, которую ему передаст флешка (в моём примере этим языком будет php), также необходимо сделать, чтобы пользователь, проголосовав один раз, больше не смог голосовать (сохранение информации о голосовании на стороне клиента, при помощи класса SharedObject).
В нашем примере во флешке для удобсва будет 5 кадров. На первом кадре будет прелоадер , на втором кадре будет стоять проверка – если пользователь ещё не принимал участие в опросе, то переходить на третий кадр (вопрос и варианты ответа), если же пользователь уже принимал участие в опросе, то переходить на четвёртый кадр (загрузка результатов), на пятом же кадре будет отображение результатов.
Для того чтобы хранить информацию о том, голосовал ли уже пользователь, мы будем использовать класс SharedObject.
---
Итак, начнем.
---

1. Создайте новые документ flash, AS2.0. Создайте 3 слоя. 1й - коды, 2й вопросы, 3й графика. На слое вопросы напишите ваш вопрос для опроса и варианты ответов, расположив их друг над другом. Выделите варианты ответов, преобразуйте их все вместе в мувиклип, и дайте ему instance name: texts. На слой графика можете поместить фон для опроса. После этого заблокируте эти слои и переходите к слою коды.

2. Создайте 5 ключевых кадров нажатием кнопки F6. На первом кадре по Вашему желанию можно разместить прелоадер. Мы этот шаг опустим, так как флешка будет весить совсем немного.

3. Перейдите на 2й ключевой кадр, откройте панель Actions (F9), и вставьте туда код:

Code
// создаём экземпляр класса SharedObject
var cookies = SharedObject.getLocal("base");
// Проверяем, имеется ли объект base, показатель того, голосовал ли уже пользователь
//Если его нет, то переходим на третий кадр, опрос.
  if (cookies.data.opros==undefined) gotoAndStop(3)
   else // если пользователь уже голосовал
   gotoAndStop(4); // то переходим на кадр с загрузкой результата голосования


4. Переходим на 3й кадр. Здесь будут располагаться кнопки для ответа в опросе. Создайте кнопки. В нашем случае их будет 4. Задайте каждому экземпляру кнопки по очереди: btn_1, btn_2, btn_3, btn_4. Также можно создать индикатор загрузки - поместите изображение индикатора, преобразуйте в MovieClip, и дайте ему instance name: indikator.
Теперь перейдите на панель actions этого же кадра и вставьте туда код:

Code
stop();
btn_1.useHandCursor = false;
btn_2.useHandCursor = false;
btn_3.useHandCursor = false;
btn_4.useHandCursor = false;
// для каждой кнопки делаем обработчик нажатия onRelease
// При нажатии на каждую кнопку будет вызываться одна и та же функция (golos)
// но с разными парамерами (номер пункта, за который голосует пользователь)
btn_1.onRelease = function() { golos(1) }
btn_2.onRelease = function() { golos(2) }
btn_3.onRelease = function() { golos(3) }
btn_4.onRelease = function() { golos(4) }

indikator._visible = false; // скрываем анимацию загрузки
// пишем функцию "голосования".
// параметр (numb) - номер ответа
function golos(numb) {
// пока идёт запрос на сервер, скрываем все кнопки
btn_1._visible = btn_2._visible = btn_3._visible = btn_4._visible = false;
texts._visible = false; // скрываем тексты над кнопками
indikator._visible = true;// показываем индикатор загрузки
    // создаём два обьекта класса LoadVars,
// для отправки и получения данных
sendvars = new LoadVars();
loadvars = new LoadVars();
// отсылаем номер ответа, который выбрал пользователь
sendvars.numb = numb;
 // делаем запрос на скрипт
sendvars.sendAndLoad('script.php', loadvars, 'POST');
// функция, котрая выполняется, когда flash получил ответ от сервера
loadvars.onLoad = function() {
/* в ответе сервера будут переменные k1, k2, k3 и k4.
Это и будут результаты – сколько людей голосовали
за тот или иной вариант ответа
для того, чтобы не потерять к ним доступ, копируем их в _root*/
   _root.k1 = this.k1;
    _root.k2 = this.k2;
    _root.k3 = this.k3;
    _root.k4 = this.k4;
// переводим фильм на пятый кадр – отображение результата голосования
    gotoAndStop(5);
}
// запишем в cookies информацию о том, что пользователь уже принимал участие в опросе
cookies.data.opros = 'true';
cookies.flush();
}


5. Перейдите на 4й кадр. На нем будет происходить запрос к серверу для получения результатов опроса. На 4й кадр пользователь попадает если он уже голосовал в опросе. Откройте actions и вставьте туда код:
Code
sendvars = new LoadVars();
loadvars = new LoadVars();
// делаем запрос на скрипт, но при этом НЕ отправляем
// переменную numb
sendvars.sendAndLoad('script.php', loadvars, 'POST');
loadvars.onLoad = function() {
    _root.k1 = this.k1;
    _root.k2 = this.k2;
    _root.k3 = this.k3;
    _root.k4 = this.k4;
    gotoAndStop(5);
}

6. Перейдите на 5 кадр. На нем нужно будет создать 4 (в нашем случае) динамических текстовых поля напротив вариантов ответов для отображения результатов опроса. Задайте этим полям по очереди переменную (панель свойства, Var) k1, k2, k3, k4.
7. С программирование флешки закончили. Сохраните ее, и загрузите на сервер.Теперь необходимо поработать над серверной частью. Создайте 4 пустых текстовых файла с именами 1.txt, 2.txt, 3.txt, 4.txt и загрузите их на сервре в ту же папку, где и находится флешка. Теперь осталось загрузить php скрипт для обработки всего вышеуказанного безобразия)). Скопируйте в блокнот данный
[скрипт], и сохраните с названием script и расширением .php. Загрузите его на сервер туда же, куда вы загружали флешку и текстовые файлы.
8. Готово! Опробуйте опрос :)

---
P.S.: Внимание! Для работы опроса необходима поддержка php скриптов!


Смотреть итог

Автор: Евгений (Flash-world) and SkiLLeD
Счетчики: 2253 | Добавил: SkiLLeD | Теги: опрос, флеш опрос, flash опрос, создание опроса, Уроки flash, flash | Рейтинг: 5.0/Оценили: 6 чел.
Всего комментариев: 9
+1  
Ничего не получается скиньте кто нибудь исходник как у вас получилось !плз smile

0  
работает коменты ? а исходник есть ?

+1  
Великолепно! smile smile smile

+7  
Огромное спасибо! Полезный и очень интересный урок! cool

+8  
Улет cool

+7  
Супер!

+6  
Комментируем smile

0  
Открываю пример у меня идет загрузка, загрузка, но результаты не показывает. Почему так?

+6  
Закрой и снова открой окошко smile
При первой загрузке может немного подтормаживать - хостинг слабый.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Профиль
Привет, Гость



СТАЛКЕР!
Я всегда рад видеть
еще одну живую душу!
Но я не знаю кто ты?



Топ-тройка



Design by Stalker-War sitemap | sitemap forum