![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: Aug 2003
Сообщений: 39
|
Доброе время суток.
Проблема такая: есть 2 мувика. 1-й загружает 2-го. есть ряд глобальных переменных, которые я подгружаю. они нужны в обоих мувиках. Соответственно, когда я пытаюсь после подгрузки переменых обратиться к глобальным, которым должны были присвоится значения подгруженных, то выясняется, что значения остались прежние... то есть подгруженные переменные не присвоились глобальным попросту. Но они подгрузились, так как если сразу вывести их в текстовое поле, то все нормально. Код первого мувика(magazin.swf): _global.id_categorii="1"; _global.id_page="1"; _global.id_tovara="0"; _global.pic1=1; _global.pic2=1; _global.pic3=1; _global.pic4=1; _global.pic5=1; _global.pic6=1; _global.cvet=1; _global.morecvet="1"; _global.page_less="1"; _global.page_more="1"; _global.page_total="1"; system.useCodePage = true; loadMovie("vipad_menu.swf", vipad_menu); loadMovie("menu_tov.swf", tovar_menu); // это я как раз второй мувик подгружаю. Код второго мувика: var c = new LoadVars(); c.onLoad = function() { pic1 = this["pic1"]; pic2 = this["pic2"]; pic3 = this["pic3"]; pic4 = this["pic4"]; pic5 = this["pic5"]; pic6 = this["pic6"]; page_total = this["page_total"]; page_more = this["page_more"]; page_less = this["page_less"]; page_number.text = id_page+" из "+ page_total +" "+page_less+" "+page_more; // это текстовое поле, в которое я вывожу несколько из подгруженных переменных. Если эту строку кода вынести за пределы функции, то вместо всех переменных выводятся единицы, то есть значение, которым я изначально в 1-м мувике заполнил переменные. }; c.load("menu_tov.php?id_categorii="+id_categorii+"&id_page="+id_page,"get"); // а это я подгружаю картинки с товаром. if (pic1 == "no") { btnpic1._width = 0; btnpic1._height = 0; } else { btnpic1._width = 84; btnpic1._height = 108; loadMovie(pic1+".jpg", "movpic1"); } if (pic2 == "no") { btnpic2._width = 0; btnpic2._height = 0; } else { btnpic2._width = 84; btnpic2._height = 108; loadMovie(pic2+".jpg", "movpic2"); } if (pic3 == "no") { btnpic3._width = 0; btnpic3._height = 0; } else { btnpic3._width = 84; btnpic3._height = 108; loadMovie(pic3+".jpg", "movpic3"); } if (pic4 == "no") { btnpic4._width = 0; btnpic4._height = 0; } else { btnpic4._width = 84; btnpic4._height = 108; loadMovie(pic4+".jpg", "movpic4"); } if (pic5 == "no") { btnpic5._width = 0; btnpic5._height = 0; } else { btnpic5._width = 84; btnpic5._height = 108; loadMovie(pic5+".jpg", "movpic5"); } if (pic6 == "no") { btnpic6._width = 0; btnpic6._height = 0; } else { btnpic6._width = 84; btnpic6._height = 108; loadMovie(pic6+".jpg", "movpic6"); } if (page_more == "no") { page_more_btn._width = 0; page_more_btn._height = 0; } else { page_more_btn._width = 27.1; page_more_btn._height = 8; } if (page_less == "no") { page_less_btn._width = 0; page_less_btn._height = 0; } else { page_less_btn._width = 27.1; page_less_btn._height = 8; } Вот... Помогите пожалуйста разобраться. почему в итоге подгрузки в глобальных переменных значения не меняются. |
|
|||||
|
Регистрация: Aug 2003
Сообщений: 39
|
Все верно, и про цикл и про то, что не в тему
Все равно спасибо за внимание. А может все-таки кто нибудь знает в чем сама проблема? ну кроме ДНК ![]() Подскажите плз.... я могу конечно для всех переменных насоздавать текстовых полей на невидимом(нижнем) слое и через эти поля принятые переменные в глобальные перекинуть рас уж в текстовое поле я могу нормально присваивать переменные... Но это решение видится мне неестественным и очень кривым. Очень жду Ваших ответов. |
|
|||||
|
Регистрация: Aug 2003
Сообщений: 39
|
Цитата:
я же не смогу названия в цикле перебирать... или смогу? если да, то как? |
|
|||||
|
Регистрация: Aug 2003
Сообщений: 39
|
Я пришел в итоге к более простому примеру, который не работает.
Просто беру мувик и загружаю в него переменную. вывожу ее внутри функции загрузки и снаружи (после вызова загрузки) в разные поля. Значения получаются разные... то есть внутри функции все нормально выводится, а вот снаружи они выводятся с теми значениями, которые были до выполнения функции загрузки. я подумал, что надо как-то проверять загрузились ли уже переменные и написал для этого вот такой код: var interval_id; _global.pict = 1; var c = new LoadVars(); c.onLoad = function() { pict = this["pic1"]; dyn_txt1.text = pict; }; function settime(){ if (_root.c.onload == "1") { _root.dyn_txt2.text = pict; clearInterval(interval_id); } } c.load("menu_tov.php","get"); interval_id = setInterval(settime, 500); теперь в поле вообще в итоге ничего не записывается. замучился уже с этой проблемой возиться. подскажите плз в чем проблема. |
|
|||||
|
Регистрация: Aug 2003
Сообщений: 39
|
Цитата:
А как же проверить подгрузились переменные или нет? Я уже и на форуме смотрел и в уроках, даже вот новую для себя вещь setInterval разобрался как использовать, а результата все нет Неужели никто не знает или не хочет подсказать как корректно выполнить проверку? |
|
|||||
|
так например ,не понял тока зачем, если есть обрабочик..
done=false c.onLoad = function() { done=true ... } function settime(){ if (done ) { _root.dyn_txt2.text = pict; clearInterval(interval_id); } } Последний раз редактировалось silin; 27.11.2004 в 15:46. |
|
|||||
|
Регистрация: Aug 2003
Сообщений: 39
|
Цитата:
Я просто впал в какой-то ступор. Чуствую себя тормозом Спасибо, что вывел меня из состояния торможения! Всем спасибо за внимание ![]() |
|
|||||
|
И в завершение, если тебе еще интересно про цикл, то вот:
for(var p=1;p<=6;p++){ pic="pic"+p; btn="btnpic"+p; if (pic == "no") { btnpic._width = 0; btnpic._height = 0; } else { btnpic._width = 84; btnpic._height = 108; loadMovie(pic+".jpg", "movpic"+p); } Разумеется, можно еще урощать и упрощать ))Разберешься?
__________________
:confused: :( :eek: :D :rolleyes: :p ;) :) :o :cool: :mad: Во имя процессора-отца, процесса-сына и святого root'а. Аминь. |
![]() |
Часовой пояс GMT +4, время: 18:04. |
|
|
« Предыдущая тема | Следующая тема » |
|
|