У меня есть система меню, встроенная во Flash, которая позволяет вам выбирать элемент и перемещать его вверх или вниз. Если объект будет удален из меню, я хочу, чтобы для выбранного элемента было установлено значение null, поэтому он больше не будет пытаться перемещаться.
У меня есть глобальная (для временной шкалы текущего клипа) переменная:
var selectedPlaylistItem:MovieClip;
Сохраняет, какой пункт меню выбран (пункты меню - это просто фрагменты фильмов), и если этот элемент удаляется, я устанавливаю для выбранного элемента значение NULL:
function removeFromPlaylist(sender:playlist_content_item) {
if(sender == selectedPlaylistItem) {
//Not sure why this isn't working, but at some point I need to figure it out.
selectedPlaylistItem = null;
trace(selectedPlaylistItem);
Эта трассировка будет показывать ноль без каких-либо проблем, но в моей следующей функции, которая перемещает элементы вверх, после того, как я установил ее на нуль, она все равно будет установлена на объект, который был до удаления:
function playlistUp(sender:MovieClip) {
trace(selectedPlaylistItem);
Этот след покажет исходный объект.
Кто-нибудь знает, почему это не сработает? Почему бы просто не остаться нулевым после того, как он был установлен таким образом?
Спасибо
UPDATE:
Итак, я попробовал это, чтобы увидеть, смогу ли я понять, что происходит:
this.selectedPlaylistItem = null;
trace(selectedPlaylistItem);
setTimeout(function() {trace(selectedPlaylistItem);}, 4000);
Но когда трассировка происходит через 4 секунды, она говорит, что это все еще выбранный объект, хотя трассировка сразу показывает его как нулевой, и я искал повсюду в коде, но нигде не было бы сброса.