![]() |
If внутри While - проблемы
Здравствуйте, уважаемые форумчане!
Только начинаю осваивать AS1, и появились проблемы. Мне необходимо создать программу, перекрашивающую n-ое кол-во мувиков (с именами muvik1, muvik2,.., muvikN) в 2 цвета, в зависимости от подгружаемых из текстового файла значений переменных A1, A2,..,An. Содержимое текстового файла загружено в _level0. Если переменная AN принимает значение = 100, то muvikN перекрашивается в красный, AN=50 - muvikN желтый Код AS1/AS2:
Если задать оба условия if явно ( например, if(2<3)), то Флэшка работает, Если вытащить один из блоков, начинающихся с COLORR за пределы if - опять же все работает. Но мне необходим цикл, для обработки произвольного кол-ва мувиков. Внутри того же цикла while находится такой код, который функционирует исправно: Код AS1/AS2:
|
Я что то слышал о _level0.onData=function(){}....., это проверка загрузились ли все переменные. Может твой код срабатывает раньше чем они загрузились.
|
Спасибо, друг, но не сработало =(
|
а ты трейсы внутри ифов ставил? ты туда вообще заходишь?
может ты сравниваешь не однотипные данные? "_level0.A" + i - не текстовое ли значение имеет? |
Данные однотипные (числовые) "_level0.A" + i" это A1=100, A2=100, A3 = 50, ..., AN = 100
Я даже пытался изначально присваивать значение "_level0.A" + i" переменной, а в if'е оперировать этой переменной. При этом я задавал различные типы переменной var myVar:Number, var myVar:Number:text, myVar Number:String... Можно поподробнее про "трейсы"? Насколько я знаю trace необходимы для тестирования кода. Буду рад любой зацепке. P.S. Еще интересно зачем в (работающей) функции eval("muvik" + i).onRelease = function () переменная z, которая по сути равна i, но если заменить z на i функция перестает работать... |
trace ("tralala 1"); - просто выведет в оутпут надпись "tralala 1"
т.е. внутри IF поставь trace ("tralala " +i ); - если надпись появится, значит ты зашел в IF, если нет, значит условие не срабатывает Так же, можно поставить трейсы перед ифами, чтобы посмотреть чему же действительно равна "_level0.A" + i trace (_level0.A + i); ________ эээ... стоп, а чего это ты в ифе сравниваешь какую-то "_level0.A" + i с чем-то? получается, ты сравниваешь if ("_level0.A0" == 100) - "_level0.A0" здесь текстовое значение, это условие всегда ложно |
Спасибо большое за наводку - попробую.
Цитата:
Выяснилось, что если заключить блок if в функцию мувика muvik, запускающуюся по какому-нибудь событию - все работает! Напр.: eval("muvik"+i).onRollOver = function() {if...} Проблема в том, что мувик должен менять цвет сразу же, без вмешательства пользователя Может подскажете како-либо подходящее событие? |
Код AS1/AS2:
Код AS1/AS2:
Код AS1/AS2:
|
dimarik, спаибо, но проблема точно не в блоках начинающихся с Color, т.к. если вытащить их за пределы if - они работают. Твой вариант, кстати тоже работает, но
trace(eval("muvik" + i)._name)) -- возвращает название мувика "muvik1" trace(this["muvik" + i]) -- возвращает "_level0.instance1.muvik1" point111, трассировка if показала, что в if программа вообще не заходит! |
Проще было бы взглянуть на рабочий пример, чем сидеть и гадать, что вы там намудрили.
|
| Часовой пояс GMT +4, время: 11:09. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.