Для справки, вот вопрос, который я задал ранее сегодня относительно этого же проекта: Ссылочные объекты на сцене / фрейме из класса документа
addFrameScript, кажется, делает то, что мне нужно, за исключением одной вещи. В функции, которую я передаю для добавления в качестве фрейм-скрипта, я хочу динамически создать некоторые прослушиватели событий для кнопок, но переменные, которые я хочу закрыть поверх функций прослушивателя, ведут себя не так, как ожидалось - все они заканчиваются тем, что имеют последний назначенное значение переменной, а не значение, которое она имела при определении функции, как если бы действовали другие правила области видимости, чем обычно:
addFrameScript(node_frame - 1,
function() {
stop();
question_txt.text = node_question;
answers_xml = node_xml.answer;
for (var i:Number = 0; i < answers_xml.length(); i++) {
button = getChildByName('answer' + (i+1) + '_btn');
if (answers_xml[i].attribute('node')) {
goes_to = answers_xml[i].attribute('node');
trace(goes_to);
button.addEventListener('click',
function() {
trace(goes_to);
});
}
}
});
Сначала вывод трассировки:
1A
2A
3A
Но потом, если я нажму любую из трех кнопок, они все trace:
3A
У кого-нибудь есть понимание того, что здесь происходит и / или как я могу обойти это? Наблюдаются ли в фрейм-скриптах различную (динамическую, а не лексическую?) Область видимости или что-то в этом роде?