Flash может создавать названия переменных динамично, потому что можно получить имя переменной из выражения. Благодаря этому можно создавать последовательные ряды, "словари" и.т.д Например, ряд (массив) из 10 элементов можно создать из 10 переменных с именами:
A_1 A_2 ... A_10
Например, выражение:
Set Variable "name" & namecount = newname Set Variable "namecount" = namecount + 1
Создаст массив похожий на этот:
name1 -> Gary name2 -> another name name3 -> someone else namecount -> 3:
Set Variable "index" = 1 Set Variable "found" = false Loop While (index <= namecount and not found) If (Eval("name" & index) eq nametofind) Set Variable "found" = true Else Set Variable "index" = index + 1 End If End Loop
В этом случае, если условие found
выполняется, index
содержит требуемое название.
Вы можете составлять двухмерные массивы, как вот этот:
A_1_1 A_2_1 ... A_3_3
Получение значения переменной, названной динамично
Используйте функцию eval
чтобы узнать значение переменной, которую назвали с помощью выражения. Например, выражение eval("Name")
- это то же самое, как и выражение Name
.
Можно определить название переменной, значение которой надо получить, прямо в то время, когда клип проигрывается. Для этого название переменной должно быть выражением.
Например, выражение eval("Name"&Index)
дает возможность управлять 10 названиями, где Index
- это переменная, которая содержит число от 1 до 10. Это выражение определит одну из переменных: Name1, Name2, Name3, ... В зависимости от значения Index
.
В повторении (loop) значение Index
может обновляться, и таким образом будут получены все 10 названий.