Строка метки Maxscript

Приведенный ниже код работает нормально, только я хочу динамически изменять текст метки перед созданием развертывания, а не после. Я пытаюсь передать переменную (rolloutlabel) как строку в свитке, только я не могу сделать это без необходимости кодировать ее, обновляя ее кнопкой. (Бесполезная) ошибка, которую я получаю, если раскомментировать 6-ю строку "синтаксическая ошибка: at =, ожидаемое имя"

rolloutlabel = "label"
rollout rolloutDialog "Rollout" width:100 height:50
(
    label alabel "" pos:[10,10] width:90 height:16
    button updateBTN "Update label" pos:[10,25] width:80 height:16
    -- alabel.text = rolloutlabel as string
    -- this just gets a syntax error if i leave it here uncommented
    on updateBTN pressed do
    (
        alabel.text = rolloutlabel
    )
)
createDialog rolloutDialog

Есть идеи, где я иду не так?

2 ответа

Решение

Взгляните на предложение о развертывании:

rolloutlabel = "label"
rollout rolloutDialog "Rollout" width:100 height:50
(
    label alabel "" pos:[10,10] width:90 height:16
    button updateBTN "Update label" pos:[10,25] width:80 height:16
    -- alabel.text = rolloutlabel as string
    -- this just gets a syntax error if i leave it here uncommented

    on rolloutDialog open do
    (
        alabel.text = rolloutlabel
    )


    on updateBTN pressed do
    (
        alabel.text = rolloutlabel
    )
)
createDialog rolloutDialog

Вы можете сохранить тот же сценарий, но вместо пустых двойных кавычек после alabel вы можете просто написать rolloutlabel. Сценарий будет таким:

rolloutlabel = "label"
rollout rolloutDialog "Rollout" width:100 height:50
(
    label alabel rolloutlabel pos:[10,10] width:90 height:16
    button updateBTN "Update label" pos:[10,25] width:80 height:16
    --alabel.text = (rolloutlabel as string)
    -- this just gets a syntax error if i leave it here uncommented
    on updateBTN pressed do
    (
        alabel.text = rolloutlabel
    )
)
createDialog rolloutDialog
Другие вопросы по тегам