запись активности пользователя

4 views
Skip to first unread message

Storm

unread,
Nov 5, 2009, 10:14:06 AM11/5/09
to ruFlash
Есть приложение (flash/Air) в котором Юзеру нужно производить
манипуляции. Есть необходимость записывать его действия (фактически
cam capturing). С какой сторон ы лучше подойти к реализации такой
штуке. Есть 2 мысли.
1. использовать приложение на с++/delphi которая будет в себя грузить
флешку и в нужный момент делать капчуринг.
2. попытаться симулировать капчуринг . записав координаты мышки и
потом по ним воспроизводить это все (тут вопрос в производительности,
тк нужно все это сохранять в базу и потом читать ).

У кого какие мысли , кто сталкивался с подобными задачами ?

Ruslan Shestopal

unread,
Nov 5, 2009, 10:24:50 AM11/5/09
to ruf...@googlegroups.com
а на русском? cam - надо полагать webcam?
как то смутно написано.
 
нужно записать действия пользователя т.е. нажатия на кпонки, переход на формы итд?
так что ли?
 

Storm

unread,
Nov 5, 2009, 12:15:36 PM11/5/09
to ruFlash

да именно . И скорее всего вариант с эмуляцией отпадает.
Остается изучать вариант с приложением на с++/delphi.
Если кто пробовал что то подобное отпишите.

Яски

unread,
Nov 5, 2009, 12:23:23 PM11/5/09
to ruFlash
>И скорее всего вариант с эмуляцией отпадает.
Почему отпадает? Мне тоже для одной задачи нужно записывать действия
пользователя в программе. Я как раз хотел решить это запоминая
последовательность движений и кликов мышкой пользователя, а затем
посылать на сервер.

Flop Serg

unread,
Nov 5, 2009, 2:18:24 PM11/5/09
to ruf...@googlegroups.com
а готовые программки которые записывают действия не канают?

bartleby

unread,
Nov 5, 2009, 7:06:56 PM11/5/09
to ruFlash
Storm wrote:
> У кого какие мысли , кто сталкивался с подобными задачами ?
----------
var stack = new Array();
stack.push({x:x, y:y});
при mouseMove
и по клику туда же записывать клик типа
stack.push({x:x, y:y, clik:clik});
--------

Евгений Н.

unread,
Nov 5, 2009, 7:17:05 PM11/5/09
to Storm

>> нужно записать действия пользователя т.е. нажатия на кпонки, переход на
>> формы итд?
>> так что ли?

> да именно . И скорее всего вариант с эмуляцией отпадает.

> Если кто пробовал что то подобное отпишите.

Базовая функциональность:

1) Создаем класс UserLog с методами onUserEvent(param) и saveLog().
2) Инстанцируем п.1: UserLog currentUserLog = new UserLog();
3) В каждом клике по кнопке - вызываем currentUserLog.onUserEvent(param).
4) Когда нужно записать лог активности пользователя в БД - вызываем currentUserLog.saveLog().


Улучшенная функциональность:

5) Усложняем все до невозможности:
5.1) Смотрим где инстацируем. Смотрим права доступа к этому участку кода.
5.2) Избавляемся от типизации параметра как текст, потому что неэффективно анализировать потом - разбором строки. Например такие варианты:
5.2.1) Вводим несколько методов для сбора данных - например onKeyUserEvent(param), onMouseEvent(param).
5.2.2) Или лучше - ввести класс события, который является EventObject-ом, от которого наследуем классы KeyUserEvent, MouseUserEvent, в итоге типизируем метод вызова - суперклассом события: onUserEvent(userEvent:UserEvent). При этом класс события UserEvent (и его подклассы MouseUserEvent, KeyboardUserEvent, ComponentChangeStateUserEvent и т.д.) - инкапсулируют в себе все необходимые данные о данном действии пользователя.
5.3) Вместо п.3 (прямой вызов метода) - используем генерацию событий, подписку на события, слушатели.


компилируем...

--
Евгений Н.

denis.sh...@gmail.com

unread,
Nov 6, 2009, 4:42:08 AM11/6/09
to Storm

> 1. использовать приложение на с++/delphi которая будет в себя грузить
> флешку и в нужный момент делать капчуринг.

> 2. попытаться симулировать капчуринг . записав координаты мышки и
> потом по ним воспроизводить это все (тут вопрос в производительности,
> тк нужно все это сохранять в базу и потом читать ).

> У кого какие мысли , кто сталкивался с подобными задачами ?

