Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.06.2012, 14:18
GeorgeMan вне форума Посмотреть профиль Отправить личное сообщение для GeorgeMan Посетить домашнюю страницу GeorgeMan Найти все сообщения от GeorgeMan
  № 1  
Ответить с цитированием
GeorgeMan
[+1.3 01.09.06]
 
Аватар для GeorgeMan

Регистрация: Oct 2003
Адрес: г. Томск
Сообщений: 58
По умолчанию Статстика нажатия на кнопку...

Мое почтение, Уважаемые...

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

Заранее благодарен за посильную помощ...)


Помню был тут раздел с готовыми скриптаптиками, что то не по глазам...

Старый 19.06.2012, 14:44
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 2  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Думаю, что вам нужно не статистику именно кликов считать, а статистику просмотра страниц.

Накидал примерчик, чтоб удобнее было:
Код AS1/AS2:
_global.statsController = {};
_global.statsController.init = function(statsClip) {
	if (this.inited) {
		return;
	}
	this.inited = true;
	if (!statsClip) {
		statsClip = _root;
	}
	this.statsClip = statsClip;
	this.stats = [];
	this.capturer = _root.createEmptyMovieClip("__stats_capturer", _root.getNextHighestDepth());
	this.capturer._prevFrame = -1;
	this.capturer.onEnterFrame = function() {
		var c = _global.statsController.statsClip._currentframe - 1;
		if (this._prevFrame != c) {
			this._prevFrame = c;
			if (!_global.statsController.stats[c]) {
				_global.statsController.stats[c] = 0;
			}
			_global.statsController.stats[c]++;
		}
	};
	this.capturer.onEnterFrame();
};
_global.statsController.getStats = function() {
	var totalStats = this.statsClip._totalframes;
	for (var k = 0; k < totalStats; k++) {
		if (!this.stats[k]) {
			this.stats[k] = 0;
		}
	}
	return this.stats;
};
_global.statsController.getRelativeStats = function() {
	var total = 0;
	var output = [];
	var totalStats = this.statsClip._totalframes;
	for (var k = 0; k < totalStats; k++) {
		if (!this.stats[k]) {
			output[k] = 0;
		} else {
			output[k] = this.stats[k] / total * 100;
		}
	}
	return output;
};
//-------- Example
 
_global.statsController.init(_root);
this.onMouseDown = function() {
	var addFrame = Math.random() - 0.5 < 0 ? -1 : 1;
	var c = this._currentframe;
	c += addFrame;
	c = c == 1 ? this._totalframes : c;
	c = c > this._totalframes ? 2 : c;
	this.gotoAndStop(c);
};
 
var keyListener = {};
keyListener.onKeyDown = function() {
	trace(_global.statsController.getStats());
	trace(_global.statsController.getRelativeStats());
};
Key.addListener(keyListener);
 
this.gotoAndStop(2);
Собственно принцип такой:
1. Копируем первую часть кода до комментария "Example" и вставляем в первый кадр основной временной шкалы.

2. Если у вас все кадры презентации находятся на основной врменной шкале, то инициализируем сбор статистики так:
Код AS1/AS2:
_global.statsController.init(_root);
Если в каком-то мувиклие, то, соответственно так:
Код AS1/AS2:
_global.statsController.init( someMovieClip );
Где someMovieClip — это instance name клипа с кадрами презентации.

3. При изменении текущего кадра в клипе с презентацией будет увеличиваться значение в массиве, который можно получить методом
Код AS1/AS2:
trace(_global.statsController.getStats());
3.2 Для получения процентов просмотра кадров (от 0 до 100) можно воспользоваться методом _global.statsController.getRelativeStats().

Для примера и тестирования, создайте пустой исходник в несколькими десятками кадров и в первом вставьте полностью мой код. Щелкая мышкой будет произвольно переключаться кадр, а нажав на любую кнопку вы увидите статистику посещений кадров.
__________________
hauts.ru


Последний раз редактировалось Hauts; 19.06.2012 в 18:40.
Старый 19.06.2012, 15:08
GeorgeMan вне форума Посмотреть профиль Отправить личное сообщение для GeorgeMan Посетить домашнюю страницу GeorgeMan Найти все сообщения от GeorgeMan
  № 3  
Ответить с цитированием
GeorgeMan
[+1.3 01.09.06]
 
Аватар для GeorgeMan

Регистрация: Oct 2003
Адрес: г. Томск
Сообщений: 58
Какое вам огромное спасибо... Сейчас сяду разбираться...) Надеюсь хватит мозгов...)

Старый 19.06.2012, 15:10
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 4  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
P.S. Вы просили самый простой способ... Ну, например так:

1. Заводите переменную prevButtonClickCounter и переменную nextButtonClickCounter равными 0 на основной временной шкале.

2. При кликах на кнопки, соответственно дописывайте _root.prevButtonClickCounter ++ и т.п.

В таком случае у вас будут два значения — кол-во кликов по кнопке перехода на предыдущий слайд и на следующий.
__________________
hauts.ru

Старый 19.06.2012, 15:57
GeorgeMan вне форума Посмотреть профиль Отправить личное сообщение для GeorgeMan Посетить домашнюю страницу GeorgeMan Найти все сообщения от GeorgeMan
  № 5  
Ответить с цитированием
GeorgeMan
[+1.3 01.09.06]
 
Аватар для GeorgeMan

Регистрация: Oct 2003
Адрес: г. Томск
Сообщений: 58
Ага... домой скоро припрусь, попытаюсь разобрать по косточкам... И еще раз спасибо...

Добавлено через 13 минут
я вам там кстати в личку скинул вопрос... Так на всякий случай,..)

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:31.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:31.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.