видимо проблема сейчас после if в двигать мышь и кликнуть на элемент
var data = {fail:false,wait:true};data["scroll"] = "no scroll" == "scroll";data["threshold"] = parseInt(80);data["timeout"] = 5000;data["data"] = "iVBORw0KGgoAAAANSUhEUgAAAMEAAAAeBAMAAABnBGdVAAAALVBMVEUAWv/V5P////+cv/9Chf+Qt/+81P/k7v+Crv/y9/+nxv/5+/9dlv/F2f9zpf8aFseGAAABB0lEQVR4Ae2SsUoDQRCG58ixbHHFXhCsHcHG5kilaJFG5j1EMIepwqFgtYWNbGWEEGGtfQBBzm4LC/MkvoazupWphEkT9msGrvi/m38HMpnMfxg2a5/O0qxVJyDQT2sp5bWoQd32GzbQdAHl7NAqPABCr5+xJ+Rgh3tChhN7OaZO+SvrThfQfr6H9oN3qB5h1MgYanDNvf1pZtABTV6BLn5bWskY+F/JHIc4QSHiZAnFTjSUM5QxxFSfDAXn6WSo5kZoBzKg31JLyrMhtTTw3J6IIYbffBm9bANNH8Ad8UuHmg19NZcx7I75nO7Sta5wn6/Vw4iXOccXI3NLf+B32DDbYMhktphvXodGRgltnEgAAAAASUVORK5CYII=";_wait_image(data)!
_if(typeof _Idle != "undefined", function(){
_Idle.emulate({useGeneral: true, target: _image()})!
})!
_if_else(typeof _Idle != "undefined" && _Idle.additionalEmulationEnabled(), function(){
_Idle.moveAndClickOn(_image(),{holdCtrl: false, clickType: "left", wait: false, moveSettings: {} })!
}, function(){
_image().random_point()!
_if(_result().length > 0, function(){
move( {} )!
_image().clarify(X,Y)!
_call(_clarify, {} )!
mouse(X,Y)!
})!
})!
Не работает вызов функции
-
@Fox said in Не работает вызов функции:
Смотря что вы подразумеваете под названием "глобальная переменная"
Имено то что можно объявить кубиком "Установить глобальную переменную" в БАС
@_User_ said in Не работает вызов функции:
(с данной функцией она не взаимодействует)
Я технически не могу засунуть кубик "Установить глобальную переменную" внутрь кубика "выполнить код" где у меня и объявлена данная функция.
Вот меня и озадачило такое поведение: данная функция работать в исходном виде перестала, а вторая аналогичная до сих про продолжает стабильно работать. -
Сразу не до конца понял
@Fox said in Не работает вызов функции:
Скорее всего вы её объявляете в созданной функции BAS
ситуация такая: глобальная переменная обявлена в тойже функции BAS, где находится кубик "выполнить код" с объявленной функцией, но я пробовал переносить объявление в другую функцию BAS, объединял её объявление с JS кодом той функции, что продолжает работать (объявлял несколько функций в одном "выполнить код") и прочие комбинации (объявление раньше вызова, позже, вместе в разных функциях, менял местами первый вызов (объявление глобальной переменной) и кубик с кодом JS).
Это ни чего не меняет. При запуске или при сборке в модуль (это делается как модуль) вылетает одна и таже ошибка. -
@_User_ said in Не работает вызов функции:
Сразу не до конца понял
@Fox said in Не работает вызов функции:
Скорее всего вы её объявляете в созданной функции BAS
ситуация такая: глобальная переменная обявлена в тойже функции BAS, где находится кубик "выполнить код" с объявленной функцией, но я пробовал переносить объявление в другую функцию BAS, объединял её объявление с JS кодом той функции, что продолжает работать (объявлял несколько функций в одном "выполнить код") и прочие комбинации (объявление раньше вызова, позже, вместе в разных функциях, менял местами первый вызов (объявление глобальной переменной) и кубик с кодом JS).
Это ни чего не меняет. При запуске или при сборке в модуль (это делается как модуль) вылетает одна и таже ошибка.Ни чего не понял.. Приложите тестовый скрипт
-
@Fox
Он в стадии "активного редактирования" :D, и то что есть не дописано, но уже прилично по объему, так что из него "нопонятностей" будет только еще больше.
попробую выложить эту кашу поэтапно:- Пишу модуль с 3мя функциями - 1 рабочая функция, 2 рабочая функция (похожая на первую, но со своей спецификой и вводными параметрами), 3 функция настройки (содержит общие для первых двух данные и настройки) (будет 3 кубика в интерфейсе БАС)
- Поскольку 1 и 2 функции содержат часть одинаковых данных и все их данные обрабатываются по одному алгоритму, то эти общие куски собрал в функции на JS (код на МНОГО короче сам по себе, а в БАС вообще оформляется как несколько кубиков с функциями внутри)
- На этапе написания все шло норм, а вот при сборке в модуль переменные (их чесно дохрена) любой из 3х функции (будущих кубиков) стали недоступны в других функциях - пришлось ввести глобальную переменную (передает объект состоящий из этих переменных) для обмена данными.
- При добавлении этой глобальной переменной, одна из JS функций перестала вызываться в том виде как была объявлена изначально.
Все функции объявленные на JS, вызываются также кодом JS (это не менялось изначально).
Переменные для передачи собираются в объект который передается в глобальной переменной (при получении обратный процесс).
Код функции которая перестала работать пытался перемещать в другие функции (из тех 3х рабочих), переносил в кубики "выполнить код" к тем что работают - безрезультатно. В таком виде перестала работать только эта функция.P.S. Все переменные передаются верно - отслеживал добавлением контрольных точек с выводом в лог.
-
В общем то пока Ваш вариант работает, эта проблема не сильно подпирает (хотя вопрос пока не решенный).
Но если можно в догонку еще один более важный сейчас вопрос.
Можно ли вообще между вызовами отделных частей модуля (настройка и рабочие функции) сохранить результаты их работы в глобальной переменной ?
А то чето не оч. получается и не понятно толи модуль между вызовами выгружается и сохранить не получится, толи у меня опять косяк какой всплыл или просто что то еще для этого надо допилить ? -
@_User_ said in Не работает вызов функции:
Можно ли вообще между вызовами отделных частей модуля (настройка и рабочие функции) сохранить результаты их работы в глобальной переменной ?
Зачем именно в глобальной? Глобальная переменная BAS видна всем потокам, то есть ваше действие из разных потоков будет перезаписывать данные в глобальной переменной. Храните данные в локальной переменной
А то чето не оч. получается и не понятно толи модуль между вызовами выгружается и сохранить не получится, толи у меня опять косяк какой всплыл или просто что то еще для этого надо допилить ?
Основная проблема в том, что вы используете одинаковые слова для обозначения разных элементов. Создайте тестовый скрипт для демонстрации проблемы - так будет помочь проще и быстрее
-
@Fox said in Не работает вызов функции:
Зачем именно в глобальной? Глобальная переменная BAS видна всем потокам, то есть ваше действие из разных потоков будет перезаписывать данные в глобальной переменной. Храните данные в локальной переменной
Это модуль, и его глобальные переменные останутся при нем, на сколько я понимаю (они не появляются в другом проекте когда я вставляю туда этот скомпилированный кубик)
Глобальные переменные - для обмена данными между частями внутри этого модуля (локальные переменные работают только в режиме записи)В конечном итоге это должен быть модуль ожидания.
В общей функции - делаются настройки поведения курсора при ожидании, тип поведения, порог совпадения для base64 и несколько сторок данных (не буду вдаваться в подробности чтобы не путать). Вот эти данные и должны храниться между вызовами и быть доступны везде в пределах модуля.
2 другие функции - это функции ожидания (одна простое ожидание со своими примочками, вторая ожидание с повтором действия (клик -> ждем реакции, нет -> повтор клика)). Эти 2 функции используют одинаковые данные, хранимые в одном и томже массиве (но каждая свои - входные параметры "кубика"), которые обрабатываются одними и теми же функциями и здесь глобальная переменная нужна для передачи этих данных на обработку.В общем вначале задали общие настроки и они хранятся все время работы (уже того скрипта куда вставим этот модуль)(или до повторного задания).
Вызываем простое ожидание, оно набивает рабочий массив своими данными + общие настройки и отрабатывает как прописано.
Если вызываем клик с ожиданием - оно набивает тотже рабочий массив своими данными + общие настройки и отрабатывает как ему предписано (И использует теже функции обработки, что и простое ожидание).Написать тестовый скрипт для демонстрации это сейчас то же чтои дописать не работающий :D
Закончу (надеюсь) - выложу полность. Думаю будет полезной штукой (у меня должен сократить объем кода обвязки наверно на четверть) -
Я уже со счета сбился сколько раз я все это переписывал (больше 30 точно)
И просто хотел сразу узнать будет ли в глобальной переменной модуля храниться его общие настройки (для него же) между вызовами или все полность выгружается как только кубик отработал (НУ очень не хочется опять вхолостую столько кода лопатить и не факт что без ошибок которые потом снова хрен знает сколько вылавливать) -
@Oyasumi-Punpun
Все что я узнал о модулях я добыл именно таким способом + гугл который постоянно посылает на этот форум и сайты по JS (с которым я кстати начал знакомиться именно из-за этого модуля). Так что все что пришло в голову - уже испробовал. -
@_User_ said in Не работает вызов функции:
@Oyasumi-Punpun
Все что я узнал о модулях я добыл именно таким способом + гугл который постоянно посылает на этот форум и сайты по JS (с которым я кстати начал знакомиться именно из-за этого модуля). Так что все что пришло в голову - уже испробовал.