Просмотр полной версии : Проблема в цикле
Цикл, почему то не хочет выполнять 10-ое значение.
Т.е. в примере 11 элементов. Счет их начинается с 0 и десятый элемент при нажатии на который не выполняет действия (не выделяется).
Можно это как-то поправить?
И вообще, почему так происходит?
Division
14.11.2008, 13:41
UPD: всё сказанное не актуально, так как тогда ещё не было архива (:
UPD2: Ошибка в том что ты используешь имя клипа.
this._name.substr(-1)
Если индекс больше 9, например 10, то ты получишь 1 на выходе. Создавай у мувиков дополнительные свойства с их индексами при таком подходе.
lexa2000lexa
14.11.2008, 13:57
протрейсити вот эту строчку и поймете в чем у вас ошибкаtrace(Number(this._name.substr(-1)))
var n:Number = 10;
for (var i = 0; i<=n; i++) {
_root["q"+i].id = i;
_root["q"+i].onPress = function() {
for (i=0; i<=n; i++) {
_root['btn'+i] = false;
}
_root['btn'+Number(this._name.substr(-1))] = true;
myonPress(this.id);
};
}
где то так!
Создавай у мувиков дополнительные свойства с их индексами при таком подходе.
…а какой подход ты бы посоветовал? :)
Выделение элементов вроде работает нормально с применением поправленного кода от INK•
Но проблемы на этом не закончились. Дальше не обходимо подтвердить выбор и вывести соответствующую информацию. Для этого я делаю кнопочку “Готово” и нумерую все элементы от 0 до 10. И снова выбрав десятый элемент при подтверждении он показывает информацию нулевого элемента.
Division
14.11.2008, 20:26
…а какой подход ты бы посоветовал?
ООП конечно (: А элементы все в массиве хранить для удобства.
myonPress = function (id:Number) {
_root['btn'+id] = true; <--- добавить
_root['btn'+Number(this._name.substr(-1))] = true; <---- убрать ниже из цикла
Добавлено через 26 минут
Да кстати. Хочу передать привет поясню что делает substr
substr имеет 2 параметра и возвращает новую строку
substr(начиная_С, длинной_В)
если начиная_С = -1 (или минус сколько то) то это значит, что надо смотреть с конца строки и взять оттуда 1 букво.
если бы было -2 то взять две буквы с конца соотвецтвенно.
тоесть
у тебя мувики именуются
q1
q2
q3
....
q10
так вот -1 с конца q1 = это у нас "1", с конца q2 это "2"... ну а с конца q10 это "0"
так вот. что бы работали твои махинации с именами мувиков, то скорей всего правельнее бы брать с первого (тоесть с начала смотреть) до this._name.length
this._name.substr(1,this._name.length )
где то так.
Да все что нужно это убрать минус. substr прекрасно обходится только стартовым индексом, считывая строку до конца.
И еще неплохо бы перестать гонять ID из строки в число и обратно. Вам нужна строка, она и так везде строка, зачем Вы ее в число-то переводите и потом обратно)))))
Да все что нужно это убрать минус.
Изначально так и сделал, но не думал что это буде правильным, поэтому засомневался.
Переделал все несколько иначе.
Вот, посмотрите.
lexa2000lexa
18.11.2008, 12:34
А не проще ли было написать вот такID=this.id
нежели так ID = Number(this._name.substr(1));?
Мы не ищем легких путей)) [Шутка]
Спасибо за поправку.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.