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

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

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

Регистрация: Feb 2010
Адрес: 52.726839, 41.448723
Сообщений: 6
По умолчанию Программно создаваемые пазлы

Приветствую! Я во флэше новичок, но очень надо разобраться. Такой вопрос - как нормально реализовать программное разбиение картинки на кусочки по заданной сетке и потом чтобы их можно было собрать вместе? Я уже хорошенько погуглил и даже нашел немного материала. Вот, например, http://demiart.ru/forum/index.php?showtopic=52274. Но в том примере сам автор обозначает такой баг, что между кусочками из картинки вырезаются пиксели, где накладывается сетка. Я так понял это происходит потому что сетка рисуется и фотографируется в битмап, при этом получается растровой. Видел ещё примеры(правда ссылку уже не найду), где пазлы создаются рученьками в рабочей среде - сетка накладывается на изображение, потом вместе выделяются и жмется CTRL+B, потом каждый кусочек преобразуется в мувик, добавляется на сцену, и каждому кусочку вручную прописывается инстанс. Но это тоже определенно не подходит, потому что нужно именно брать картинку из файла пользователя, который он предложит и её уже резать. В моём же случае есть несколько уже готовых векторных сеток, сгенерированных в Corel`e, потом сохраненных в .sfw и импортированных в библиотеку. Вот как реализовать чтобы картинка разрезалась по этим векторным сеткам без потерь? и в принципе это возможно программным путём? может есть более удобные подходы?

Заранее благодарен за помощь!))))

Старый 08.04.2010, 00:17
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Попробуйте такой способ. Проще ничего не придумал.
Код AS1/AS2:
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
 
// вырезка одного пазла.
 
// исходное изображение
var image:BitmapData = BitmapData.loadBitmap("image");
 
// карта пазлов, каждый из которых имеет уникальный цвет
var map:BitmapData = BitmapData.loadBitmap("map");
 
// текущий цвет пазла в карте
var currentPuzzleColor:Number = 0xFFFF6633;
 
// определяем границы текущего цвета
var puzzleBounds:Rectangle = map.getColorBoundsRect(0xFFFFFFFF, currentPuzzleColor, true);
 
// создаем битмапдату по размерам цвета
var croppedImage:BitmapData = new BitmapData(puzzleBounds.width, puzzleBounds.height, true, 0xFFFFFFFF);
 
// копируем кусок исходного изображения в границах цвета
croppedImage.copyPixels(image, puzzleBounds, new Point(0, 0));
 
// устанавливаем всем пикселям не равным текущему цвету — 0x00000000
croppedImage.threshold(map, puzzleBounds, 
		new Point(0, 0), "!=", currentPuzzleColor, 0x00000000, 0xFFFFFFFF);
 
var imageContainer:MovieClip = createEmptyMovieClip("imageContainer", 0);
imageContainer.attachBitmap(croppedImage, 0);

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

Регистрация: Feb 2010
Адрес: 52.726839, 41.448723
Сообщений: 6
а можно поподробней насчет синтаксиса методов getColorBoundsRect() и threshold()? какие параметры у них в скобках прописываются?
что-то я погуглил и ничего толком не нашёл по этому поводу.


Последний раз редактировалось Bolshoy2010; 08.04.2010 в 12:54.
Старый 08.04.2010, 12:58
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
http://help.adobe.com/ru_RU/AS2LCR/F...10.html#162329
http://help.adobe.com/ru_RU/AS2LCR/F...95.html#155842

Старый 08.04.2010, 13:28
Bolshoy2010 вне форума Посмотреть профиль Отправить личное сообщение для Bolshoy2010 Найти все сообщения от Bolshoy2010
  № 5  
Ответить с цитированием
Bolshoy2010

Регистрация: Feb 2010
Адрес: 52.726839, 41.448723
Сообщений: 6
Огромное спасибо за помощь и информацию!! буду разбираться и пробовать.

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

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

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


 


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


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