1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Переменная для slidertime внутри функции

Тема в разделе "MAXScript", создана пользователем Александр Якушев, 13 дек 2012.

Модераторы: Savin Denis
  1. Александр Якушев

    Александр Якушев Активный участник

    С нами с:
    13.08.2009
    Сообщения:
    77
    Симпатии:
    1
    Баллы:
    7
    Здравствуйте! Помогите, пожалуйста. Решение скорее всего банальное, но что-то запутался, не могу расковырять.

    Есть функция
    -------------
    fn CurentFrames =
    (
    rollout CFrames "Frames"
    (
    timer tclock "Timer" interval:20
    label var01 ""

    on tclock tick do
    (
    var01.text = slidertime as string
    if slidertime > 100f do
    (
    stopAnimation()
    destroydialog CFrames
    )
    )
    )
    createdialog CFrames
    )
    -------------
    которая останавливает бегунок анимации, если значение больше 100f (if slidertime > 100f do)

    Так вот если вместо 100f ввести переменную, то функция начинает ругаться

    ------------
    fn CurentFrames tempFrame =
    (
    rollout CFrames "Frames"
    (
    timer tclock "Timer" interval:20
    label var01 ""

    on tclock tick do
    (
    var01.text = slidertime as string
    if slidertime > tempFrame do
    (
    stopAnimation()
    destroydialog CFrames
    )
    )
    )
    createdialog CFrames
    )
    ------------
    Ошибка:
    -- Error occurred in anonymous codeblock; filename: ; position: 247; line: 12
    -- Compile error: No outer local variable references permitted here: tempFrames
    -- In line: if slidertime > tempFrames d

    Помогите плз.
     
  2. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Код:
    fn CurentFrames tempFrame = 
    (
    global tempFrame2=tempFrame
    rollout CFrames "Frames" 
    ( 
    timer tclock "Timer" interval:20 
    label var01 "" 
    
    on tclock tick do 
    ( 
    var01.text = slidertime as string 
    if slidertime > tempFrame2 do 
    ( 
    stopAnimation() 
    destroydialog CFrames 
    ) 
    ) 
    ) 
    createdialog CFrames 
    )
     
  3. Александр Якушев

    Александр Якушев Активный участник

    С нами с:
    13.08.2009
    Сообщения:
    77
    Симпатии:
    1
    Баллы:
    7
    igorznag - спааасибо огромное! Супер работает. Тема закрыта)
     
Модераторы: Savin Denis

Поделиться этой страницей