ivenhoe
28.05.2007, 14:31
Здравствуй, многоуважаемая и мудрая общественность!
Имеется несколько нетривиальная задача. Отдельные части ролика создаются динамически через moveTo, lineTo etc. Причем содержимое должно перемещаться мышью. В качестве примера - координатная сетка.
Т.е., например, пользователь схватил мышью эту сетку и тянет ее, пока ему не надоест. С целью просмотреть что-то в разных частях координатной плоскости.
Формировать сетку приходится динамически - например, выбран нужный режим просмотра - сетка сформирована. Теперь пользователь захотел подвигать координатную плоскость. Он хватает ее мышью и тянет. Часть сетки "ушла" за экран, часть - "появилась" с другой стороны. Заранее наплодить линий сетки и затем маскировать их - не выход, т.к. заранее совершенно неизвестно, как долго пользователю придет в голову ее скроллировать. Поэтому фактически при каждом onMouseMove вызывается перерисовка линий сетки: весь клип MovieClip.clear(), и затем рисуем по-новой.
Естественно, что способ не самый производительный... По крайней мере, по сравнению с
mc._x += dx;
mc._y += dy;
Наплодить мувиклипов "чтоб в экран влезало", а потом переставлять их в соответствии с "позицией скроллинга" тоже не дает выигрыша по скорости. Заметно "рваное" перемещение сетки.
Собственно, что хотел спросить: нет ли какого-нибудь хитрого способа организовать быстрый способ перемещать набор линий таким образом, чтобы они располагались как бы на закольцованной пленке?
Все решения, которые приходят в голову - так или иначе связаны с полной перерисовкой мувиклипа. Признаться, я не являюсь докой во флэше, и потому надеюсь, что существует некий "чисто флэшевый" способ закольцевать клип. Возможно, кто-то сталкивался с подобной задачей на практике, может быть поделится оригинальным решением?
Имеется несколько нетривиальная задача. Отдельные части ролика создаются динамически через moveTo, lineTo etc. Причем содержимое должно перемещаться мышью. В качестве примера - координатная сетка.
Т.е., например, пользователь схватил мышью эту сетку и тянет ее, пока ему не надоест. С целью просмотреть что-то в разных частях координатной плоскости.
Формировать сетку приходится динамически - например, выбран нужный режим просмотра - сетка сформирована. Теперь пользователь захотел подвигать координатную плоскость. Он хватает ее мышью и тянет. Часть сетки "ушла" за экран, часть - "появилась" с другой стороны. Заранее наплодить линий сетки и затем маскировать их - не выход, т.к. заранее совершенно неизвестно, как долго пользователю придет в голову ее скроллировать. Поэтому фактически при каждом onMouseMove вызывается перерисовка линий сетки: весь клип MovieClip.clear(), и затем рисуем по-новой.
Естественно, что способ не самый производительный... По крайней мере, по сравнению с
mc._x += dx;
mc._y += dy;
Наплодить мувиклипов "чтоб в экран влезало", а потом переставлять их в соответствии с "позицией скроллинга" тоже не дает выигрыша по скорости. Заметно "рваное" перемещение сетки.
Собственно, что хотел спросить: нет ли какого-нибудь хитрого способа организовать быстрый способ перемещать набор линий таким образом, чтобы они располагались как бы на закольцованной пленке?
Все решения, которые приходят в голову - так или иначе связаны с полной перерисовкой мувиклипа. Признаться, я не являюсь докой во флэше, и потому надеюсь, что существует некий "чисто флэшевый" способ закольцевать клип. Возможно, кто-то сталкивался с подобной задачей на практике, может быть поделится оригинальным решением?