![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Feb 2006
Сообщений: 33
|
Ситуация: на сцене друг за другом вертикально выстраиваются объекты при помощи цикла, все очень просто: y-координата каждого следующего объекта this["q"+i]._y получается путем сложения y-координаты предыдущего объекта this["q"+(i-1)]._y и высоты предыдущего объекта this["q"+(i-1)]._height ...
... и получается что-то типа: [ q0 ] [ q1 ] [ q2 ] [ ... ] Вопрос: подскажите, пожалуйста, как сделать такой же обратный порядок построения: [ ... ] [ q2 ] [ q1 ] [ q0 ] По идее, y-координата предыдущего должна рассчитываться как разница y-координаты следующего и высоты предыдущего... ...но это не срабатывает. Мб я туплю, подскажите, пожалуйста, где не так? |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Покажите полностью код, вместе с циклом, а лучше исходник.
|
|
|||||
|
Регистрация: Feb 2006
Сообщений: 33
|
исходник слишком громоздкий, вот код этого цикла
изменение условий цикла на обратные мне не подходит. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Вот скажите мне, зачем вы сотню раз копируете «this["q"+(i-1)]»?
Читается проще? Быстрее работает? Зачем вы ломаете глаза себе и заставляете компилятор сотню раз считать (i-1), конвертировать в строку и мучаться в поисках объекта qX? |
|
|||||
|
Регистрация: Feb 2006
Сообщений: 33
|
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Не тестировал.
// сверху вниз
var y0 = 0;
for (var i = 0; i<docs.firstChild.childNodes.length; i++) {
var my_mc = attachMovie("mc_attach", "q"+i, i);
my_mc._y = y0;
y0 += my_mc._height;
}
// снизу вверх
var y0 = Stage.height;
for (var i = 0; i<docs.firstChild.childNodes.length; i++) {
var my_mc = attachMovie("mc_attach", "q"+i, i);
my_mc._y = y0-my_mc._height;
y0 -= my_mc._height;
}
|
|
|||||
|
Регистрация: Feb 2006
Сообщений: 33
|
благодарю. попробовал, не получилось, к сожалению. а обязательно вводить переменную y0 и my_mc? я поменял в Вашем коде my_mc на свою конструкцию this["q"+i] и работать стало, но неверно все же, все мувики приклеились к y0, а порядок не поменялся.
|
|
|||||
var y0 = 0;
for (var i = docs.firstChild.childNodes.length-1; i>=0; i--) {
var my_mc = attachMovie("mc_attach", "q"+i, i);
my_mc._y = y0;
y0 += my_mc._height;
}
Последний раз редактировалось Mnilionic; 07.10.2007 в 19:17. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Все должно работать. Потестируйте в кадре.
// сверху вниз
var y0 = 0;
for (var i = 0; i<5; i++) {
var my_mc = createEmptyMovieClip("my_mc"+i, i);
var my_txt = my_mc.createTextField("my_txt", my_mc.getNextHighestDepth(), 0, 0, 100, 30);
my_txt.text = i+" "+my_mc;
my_mc._y = y0;
y0 += my_mc._height;
}
Последний раз редактировалось udaaff; 07.10.2007 в 19:19. |
|
|||||
|
Регистрация: Feb 2006
Сообщений: 33
|
Mnilionic, var j = docs.firstChild.childNodes.length - (i+1); - то, что нужно. Спасибо всем.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 11:15. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|