Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Статстика нажатия на кнопку... (http://www.flasher.ru/forum/showthread.php?t=181249)

GeorgeMan 19.06.2012 14:18

Статстика нажатия на кнопку...
 
Мое почтение, Уважаемые...

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

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


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

Hauts 19.06.2012 14:44

Думаю, что вам нужно не статистику именно кликов считать, а статистику просмотра страниц.

Накидал примерчик, чтоб удобнее было:
Код 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().

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

GeorgeMan 19.06.2012 15:08

Какое вам огромное спасибо... Сейчас сяду разбираться...) Надеюсь хватит мозгов...)

Hauts 19.06.2012 15:10

P.S. Вы просили самый простой способ... Ну, например так:

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

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

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

GeorgeMan 19.06.2012 15:57

Ага... домой скоро припрусь, попытаюсь разобрать по косточкам... И еще раз спасибо...

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


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

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