PDA

Просмотр полной версии : динамическое значение кнопок через цыкл - нужна ваша помощь


ader
28.04.2004, 23:23
Я этот вопрос уже задавал но мне так на него толком и не ответили, отчасти из-за того что неправельно сформулировал вопрос.

имеется скрипт:



sn = ["picture1","picture2","picture3"];
for (var i=0; i<_root.sn.length; i++)
{

this["screen"+i] = "pathtopictures/" add sn[i] add "_sm.jpg";
// если розкоментировать то взять вторую закоментированную функцию на кнопки this["screenurl"+i] = "pathtopictures/" add sn[i] add "_big.jpg";
loadMovie(this["screen"+i], scrollBar.cont1["ekrmc"+i].image);
scrollBar.cont1["ekrmc"+i].opisalovka = ekrtext[i];

scrollBar.cont1["ekrmc"+i].knob.onPress = function() {
getURL("pathtopictures/" add sn[i] add "_big.jpg");
};
}
// вторая функция на кнопки
getURL(this["screenurl"+i]);




В общем кнопка на нажатие неправельно отрабатывает. Ни тот, ни тот вариант с переменными не действует.. В чем дело понять немогу.

Вот тот топик где я этот вопрос уже задавал http://www.flasher.ru/forum/showthread.php?threadid=57295
Там к стати исходник лежит, предпоследнее сообщение.


В чём моя ошибка???
Помогите плиз.

Dindin
29.04.2004, 00:33
Тебе же Сергей исходник выложил. Что тебя в нем не устраивает (в исходнике)?

ader
29.04.2004, 01:13
Исходник хороший, спасибо Сергею но там вопервых скрипт по другому сделан, там указываются отдельно большие отдельно маленькие фотки - а я хочу только название указывать и чтоб скрипт сам распределял маленькую фотку во флешь - большую фотку на нажатие - я об этом уже писал. И акшин функция на нажатие на самой кнопке а не в цыкле первого кадра екшин скрипта. Может так и лучьше но я пробывал сделать так как в примере, у меня не получилось. Очевидно из за того что большие фотки указаны не через скрипт а на прямую в массиве.
Отсюда вопрос, почему не работает?

Мне уже просто ради спортивного интереса узнать хочется :)

ader
29.04.2004, 01:16
или в команде GetUrl нельзя цыкличные переменные указывать? (извените за формулировку :) )

Nucer
29.04.2004, 12:32
Просто у тебя в getURL переменная i которая после выхода из цикла = длины массива + 1. Тут надо как-нибудь извратиться чтоб передать в getURL не переменную i, а её текущее значение

ader
29.04.2004, 16:24
почему после выхода если geturl тоже в цыкле?

ader
29.04.2004, 18:00
ну блин... я пробывал сравнивать другую переменную с переменной "i".. пробывал даже полный изврат - просто тупо
a1 = 1;
a2 = 2;
a3 = 3;

а потом sn["a"+i] - и всё равно таже фигня...

Dindin
29.04.2004, 18:34
Или я чего-то не понимаю?
Способ 1:
а) пишем XML в котором указываем соответствие: картинка - тумбнэйл - текст кнопки - ссылка.
б) разбираем XML и формируем кнопки.

Способ 2:
а) создаем 4 паралельных массива: картинка - тумбнэйл - текст кнопки - ссылка.
б) в цикле формируем кнопки из элементов массива.


Это так сложно?

sergwizard
29.04.2004, 21:45
Вот тебе еще один вариант, в котором:
1. данные грузятся из текстового файла (легко обновлять),
2. есть только ОДНО название, и флэшка сама распределяет большие и маленькие имиджи.
3. простой до безобразия (даже ты поймешь).

ЗЫ. Не надо плодить топики. Если тебя чем-то не устроили ответы, или ты чего-то не понял, - постись в том же топике.

ader
29.04.2004, 22:02
:D :D :D :D :D :D
пасиба блин большое!!! разобрался!
я тупарь, упустил из внимания вот эту строчку:
base["holder"+i].i = i;

теперь усьо работает шикаладно! :) я счастлив :D

извените что плодил - больше не буду :)
я наверное всех уже тут достал :)) Теперь буду послушный и хороший :)

Всем ещё раз большое спасибо!