Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Вивисекция картинки
Flash Zone Forum > Macromedia Flash > ActionScript
SunShadow
Взялся попробовать себя в изготовлении пазлов. Хочу попробовать оживить поднадоевшую игрушку. Было бы здорово, если бы получилось клиенту загружать картинку и на ходу разрезать ее на квадраты. Я честно не смог найти такого среди команд Флэша. Но я осваиваю его не так давно, и поэтому не знаю точно есть ли данный инструмент или нет в наборе Macromedia. Я работаю с 8 версией, если кто знаком с возможностями, помогите)
SunShadow
Долго ждал пока кто-нибудь ответит. Не дождался. Пришлось делать все самому biggrin.gif
Цитата
import flash.display.BitmapData; //импорт необходимого функционала
import flash.geom.Rectangle;
import flash.geom.Point;
createPuzzle(); //создание картинок пазла
function createPuzzle() {
var kartinka = BitmapData.loadBitmap("PuzzleAll"); //это будет наша главная картинка
var pazl = new BitmapData(75, 75, false, 0x00FF0000); //эту будем использовать как контейнер для кусков
for (y=0; y<7; y++) { // в моем пазле 7 рядов
for (x=0; x<6; x++) { // по 6 колонок
// для начала с главной картинки вырезаем нужный кусок 75х75 точек
pazl.copyPixels(kartinka, new Rectangle(0+75*x, 0+75*y, 75, 75), new Point(0, 0));
//подгружаем из библиотеки клип в который будем сохранять картинку
// к нему можно прицепить нужный нам класс, чтобы куски реагировали на действия пользователя
_root.attachMovie("Piece", "Piece"+y+x, 100+y*11+x);
// присоединяем картинку к созданному клипу
eval(_root._target+"Piece"+y+x).attachBitmap(pazl.clone(), this.getNextHighestDepth(), "Never", true);
// устанавливаем случайно координаты в области где будут лежать куски пазла
eval(_root._target+"Piece"+y+x)._x = Math.random()*225+10;
eval(_root._target+"Piece"+y+x)._y = Math.random()*450+10;
}
}
}

Ну а дальше дело техники, можно реализовывать сами пазлы) Главное чтобы картинка в библиотеке была нужного размера 75х6 = 450 точек в ширину и 75х7 = 525 точек в высоту.
На механизм наткнулся случайно в хелпе. Оказывается полезно читать иногда его перед сном wink.gif
О сколько нам открытий чудных, готовит Flash под цифрой 8 cool.gif
MustLive
Цитата
Долго ждал пока кто-нибудь ответит.

SunShadow

Нужно помнить, что я занятый человек. И я не всегда могу найти время для ответов. Но я веду учёт всех постов на форуме, так что я обязательно отвечу, как найду время - нужно лишь дождаться.

Цитата
Не дождался.

И первым делом, пока ожидаешь ответа и перед тем как вообще постить вопрос на форуме - стоит воспользоваться поиском wink.gif.

Чтобы в частности прочитать те темы, где я ранее уже отвечал по подобным вопросам:

Flash-ПАЗЛ, Нужно сделать пазл во флэше
И СНОВА ПАЗЛ!, Создание Flash-пазла

Полезно пользоваться поиском по форуму.

Цитата
Пришлось делать все самому

И неплохо получилось. Полезный код, может другим участникм форума пригодиться.

Видишь, то что я с задержкой ответил в этот топик, пошло тебе на пользу smile.gif.

Цитата
На механизм наткнулся случайно в хелпе. Оказывается полезно читать иногда его перед сном wink.gif

Полезно иногда читать хелп. О чём я регулярно говорю всем участникам нашего форума.

Во Flash 8 с помощью BitmapData стало возможным оперативно и изящно делать подобные вещи.

Цитата
О сколько нам открытий чудных, готовит Flash под цифрой 8

Да в 8м флеше есть ещё много чего интересного. И обязательно на форуме расскажи, если ты столкнёшься с чем-то интересным.
Русская версия IP.Board © 2001-2009 IPS, Inc.