Показать сообщение отдельно
Старый 19.09.2007, 12:09
bettrrr вне форума Посмотреть профиль Отправить личное сообщение для bettrrr Найти все сообщения от bettrrr
  № 4  
Ответить с цитированием
bettrrr

Регистрация: Aug 2002
Сообщений: 44
Цитата:
Сообщение от udaaff
bettrrr, если на ваше сообщение уже ответили не нужно его редактировать, создавайте новый пост.
Код:
_root[buttonAttrib.id].onRelease = function () {
	trace(buttonAttrib.url);
	SWFAddress.setValue(buttonAttrib.url);
}
buttonAttrib -- это переменная которыю вы создаете при первой итерации, в последующих ее значение постоянно перезаписывается, следоватьельно, ваши функции, ссылки на которые вы записываете в обработчики, будут использовать последнее значение, которое запишется в buttonAttrib. Я предложил два действующих варианта, следовательно, ошибка в другом месте.
Вы ответили в процессе редактирования мною моего поста .

Про buttonAttrib я понял, предварительно сломав себе мозг, т.к. я привык к другому поведению кода. Нажал на ссылку, заново выполнился скрипт и т.п. (разовое линейное выполнение кода). Если бы я такое написал на PHP, то всё бы прекрасно работало.

Я думал, что этот цикл создаст кучу кнопок, и каждой назначит обработчик, а в этот обработчик передаст (присвоит) ЗНАЧЕНИЕ переменной.
А оказалось, что в обработчик передаётся ссылка на область памяти, которая после отработки цикла, содержит последнее значение.

Второй способ не работает так, как мне это надо, т.к. у меня нет this.url, а первый работает, что мне не понятно.



поясните пожалуйста, чем для плеера отличаются ваш первый способ и мой? Т.е. почему в вашем способе используется значение переменной текущего шага цикла, а не последнее?


Последний раз редактировалось bettrrr; 19.09.2007 в 12:27.