![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jul 2008
Сообщений: 72
|
не пойму почему в коде
function Vertical() { /******id темы - для обращения к базе и вывода горизонтального списка************/ /****************************************************************/ //обработчик для передачи параметров formData = new LoadVars(); //при загрузке флешки в пустое поле выводить сообщение formData.onLoad = function(success:Boolean) { if (success) { //стартовая позиция картинок по X var startXv:Number = vert_x; //стартовая позиция картинок по Y var startYv:Number = vert_y; //текущая координата картинки var currImageXv:Number = 0; // создаём пустой клип с нужными координатами для панели прокрутки с мелкими фотками _root.createEmptyMovieClip("container_mcV",_root.getNextHighestDepth()); container_mcV._x = vert_x; container_mcV._y = vert_y; //вносим список имён тем в массив var my_str1:Array= formData.name_tema var nameTemes_array = new Array(); nameTemes_array = my_str1.split("$$"); //вносим ID тем var my_str2:Array= formData.id_tema; var idTemes_array = new Array(); idTemes_array = my_str2.split("$$"); _global.sdvigV = _global.imageShift * (nameTemes_array.length-1); //пока не кончится все фотки загружаем их в контейнер for (var i = 0; i<nameTemes_array.length-1; i++) //for (var i = 0; i<3; i++) { //добовляем картинку из библиотеки var tema:MovieClip = _root.container_mcV.attachMovie("tema","tema"+i,i); //оптимизируем скрипт создавая переменную tema передавая ей ссылку на нашу картинку tema._x = startXv; tema._y = startYv; //выщитываем новую координату для следующей картинки startYv += tema._height+_global.imageShift; tema.temaText.text = nameTemes_array[i]; //массивы для передачи ID темы и имя темы чтобы передать функции отображения //горизонтального списка tema.IdKey_array = idTemes_array[i]; tema.IdName_array = nameTemes_array[i]; //принажатии на изображение вызываем горизонтальную панель tema.onRelease = function() { Gorizontal(idTemes_array[i],nameTemes_array[i]); /*var test:MovieClip = _root.main.attachMovie("test","test",_root.getNextHighestDepth()); test._x = 100; test._y = 100; //test.test_txt.text = "ПРОБА"; test.test_txt.text =i;*/ //trace(i); }; //при наведении на изображение - прозрачность на 50% tema.onRollOver = function() { this._alpha = 50; }; // и наоборот tema.onRollOut = function() { this._alpha = 100; }; if (i == 0)//если первый запрос то загружаем сразу первую temu { //здесь вызов срабатывает //Gorizontal(idTemes_array[i],nameTemes_array[i]); } createMaskVert(); //scrolling(); } } else{ //tema.temaText.text = "Error loading/parsing LoadVars."; } }; //обмен данными с MySQL значения объекта formData методом POST formData.sendAndLoad('phpinitializ.php',formData,'POST'); } т.е. не получается передать значение переменнной из массива в зависимости от номера кнопки( мувика) в списке. подскажите пожалуйста где накосячил? ![]() Добавлено через 3 минуты .т.е. в данном коде при нажатии кнопок tema0, tema1, итд - вызываеться Gorizontal(idTemes_array[i],nameTemes_array[i]); где i равно наибольшему i в этом цикле =( |
|
|||||
|
Дело в том, что событие onRelease, будет вызываться после выполнения цикла. Соответственно i равно своему последнему значению. Чтобы данная конструкция работала нормально, необходимо выполнить привязку переменной i в текущей итерации цикла, к конкретному клипу. Но, так как даная привязка уже выполнена(глубина клипа), можно сделать так
|
|
|||||
|
Регистрация: Jul 2008
Сообщений: 72
|
спасибо =)
век живи - век учись Добавлено через 1 минуту tema.onRelease = function() { var id:Number = this.getDepth(); Gorizontal(idTemes_array[id], nameTemes_array[id]); } ![]() |
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
Вообще,от такой конструкции в циклах mc.onRelease(или on_любой_обработчик_событий) = function(){},лучше отказаться,а использовать
Но это сугубо мое личное мнение,просто так код приятнее выглядит,и более четко разбит по блокам.
|
|
|||||
|
Регистрация: Jul 2008
Сообщений: 72
|
ну так ещё грамотней - спасибо, запомню
|
![]() |
![]() |
Часовой пояс GMT +4, время: 17:46. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|