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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.07.2009, 20:40
oam333 вне форума Посмотреть профиль Отправить личное сообщение для oam333 Найти все сообщения от oam333
  № 1  
Ответить с цитированием
oam333

Регистрация: Jun 2009
Адрес: Иваново
Сообщений: 26
По умолчанию Копирование на сцену части мувиклипа

Эх.. очень не хотел создавать эту тему, т.к. сразу скажете про маски или про RTFM, но нигде на форуме не смог найти.
В библиотеке находится около 20 мувиков (в принципе не важно сколько). Как вытащить какую-то часть (прямоугольную) мувика на сцену? Мувики в библиотеке лежат векторные. Дальше, если пользователь увеличивает видимую часть сцены, то как вытащить увеличенную часть мувика из библиотеки? С использованием маски (при таскании сцены мышкой) появляются сильные тормоза, т.к. при увеличении слишком много контента остается за пределами видимой части мувика. Как тогда можно отрезать то, что находится за пределами видимой части? С BitmapData поигрался, но ничего хорошего не вышло (т.е. вообще ничего не вышло). Можете подсказать куда копать?


Последний раз редактировалось oam333; 04.07.2009 в 21:16.
Старый 04.07.2009, 21:38
alekslitvinenk вне форума Посмотреть профиль Отправить личное сообщение для alekslitvinenk Посетить домашнюю страницу alekslitvinenk Найти все сообщения от alekslitvinenk
  № 2  
Ответить с цитированием
alekslitvinenk
 
Аватар для alekslitvinenk

Регистрация: Oct 2005
Адрес: Москва
Сообщений: 491
Отправить сообщение для alekslitvinenk с помощью ICQ Отправить сообщение для alekslitvinenk с помощью AIM Отправить сообщение для alekslitvinenk с помощью Skype™
Собственно, вариантов кроме BitmapData тут больше и нету
По частям аттачить мувик из библиотеки нельзя, маска у Вас тормозит.
Почему у Вас ничего хорошего не вышло с битмапдатой ?

Старый 05.07.2009, 00:12
oam333 вне форума Посмотреть профиль Отправить личное сообщение для oam333 Найти все сообщения от oam333
  № 3  
Ответить с цитированием
oam333

Регистрация: Jun 2009
Адрес: Иваново
Сообщений: 26
Цитата:
Сообщение от alekslitvinenk Посмотреть сообщение
<...>
Почему у Вас ничего хорошего не вышло с битмапдатой ?
Забыл поставить cacheAsBitmap = true.
Таскается теперь нормально, без тормозов (до определенного увеличения), а вот само увеличение (уменьшение) тормозит безбожно...

Старый 05.07.2009, 15:38
alekslitvinenk вне форума Посмотреть профиль Отправить личное сообщение для alekslitvinenk Посетить домашнюю страницу alekslitvinenk Найти все сообщения от alekslitvinenk
  № 4  
Ответить с цитированием
alekslitvinenk
 
Аватар для alekslitvinenk

Регистрация: Oct 2005
Адрес: Москва
Сообщений: 491
Отправить сообщение для alekslitvinenk с помощью ICQ Отправить сообщение для alekslitvinenk с помощью AIM Отправить сообщение для alekslitvinenk с помощью Skype™
вы бы кусок кода привели здесь: как вы делаете увеличение/уменьшение

Старый 05.07.2009, 16:14
oam333 вне форума Посмотреть профиль Отправить личное сообщение для oam333 Найти все сообщения от oam333
  № 5  
Ответить с цитированием
oam333

Регистрация: Jun 2009
Адрес: Иваново
Сообщений: 26
Цитата:
Сообщение от alekslitvinenk Посмотреть сообщение
вы бы кусок кода привели здесь: как вы делаете увеличение/уменьшение
Делаю банальным _xscale, _yscale:
Код AS1/AS2:
var mc_map:MovieClip = this.createEmptyMovieClip("mc_map", this.getNextHighestDepth());
 
mc_map.attachMovie("un_zelen_mc", "un_zelen_mc_new", mc_map.getNextHighestDepth());
mc_map.attachMovie("un_brown_mc", "un_brown_mc_new", mc_map.getNextHighestDepth());
mc_map.attachMovie("zelen_mc", "zelen_mc_new", mc_map.getNextHighestDepth());
mc_map.attachMovie("kontur_zelen_mc", "kontur_zelen_mc_new", mc_map.getNextHighestDepth());
mc_map.attachMovie("grey_mc", "grey_mc_new", mc_map.getNextHighestDepth());
mc_map.attachMovie("kontur_grey_mc", "kontur_grey_mc_new", mc_map.getNextHighestDepth());
mc_map.attachMovie("kvartal_mc", "kvartal_mc_new", mc_map.getNextHighestDepth());
mc_map.attachMovie("kontur_mc", "kontur_mc_new", mc_map.getNextHighestDepth());
mc_map.attachMovie("reka_mc", "reka_mc_new", mc_map.getNextHighestDepth());
mc_map.attachMovie("kontur_reka_mc", "kontur_reka_mc_new", mc_map.getNextHighestDepth());
mc_map.attachMovie("doma_mc", "doma_mc_new", mc_map.getNextHighestDepth());
mc_map.attachMovie("kontur_doma_mc", "kontur_doma_mc_new", mc_map.getNextHighestDepth());
mc_map.cacheAsBitmap = true;
 
var mc_control:MovieClip = this.createEmptyMovieClip("mc_control", this.getNextHighestDepth());
mc_control.attachMovie("plus_btn", "plus_btn_sc", mc_control.getNextHighestDepth());
mc_control.attachMovie("minus_btn", "minus_btn_sc", mc_control.getNextHighestDepth());
mc_control.plus_btn_sc._x = 500;
mc_control.plus_btn_sc._y = 19;
mc_control.minus_btn_sc._x = 500;
mc_control.minus_btn_sc._y = 50;
 
mc_map.onMouseDown = function() {
	startDrag(mc_map, false);
}
 
mc_map.onMouseUp = function() {
	stopDrag();
}
 
var scale:Number = 1;
mc_control.plus_btn_sc.onPress = function() {
	scale += 100;
	}
mc_control.plus_btn_sc.onRelease = plus_btn_sc.onReleaseOutside = function() {
	_root.mc_map._xscale = scale;
	_root.mc_map._yscale = scale;
	}
mc_control.minus_btn_sc.onPress = function() {
	scale -= 100;
	}
mc_control.minus_btn_sc.onRelease = minus_btn_sc.onReleaseOutside = function() {
	_root.mc_map._xscale = scale;
	_root.mc_map._yscale = scale;
	}
Добавлено через 2 минуты
Плюс еще вопрос:
что быстрее масштабируется - один большой векторный рисунок или куча мелких векторных рисунков (если разбить большой на кучу маленьких) ?

Добавлено через 36 минут
То, что у меня получилось - http://ivedu.ru/sborka.swf

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

Регистрация: Oct 2005
Адрес: Москва
Сообщений: 491
Отправить сообщение для alekslitvinenk с помощью ICQ Отправить сообщение для alekslitvinenk с помощью AIM Отправить сообщение для alekslitvinenk с помощью Skype™
при достаточно сильном увеличении имеет смысл вырезать только часть карты и двигать ее, вобще в подобных проектах имеет смысл использовать тайлы.

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

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

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


 


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


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