Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Реализация резинового сайта, вопрос о расчете положения объектов (http://www.flasher.ru/forum/showthread.php?t=144551)

3p.station 15.09.2010 01:11

Реализация резинового сайта, вопрос о расчете положения объектов
 
Всем привет! :)
Делаю свою первую "резину" решил не брать никакие фреймфорки, а сделать самому - интересно :)

вопрос логического характера:
Допустим есть Объект-Контейнер Содержимое которого должно находиться всегда справа-внизу! Делаю для него так:
Код AS3:

 obj.x = stage.stageWidth - obj.width

работает отлично... но оказалось что есть тут одна загвоздочка - когда я добавляю(динамически) в этот объект-контейнер очередной объект у которого отрицательный X то в этом случае
Код AS3:

 obj.x = stage.stageWidth - obj.width

работает не совсем так как нужно... объект будет не в самом краю а левее на вот это "минус" икса энного объекта в контейнере

подскажите как можно решить такой вопрос
(сам я думал так - пробегать по всем объектам в контейнере и смотреть у них координату X и если она в минусе то сдвигать этот объект в 0(делать как будто его началом отсчета) , а ВСЕ другие объекты в право на это значение.... но ведь так могут быть вложения :) по этому пока отложил это вариант)

спасибо за идеи!:drinks:

MrPoma 15.09.2010 01:24

Слушайте added контейнером и пересчитывайте его положение.

3p.station 15.09.2010 01:52

спасибо за ответ!
я делаю перерасчет уже когда все объекты добавились... (хотя наврно ваш способ более гибкий)
проблема в том что не знаю как прводить расчеты когда в какомлибо из объектов(в контейнере) отрицательная координата(напрмер Х), так как Х самого конейнера при этом будет выраравниваться согласно ширине всего контейнера и если какой либо его объект вылазит в минус в влево, тогда контйенер встанет так что между концом сцены и концом контейнера будет расстояние на которое и вылазит минусовый объект

[IMG]http://s09.***********/i182/1009/c2/d34c0e712a1a.jpg[/IMG]
сделал картинку ( ,
Код AS3:

container.x = stage.stageWidth - container.width

такой расчет
контйенер смещается правильно берет свою ширину и вычитает ее от конца сцены, но дело в том что в контейнере есть объект у которого -Х и выходит пробел...

MrPoma 15.09.2010 03:02

Возможно методы getRect или getBounds класса DisplayObject помогут.

3p.station 15.09.2010 12:39

волшебно! *Дайте я вас расцелую :mosking:

а то я и правда уже сутра решил что буду перебирать вес объекты и смещать по необходимости :)

jony_e 15.09.2010 18:39

можно попробовать globalToLocal тогда все объекты внутри мувиклипов будут находится на определенной позиции относительно глобальной системы координат
Код AS3:

var point:Point = new Point(stage.stageWidth - obj.width, 0);
obj.x = obj.parent.globalToLocal(point).x;

и можно не волноваться, объект 100% будет справа :)


Часовой пояс GMT +4, время: 13:17.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.