Цитата:
Сообщение от PainKiller
как вариант можно написать бота, например как здесь, но мне это кажется перебором, кликанье ничем не заменить.
|
Ссылка битая
2
Psycho Tiger: т.е. все равнозначные контроллеры наследуются от общего, который использует одно и то же хранилище вьюшек? Ну да не суть. Идею понял, в настоящий момент пытаюсь воплотить со своими поправками, интересно, что получится.
2
wvxvw:
У меня была скриптовая система, но заточить на что-то большее чем составные читы не вышло. В итоге я её выпилил, т.к. оказалось, что на as3 тоже самое налепить эффективнее по многим параметрам (даже учитывая небыстрый наш компилятор mxmlc). А вот о возможности динамической генерации скрипта при записи сценария и позабыл. Вчитываюсь...
Действительно, тяжеловато понять что тут происходит. Итересно, как бы эта система выглядела для простого сценария:
- юзер нажал кнопку "открыть окно"
- юзер дождался, пока пройдут все асинхронные процессы и окно таки откроется
- юзер нажал кнопку "сделать ерунду"
- убедиться что в ответ на нажатие кнопки "сделать фигню" появился Alert "вы делаете фигню, нельзя!"
С глобальным регистром view[class of view] еще что-то могу представить:
Не мудрствуя лукаво, создаем конвеер Потапенко и добавляем туда задачи:
- юзер нажал кнопку "открыть окно"
берем у главной вьюшки кнопку по геттеру и эмулируем нажатие:

Код AS3:
_mainView.openWindowButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
- юзер дождался, пока пройдут все асинхронные процессы и окно таки откроется
долбим по ENTER_FRAME следующее

Код AS3:
_window = register.getView(Window)
if (_window == null)
{
_numTicks++;
if (_numTicks > waitLimith)
{
throw "не дождались!";
}
}
else
{
//дождались
_conveyor.play();
}
- юзер нажал кнопку "сделать ерунду"

Код AS3:
_window.makeBadThingButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
- убедиться что в ответ на нажатие кнопки "сделать ерунду" появился Alert "Вы делаете ерунду, нельзя!"

Код AS3:
var alert:Alert = register.getView(Alert);
if (alert == null)
{
_numTicks++;
if (_numTicks > waitLimith)
{
throw "мы ждали, ждали, а окно Вы делаете ерунду так и не всплыло";
}
}
else
{
if (alert.text != "Вы делаете ерунду, нельзя!")
{
throw "Вообще-то, мы ожидали другое окно";
}
_conveyor.play();
}
А вот со скриптом как это будет вообще не представляю
