Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.08.2009, 15:00
vanguish вне форума Посмотреть профиль Отправить личное сообщение для vanguish Найти все сообщения от vanguish
  № 1  
Ответить с цитированием
vanguish
[+3 14.09.09]
 
Аватар для vanguish

Регистрация: Nov 2006
Адрес: Ukrainian
Сообщений: 24
Отправить сообщение для vanguish с помощью ICQ
По умолчанию Сохранение размера MovieClip внутри масштабируемого MovieClip

Допустим у нас есть обьект 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.
Старый 27.08.2009, 15:29
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 2  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
а зачем не-масштабируемый пихать внутрь мастшабируемого? На слой поверху его надо. Вот и вся математика =)

noScale-подобного метода для MovieClip нет.

Старый 27.08.2009, 15:52
vanguish вне форума Посмотреть профиль Отправить личное сообщение для vanguish Найти все сообщения от vanguish
  № 3  
Ответить с цитированием
vanguish
[+3 14.09.09]
 
Аватар для vanguish

Регистрация: Nov 2006
Адрес: Ukrainian
Сообщений: 24
Отправить сообщение для vanguish с помощью ICQ
Ну не зря ж я поднял этот вопрос!
Именно такая связка, клип внутри клипа!
Есть мувик - он же координатная сетка карты, карту мы можем приблежать и отдалять... но при это обекты или метки которые на ней лежат не должны менять свой размер и находиться в своей координате при любом зуме!
Посмотри на пример карты!
Вот ещё один пример http://www.anychart.com/products/any...ample_195.html

Видишь, ка бы мы не меняли масштаб карты, метки отмеченных городов сохраняют свой размер.

Если рисовать их программно. то там есть свойство не сохранять размер векторной графике, а если у нас метки MovieClip?

Старый 27.08.2009, 15:52
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от iflamberg Посмотреть сообщение
а зачем не-масштабируемый пихать внутрь мастшабируемого?
Тоже об этом подумал. Нужда во множестве нетривиальных решений отпадает на этапе правильного планирования ролика.
По теме - ИМХО, только через обратно-пропорциональное масшатбирование.

Добавлено через 7 минут
Цитата:
Сообщение от vanguish Посмотреть сообщение
Вот ещё один пример http://www.anychart.com/products/any...ample_195.html
Либо там метки городов не находятся внутри карты, а лежат в отдельном слое и их координаты пересчитываются по X и Y пропорционально изменению масштаба...
Либо находятся внутри, но их масштаб меняется обратно пропорционально изменению масштаба карты.
Сталкивался с такой задачей...


Последний раз редактировалось mooncar; 27.08.2009 в 16:00.
Старый 27.08.2009, 16:33
vanguish вне форума Посмотреть профиль Отправить личное сообщение для vanguish Найти все сообщения от vanguish
  № 5  
Ответить с цитированием
vanguish
[+3 14.09.09]
 
Аватар для vanguish

Регистрация: Nov 2006
Адрес: Ukrainian
Сообщений: 24
Отправить сообщение для vanguish с помощью ICQ
Цитата:
Либо находятся внутри, но их масштаб меняется обратно пропорционально изменению масштаба карты.
Сталкивался с такой задачей...
И как сказалось на производительности?
Я предполагаю использовать много таких меток, 50-100 шт.
Сейчас попробую пересчитывать масштаб, обратно пропорционально...
Выводами поделюсь )

Старый 27.08.2009, 16:40
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 6  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
А вы что, все 100 планируете на экране отображать? Включая те, что за пределами видимого экрана? Э, батенька, далеко вы так не поедете...

Старый 27.08.2009, 16:46
vanguish вне форума Посмотреть профиль Отправить личное сообщение для vanguish Найти все сообщения от vanguish
  № 7  
Ответить с цитированием
vanguish
[+3 14.09.09]
 
Аватар для vanguish

Регистрация: Nov 2006
Адрес: Ukrainian
Сообщений: 24
Отправить сообщение для vanguish с помощью ICQ
Нет естественно.... Как вы могли такое подумать подумать...
Это столько обьектов будет в видимой области!
Например если раскрыть карту на весь экран.

Добавлено через 10 минут
ООоо!! У меня возникла идея!!
Можно ж в каждыю метку засунуть onEnterFrame и при изменения масштаба карты менять обратно пропорционально масштаб данной метки.... НО... 50 onEnterFrame точно затормозят систему (((
Возможно ли написать слушатель события по изменению масштаба карты addListener к каждой отметки?
Типа 1_mc.addListener(resize);
Только к чему привязать листенер?

Старый 27.08.2009, 17:19
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Зачем листенер? Меняете масштаб карты - меняются пропорции меток.

Добавлено через 5 минут
Мой вам совет - уберите метки из карты.
Сделайте с ними отдельный слой, мувик. И просто передвигайете их пропорционально изменению масштаба. Намучаетесь иначе с перемасштабированием стольких объектов.


Последний раз редактировалось mooncar; 27.08.2009 в 17:25.
Старый 27.08.2009, 18:42
vanguish вне форума Посмотреть профиль Отправить личное сообщение для vanguish Найти все сообщения от vanguish
  № 9  
Ответить с цитированием
vanguish
[+3 14.09.09]
 
Аватар для vanguish

Регистрация: Nov 2006
Адрес: Ukrainian
Сообщений: 24
Отправить сообщение для vanguish с помощью ICQ
Значит так.... сделал.... по схеме отбратон пропорционального масштабирования:
Код AS1/AS2:
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;
 
	};
}
engine_mc - это слой который масштабируется
current_zoom - текущий масштаб
Как видите разместил 100 обьектов.... производительность не упала... ни при двигании карты , ни при её зумировании!!!
Всем спасибо ))) Наверно так и оставлю. Можно конечно попробовать изменять координаты меток... и сравнить что меньше жрёт ресурс.. но думаю разницы особой не будет!

Если есть какие-то ещё варианты прошу поделиться ))


Последний раз редактировалось vanguish; 27.08.2009 в 18:45.
Старый 27.08.2009, 19:09
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 10  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Ужас. onEnterFrame в каждом мувике. Одного-то почему мало было?
Вам нужно всего-то было при изменении мастштаба пересчитать координаты меток.
Не захотели вытаскивать метки, видимо. Зря.
А вообще, ИМХО, разница будет. Одно дело - двигать мувик с векторной картинкой, а другое - изменять его масштаб, тем более

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:21.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
movieclip , scale
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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