Если речь о записывании действий внутри приложения, то полагаю, надо
смотреть в сторону паттерна Command. Т.е. записывать действия в
историю и путем их воспроизведения - получать оригинальный результат,
также можно после какихто сложных действий, типа рисование сохранять
состояние всего приложения, если возможно.

А если достаточно захвата картинки действий пользователя, то надо
смотреть в сторону acrobat connect, они доставляют какой-то "волшебный"
компонент, и это становится возможным, если кто-то знает подробности
про этот компонент, было бы любопытно узнать.


--
Denis Sheremetov

Олег Галабурда

unread,
Nov 6, 2009, 9:37:47 AM11/6/09
to ruf...@googlegroups.com
Здрасте!

Я бы для начала описал всё что надо записывать:
нажатие левой клавиши мышки
движение между нажатием и отпусканием
отпускание левой клавиши мышки

или клик, если драг не играет роли в конкретном случае

Записывать координаты и время от последнего действия и может какой-то
идентификатор цели. в таком случае в базу будет падать только самое
необходимое.

Более точное описание задачи может навести на более трезвые мысли. :)

--
Oleg Galaburda
http://blog.actualwave.com/

foreground

unread,
Nov 7, 2009, 2:24:02 PM11/7/09
to ruf...@googlegroups.com
> Storm
Ваще ниче непонятно.

>Олег Галабурда
А воспроизводить потом кто это будет?

Яски

unread,
Nov 7, 2009, 3:47:38 PM11/7/09
to ruFlash
> А воспроизводить потом кто это будет?
Мне, например, это нужно, чтобы проводить юзабилити-тестирование
интерфейса.
Задачу воспроизведения я хотел решить так:
Записываем движения мыши пользователя и нажатия клавиш на клавиатуре.
Когда происходит смена окна или другая реакция программы на действие
пользователя вызывается метод userRequest(), который записывает
специальное событие в очередь. Затем визуально воспроизводится
последовательность действий пользователя, но реально программа не
реагирует, когда проигрыватель доходит до события userRequest,
воспроизведение приостанавливается и можно уже самостоятельно
выполнить нужные действия, чтобы открыть следующее окно или меню.

foreground

unread,
Nov 7, 2009, 4:28:02 PM11/7/09
to ruf...@googlegroups.com
> Яски <xia...@yandex.ru> написал:
> юзабилити-тестирование интерфейса.

Это поглядеть как пользователь тыкался по приложению чтоли? Сразу ли
он нашёл то что хотел?

Если записывать клики по окну в целом, то наверно это сложно будет
воспроизвести потом учитывая анимации и ожидания подгрузок.. А вот
если как Denis Sheremetov сказал (Command), это наверно ближе к жизни.

Dima Pilipenko

unread,
Nov 7, 2009, 5:11:51 PM11/7/09
to ruf...@googlegroups.com
например можно ввести очки действия.. и у каждого пользователя имеется свой счет активности.

Поясняю!!1

Опр. объект имеет в себе определенные очки, и при нажатии суммируются предыдущие и текущий, ну и ход мыслей понятна и реализация проста :D

Dmitry Kochetov

unread,
Nov 8, 2009, 2:44:38 AM11/8/09
to ruf...@googlegroups.com
Изучали ли Flex Monkey и iMacros ?

8 ноября 2009 г. 0:11 пользователь Dima Pilipenko <dim...@gmail.com> написал:

например можно ввести очки действия.. и у каждого пользователя имеется свой счет активности.

Поясняю!!1

Опр. объект имеет в себе определенные очки, и при нажатии суммируются предыдущие и текущий, ну и ход мыслей понятна и реализация проста :D







--
Feсi quod potui, faciant meliora potentes

Dmitry Kochetov

unread,
Nov 8, 2009, 2:45:43 AM11/8/09
to ruf...@googlegroups.com
Изучали ли Flex Monkey и iMacros ?  Для тестирования имху подходит.

Dima Pilipenko

unread,
Nov 8, 2009, 6:32:32 AM11/8/09
to ruf...@googlegroups.com
нет, не изучал )

8 ноября 2009 г. 9:45 пользователь Dmitry Kochetov <kod...@gmail.com> написал:

Андрей Скорик

unread,
Nov 9, 2009, 5:09:39 AM11/9/09
to ruf...@googlegroups.com
гуглить: Adobe automation framework for the flex components
смотреть код и подходы к реализации
Flex monkey - надстройка над этим насколько я понял

--
С уважением, Скорик Андрей. andrew...@gmail.com

Dimous

unread,
Nov 9, 2009, 9:38:22 AM11/9/09
to ruFlash
Reply all
Reply to author
Forward
0 new messages