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

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

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

Регистрация: May 2010
Сообщений: 2
Question Как перерисовывать обрезание по маске

Привет.
Я не flash-разработчик, но благодаря этому форуму сделал калейдоскоп. Смысл в том, что в кусок сцены набрасываются в случайные координаты мувики, это обрезается в виде куска круга и размножается. Получается калейдоскоп.
Но сейчас это делается один раз, а мне нужно делать это все время, чтобы в реальном времени набрасывать в калейдоскоп новые кусочки, чтобы он постоянно перерисовывался.

Прошу помощи советом. Или киньте откуда взять =)
Нужно сделать на AS 2.0
Код вот:
Код AS1/AS2:
import flash.display.BitmapData;
 
var i:Number = 0;
 
var mc_box:MovieClip = this.createEmptyMovieClip('mc_box', 1);
 
//Создаем клип из кусочков
 
var mc_img:MovieClip = mc_box.createEmptyMovieClip('mc_img', 1);
for (i=0;i<Math.random()*500;i++) {
mc_img = mc_img.attachMovie("snow_mc1", "smile", _root.getNextHighestDepth(), {_y:Math.random()*50, _x:Math.random()*50});
}
 
//Выкладываем маску
var bmp_mask:BitmapData = BitmapData.loadBitmap('mask3.png');
var mc_mask:MovieClip = mc_box.createEmptyMovieClip('mc_mask', 2);
mc_mask.attachBitmap(bmp_mask, 0);
 
//Обрезаем маску
mc_mask.blendMode = 11;
mc_box.blendMode = 2;
 
 
//Создаем копию слоя
var myBitmapData:BitmapData = new BitmapData(mc_box._width, mc_box._height, true, 0x00000000);
var mc_1:MovieClip = this.createEmptyMovieClip("reflect_mc_1", _root.getNextHighestDepth());
mc_1.attachBitmap(myBitmapData, 1);
myBitmapData.draw(mc_box);
reflect_mc_1._rotation = -15;
reflect_mc_1._x = Stage.width/2;
reflect_mc_1._y = Stage.width/2;
 
 
//Еще копия
var myBitmapData:BitmapData = new BitmapData(mc_box._width, mc_box._height, true, 0x00000000);
var mc_1:MovieClip = this.createEmptyMovieClip("reflect_mc_2", _root.getNextHighestDepth());
mc_1.attachBitmap(myBitmapData, 2);
myBitmapData.draw(mc_box);
reflect_mc_2._rotation = 195;
reflect_mc_2._x = Stage.width/2;
reflect_mc_2._y = Stage.width/2;
reflect_mc_2._xscale=-100;
 
// И ТАК ДАЛЕЕ 24 РАЗА ВСЕГО, 12 так и 12 отраженных
 
//Делаем исходный обрезанный кусок невидимым
mc_box._visible=false;
mask3.png - маска png, где черное - это нужное

Еще раз - мне нужно чтобы я мог в реальном времени выбирать новые мувики, менять исходный обрезанный кусочек и весь калейдоскоп бы перерисовывался. Вот что-то похожее на AS3 http://www.scriptingaction.com/?p=104
За отсутствие цикла на создание кусков прошу не ругать - не разобрался пока =)

Спасибо заранее

Старый 14.06.2010, 17:56
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 2  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 nowayz:
Гляньте сюда: http://www.flashkit.com/search.php?t...&Submit=Submit
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 15.06.2010, 02:53
nowayz вне форума Посмотреть профиль Отправить личное сообщение для nowayz Найти все сообщения от nowayz
  № 3  
Ответить с цитированием
nowayz

Регистрация: May 2010
Сообщений: 2
Цитата:
Сообщение от Хемуль Посмотреть сообщение
Спасибо - там старенькое, но лучше чем ничего =)

Добавлено через 36 часов 32 минуты
Всем спасибо - с проблемой разобрался.
Выход - перенос рисовалки в movieclip и отрисовка по EnterFrame.

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

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

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


 


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


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