![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2008
Адрес: Minsk Belarus
Сообщений: 107
|
Дорогие флешеры.
Помогите разобраться. Ситуация в следующем: На сцену благодаря счетчику, загрузчику и хмл загружаются изображения и выстраиваются, как вагоны, один за одним. Выстраиваются исходя из собственной ширины, переменной отступа «margin» и _x предыдущего клипа. После того, как все загрузилось, клипы движутся в противоположную сторону исходя из координат _xmouse. А проблема такая: Сайт резиновый. И, естественно, у каждого пользователя свое разрешение экрана. Изображения, загружаются на сцену в рандомном порядке и размеры изображений разные. Сценарий флешки такой: Все картинки загружаются скопом и выстраиваются по одной линейке, их, как правило не меньше 20 и немалая часть их скрыта справа. В общем, беда в том, что иногда картинки выстраиваются так, что последняя, видимая на экране, залазит на пределы видимости. Заказчик сказал, что это нужно исправить, Сделав скрипт, такого характера: если координаты клипа залазят за текущую ширину — расставить клипы так, чтобы тот, который вылазит, отъехал дальше, то есть больше их разбавить. Но не все так просто. Вот код: //узнаю текущую ширину сцены:
r = Stage.width;
//задаю отступ картинкам;
margin = 60;
//вычисляем координаты для следующего мувика.
for (b=0; b<col; b++) {
dl += all["k"+b]._width+margin;
bb = 1;
bb += b;
//задаем следующему мувику координаты.
all["k"+bb]._x = dl;
//теперь отлавливаю событие, на заступ за край картинки:
if (dl-margin>r && dl-margin<r+all["k"+b]._width) {
//Пробую разбавить картинки — все рассыпается в крах…
for (m=0; m<bb; m++) {
mm = 1;
mm += m;
all["k"+mm]._x += all["k"+m]._x+margin;
}
}
}
Последний раз редактировалось storm_; 08.11.2008 в 17:08. |
|
|||||
|
loading 50%
|
Я не понял, а как Вы определяете сколько картинок должно быть видно и соответственно, как изменится интервал между ними?
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
В первом цикле прибавляем ширину следующей картинки к общей сумме и сравниваем с шириной видимой области. Если при добавлении очередной картинки сумма ширин + минимальный отступ*(текущее количество картинок - 1) стала больше области, эта картинка "лишняя", сохраняем количество и ширину без нее и выходим из первого цикла.
Вычитаем из ширины области ширину влезающих картинок, получаем остаток - делим его на количество влезающих - получаем просвет. Запускаем второй цикл и расставляем все картинки с этим просветом.
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 09.11.2008 в 13:25. |
|
|||||
|
Регистрация: Jan 2008
Адрес: Minsk Belarus
Сообщений: 107
|
Wolsh, Спасибо! Огромное.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 18:13. |
|
|
« Предыдущая тема | Следующая тема » |
|
|