Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.

+7 495 204-27-80

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: Вызов своей функции из другой сцены

Вызов своей функции из другой сцены 14 Июнь 2018 15:07 #24559

  • Pasha
  • Pasha аватар
  • Вне сайта
  • Новый участник
  • Сообщений: 6
  • Репутация: 0
Всем привет,
возможно кто-то может подсказать как из другой сцены вызвать свою функцию с передачей ей параметров?
Есть Cцена(Х), в которой описана функция, которая вызывается с параметрами Функция (a,b,c,d)
Нужно в сцене (Y) вызвать функцию Функция (a,b,c,d)

Вызов своей функции из другой сцены 15 Июнь 2018 11:27 #24562

  • khaki
  • khaki аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 28
  • Спасибо получено: 4
  • Репутация: 1
Если fibaro HC, то через глобальные переменные

Вызов своей функции из другой сцены 15 Июнь 2018 12:12 #24563

  • Pasha
  • Pasha аватар
  • Вне сайта
  • Новый участник
  • Сообщений: 6
  • Репутация: 0
Да, но если Функция еще и возвращает 4 переменные, то 8 глобальных переменных надо, а каждая из них сжерает немного памяти. Не хочется лепить такой костыль.
За ответ спасибо.

Вызов своей функции из другой сцены 15 Июнь 2018 14:44 #24564

  • khaki
  • khaki аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 28
  • Спасибо получено: 4
  • Репутация: 1
Ну так для того и созданы глобальные переменные, :)

В теории можно создать виртуальное устройство, в него записать значения и в сцене Y вытащить эти значения
Последнее редактирование: 15 Июнь 2018 14:44 от khaki.

Вызов своей функции из другой сцены 15 Июнь 2018 15:01 #24565

  • khaki
  • khaki аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 28
  • Спасибо получено: 4
  • Репутация: 1
Быстрое гугление показало, что в lua так же используются глобальные переменные для таких случаев. Глобальные переменные надо создать в отдельном модуле, и потом вызвать в своем модуле
---- globals.lua ----
 
local m = {}
 
m.myGlobal = 5
 
return m
 
---- main.lua and anywhere else you need to access the globals ----
 
local glo = require ("globals")
 
print (glo.myGlobal)

В общем, тоже самое, что и глобальные переменные в HC

Можно попробовать в сцене Y запросить сцену X как модуль LUA:

local glo = require ("X")

print (glo.a)
Последнее редактирование: 15 Июнь 2018 15:04 от khaki.
Спасибо сказали: Pasha

Вызов своей функции из другой сцены 15 Июнь 2018 16:19 #24566

  • Pasha
  • Pasha аватар
  • Вне сайта
  • Новый участник
  • Сообщений: 6
  • Репутация: 0
О, интересно, надо попробовать.
Время создания страницы: 0.123 секунд