PDA

Просмотр полной версии : Подсчет расстояния смещения


nOobCrafter
17.12.2008, 16:32
Делаю меню и столкнулся с проблемой. При нажатии на кнопку надо смещать все остальные на опредленное расстояние. Как к ним обратиться уже разобрался, а вот как их корректно сместить нет. У меня получается что при нажатии на каждую следующую кнопки, все кнопки смещаются на расстояние в 2 раза большее чем предыдущие. Мне же надо что бы все нижестоящие кнопки смещались одинаковую на высоту (выглядеть должно как вертикальное выпадающее меню с подпунктами, при нажатии на кнопку буду выпадать подпункты и остальные (главные) кнопки будут смещаться вниз на величину их высоты). Вообщем то вот функция смещения.
function btns_on_release(){
for( var i = this.j; i < total_j; i++)
{
var tween_1alphadown:Tween = new Tween(clip_array[i + 1], "_y", Strong.easeOut, this._y, this._y + (this._height + btns_space) * (i + 2), 1, true);
//trace("(i + 1) - " + (i + 1) + "; (total_j - i) - " + (total_j - i)) // trace вроде бы верный, кооридинаты меняются местами, но похоже не в том дело.
}
}
Вот исходник.

Mnilionic
17.12.2008, 17:46
при нажатии на кнопку получаешь величину, на которую должны сместится нижестоящие. И двигаешь их на эту величину исходя из их текущего положения
var sub_item_height = 150; //
for( var i = this.j; i < total_j; i++) {
var btn = clip_array[i + 1];
btn._y += sub_item_height;
}

nOobCrafter
17.12.2008, 18:05
Задача в том что бы именно расчитать эту высоту смещения ибо она для каждой кнопки будет своя, кол-во подпунктов то будет разным. А тут как понимаю высота смещени ядля всех одинаковая. Или я не прав?

Mnilionic
17.12.2008, 19:16
значит сначала создаешь список подпунктов, потом замеряешь высоту, потом раздвигаешь кнопки.