Есть ли лучший способ получить ссылку на мувиклип в actionscript с использованием строки без eval


1

Я создал кучу клипов, которые имеют похожие имена, а затем после некоторого другого события я создал строку например:

var clipName = "barLeft42" 

который находится внутри другого клипа под названием «вещь».

я смог заполучить ссылки с помощью:

var movieClip = Eval("_root.thing." + clipName) 

Но что чувствует себя плохо - есть лучший путь?

4

Видеоролики - это коллекции в actionscript (например, большинство и похожие на javascript, все это в основном пары ключ-значение). Вы можете индексировать в коллекцию, используя квадратные скобки и строку для имени ключа, как:

_root.thing[ "barLeft42" ] 

Это должно сделать трюк для вас ...


0

Лучшего способом, который позволяет избежать использования устаревших eval, является индексом с квадратными скобками:

var movieClip = _root.thing[ "barLeft42" ] 

Но самый лучший способ сохранить ссылки на клипы, которые вы делаете, и доступ к ним по ссылке, а не по имени:

var movieClipArray = new Array(); 
for (var i=0; i<45; i++) { 
    var mc = _root.thing.createEmptyMovieClip("barLeft"+i, i); 
    // ... 
    movieClipArray.push(mc); 
} 

// ... 

var movieClip = movieClipArray[ 42 ]; 

0

Вы можете использовать скобки и включать переменные в них ... так что если вы хотите, чтобы перебрать их все, что вы можете сделать это:

for (var i=0; i<99; i++) { 
    var clipName = _root.thing["barLeft"+i]; 
}