for e, p in pairs(obj)doif obj.raw then-- Перед этим мы ставим raw. Предохранитель на то что всё пойдёт не так.if e =='onTocuh'or e =='type'or e =='raw'or e =='path'then-- Пропускаем. Содержат либо таблицы либо функций. Нежелательно их трогать.elseif e =='mode'and obj.type =='button'then-- Потом вынесем в отдельную функцию.
obj.raw:remove()
create(obj)elseif e =='mode'then-- Потом вынесем в отдельную функцию. Тут вообще не тот параметр кст.
obj.stage =0
obj:tick()elseif e =='items'and obj.type =='comboBox'then-- Потом вынесем в отдельную функцию.
obj.raw:clear()for j =1,#obj.items dolocal tmp = obj.raw:addItem(ocj.items[j].name,obj.items[j].active)
tmp.path = obj.items[j].path
tmp.index = j
tmp.onTouch =function(tmp,tmp01)
execute(tmp01.path,tmp.index,tmp01.index)endendelseif e =='colorbg'then
obj.raw.colors.default.background = obj[e]-- Привязываем через =elseif e =='colorbgp'and obj.type =='input'then
obj.raw.colors.focused.background = obj[e]-- Привязываем через =elseif e =='colorbgp'then
obj.raw.colors.pressed.background = obj[e]-- Привязываем через =elseif e =='colorfg'or e =='colort'then
obj.raw.colors.default.text = obj[e]-- Привязываем через =elseif e =='colorfgp'and obj.type =='input'then-- Этот ..
obj.raw.colors.focused.text = obj[e]-- Привязываем через =elseif e =='colorfgp'then-- .. первее этого т.к. имя параметра объекта у них одинаковые, но параметры в raw разные.
obj.raw.colors.pressed.text = obj[e]-- Привязываем через =elseif e =='colorph'then
obj.raw.colors.placeholderText = obj[e]-- Привязываем через =elseif e =='colorv'then
obj.raw.colors.value = obj[e]-- Привязываем через =elseif e =='colora'then
obj.raw.colors.arrow.text = obj[e]-- Привязываем через =elseif e =='colorabg'then
obj.raw.colors.arrow.background = obj[e]-- Привязываем через =elseif e =='colorp'and obj.type =='switch'or obj.type =='slider'and e =='colors'or obj.type =='progressBar'and e =='colorp'then
obj.raw.colors.active = obj[e]-- Привязываем через =elseif(e =='colors'and obj.type =='switch'or obj.type =='progressBar')or obj.type =='slider'and e =='colorpp'or obj.type =='progressIndicator'and e =='colorpa'then
obj.raw.colors.passive = obj[e]-- Привязываем через =elseif e =='colorpp'and obj.type =='switch'or obj.type =='slider'and e =='colorp'then
obj.raw.colors.pipe = obj[e]-- Привязываем через =elseif e =='textph'then
obj.raw.placeholderText = obj[e]-- Привязываем через =elseif obj.type =='panel'thenif e =='color'then
obj.raw.colors.background = obj[e]-- Привязываем через =endelseif obj.type =='switch'thenif e =='state'then
obj.raw:setState(obj[e])-- Потом вынесем в отдельную функцию.endelseif obj.type =='progressIdnicator'thenif e =='colorp'then
obj.raw.colors.primary = obj[e]-- Привязываем через =elseif e =='colorp'then
obj.raw.colors.secondary = obj[e]-- Привязываем через =endelse
obj.raw[params[e]or e]= obj[e]-- Привязываем через = то что осталось. есть таблица параметров аля x = 'localX', если параметра в таблицуе нету, значит мы используем параметр буквку в букву.endendend
Как мы видим, оно должно привязывать параметры к их эквивалентам в raw. Но, когда мы изменяем параметр объекта, параметр raw-а остаётся тем-же.
Соответственно нужно что-бы если мы изменяли параметр объекта, мы изменяли его и в raw.
Аля:
local object ={}local raw ={localX =-20}
object.raw = raw
object.x =15
object.raw.localX = object.x
print(object.x,object.raw.localX)-- 15 15
object.x =0
print(object.x,object.raw.localX)-- 0 0
object.localX =20
print(object.x,object.raw.localX)-- 20 20
Вручную каждый друг к другу привязывать не вариант т.к. их слишком много, можно объединить параметры, наставить сравнений, то через цикл оно будет само подбирать нужный вариант.
Есть огрызок кода:
Как мы видим, оно должно привязывать параметры к их эквивалентам в raw. Но, когда мы изменяем параметр объекта, параметр raw-а остаётся тем-же.
Соответственно нужно что-бы если мы изменяли параметр объекта, мы изменяли его и в raw.
Аля:
Вручную каждый друг к другу привязывать не вариант т.к. их слишком много, можно объединить параметры, наставить сравнений, то через цикл оно будет само подбирать нужный вариант.
Изменено пользователем OlesheПоделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах