![]() |
|
|
![]() |
![]() |
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
[+3 14.09.09]
|
![]() Допустим у нас есть обьект 1_mc внутри другого обьекта 2_mc!
Когда мы начинаем менять масштаб 2_mc._xscale , то меняется размер и mc_1! Возникает вопрос, как сохранить размер или масштаб 1_mc, при менющемся масштабе mc_2? У нас есть Stage.scaleMode = "noScale" - возможно применение этого метода для MovieClip? Или может есть какой-то подобный оператор? Для чего это нужно вы спросите.... пример реализации такого эффекта на http://mapia.ua . Если выбрать категории заведений, то при изменении размеров карты , иконки заведения остаются одного и того же размера... хотя по видимому координатная сетка меняется. Пропорцию типа: 2_mc._xscale = 200; 1_mc._xscale = 50; я и сам могу написать... но с ней проблема, таких обьектов внутри 2_mc._xscale очень много... и каждый зумировать заберёт много ресурсов. Помогите, подскажите! Спасибо! Последний раз редактировалось vanguish; 27.08.2009 в 15:04. |
|
|||||
Регистрация: Jan 2009
Сообщений: 1,651
|
а зачем не-масштабируемый пихать внутрь мастшабируемого? На слой поверху его надо. Вот и вся математика =)
noScale-подобного метода для MovieClip нет. |
|
|||||
[+3 14.09.09]
|
Ну не зря ж я поднял этот вопрос!
Именно такая связка, клип внутри клипа! Есть мувик - он же координатная сетка карты, карту мы можем приблежать и отдалять... но при это обекты или метки которые на ней лежат не должны менять свой размер и находиться в своей координате при любом зуме! Посмотри на пример карты! Вот ещё один пример http://www.anychart.com/products/any...ample_195.html Видишь, ка бы мы не меняли масштаб карты, метки отмеченных городов сохраняют свой размер. Если рисовать их программно. то там есть свойство не сохранять размер векторной графике, а если у нас метки MovieClip? |
|
|||||
Модрон-ветеринар
|
Тоже об этом подумал. Нужда во множестве нетривиальных решений отпадает на этапе правильного планирования ролика.
По теме - ИМХО, только через обратно-пропорциональное масшатбирование. Добавлено через 7 минут Цитата:
Либо находятся внутри, но их масштаб меняется обратно пропорционально изменению масштаба карты. Сталкивался с такой задачей... Последний раз редактировалось mooncar; 27.08.2009 в 16:00. |
|
|||||
[+3 14.09.09]
|
Цитата:
Я предполагаю использовать много таких меток, 50-100 шт. Сейчас попробую пересчитывать масштаб, обратно пропорционально... Выводами поделюсь ) |
|
|||||
Регистрация: Jan 2009
Сообщений: 1,651
|
А вы что, все 100 планируете на экране отображать? Включая те, что за пределами видимого экрана? Э, батенька, далеко вы так не поедете...
|
|
|||||
[+3 14.09.09]
|
Нет естественно.... Как вы могли такое подумать подумать...
Это столько обьектов будет в видимой области! Например если раскрыть карту на весь экран. Добавлено через 10 минут ООоо!! У меня возникла идея!! Можно ж в каждыю метку засунуть onEnterFrame и при изменения масштаба карты менять обратно пропорционально масштаб данной метки.... НО... 50 onEnterFrame точно затормозят систему ((( Возможно ли написать слушатель события по изменению масштаба карты addListener к каждой отметки? Типа 1_mc.addListener(resize); Только к чему привязать листенер? |
|
|||||
Модрон-ветеринар
|
Зачем листенер? Меняете масштаб карты - меняются пропорции меток.
Добавлено через 5 минут Мой вам совет - уберите метки из карты. Сделайте с ними отдельный слой, мувик. И просто передвигайете их пропорционально изменению масштаба. Намучаетесь иначе с перемасштабированием стольких объектов. Последний раз редактировалось mooncar; 27.08.2009 в 17:25. |
|
|||||
[+3 14.09.09]
|
Значит так.... сделал.... по схеме отбратон пропорционального масштабирования:
for (var i = 0; i<100; i++) { engine_mc.v_map_mc.attachMovie('id','id'+i,engine_mc.v_map_mc.getNextHighestDepth(),{_x:100*i, _y:100*i, _xscale:100*current_zoom, _yscale:100*current_zoom}); engine_mc.v_map_mc['id'+i].onEnterFrame = function() { this._yscale = this._xscale=100*current_zoom; }; } current_zoom - текущий масштаб Как видите разместил 100 обьектов.... производительность не упала... ни при двигании карты , ни при её зумировании!!! Всем спасибо ))) Наверно так и оставлю. Можно конечно попробовать изменять координаты меток... и сравнить что меньше жрёт ресурс.. но думаю разницы особой не будет! Если есть какие-то ещё варианты прошу поделиться )) Последний раз редактировалось vanguish; 27.08.2009 в 18:45. |
|
|||||
Модрон-ветеринар
|
Ужас. onEnterFrame в каждом мувике. Одного-то почему мало было?
Вам нужно всего-то было при изменении мастштаба пересчитать координаты меток. Не захотели вытаскивать метки, видимо. Зря. А вообще, ИМХО, разница будет. Одно дело - двигать мувик с векторной картинкой, а другое - изменять его масштаб, тем более |
![]() |
![]() |
Часовой пояс GMT +4, время: 06:26. |
|
« Предыдущая тема | Следующая тема » |
Теги |
movieclip , scale |
Опции темы | |
Опции просмотра | |
|
|