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

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

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

Регистрация: Sep 2010
Сообщений: 33
По умолчанию drawCircle

Всем привет!
Я рисую прямоугольник на весь экран с прозрачным дыркой в виде окружности:
Код AS3:
main_rect.graphics.beginFill(0x000000,0.5);
main_rect.graphics.drawRect(0,0,mainClass(root).stage.stageWidth,mainClass(root).stage.stageHeight);
main_rect.graphics.drawCircle(mainClass(root).hero.x,mainClass(root).hero.y,30);
main_rect.graphics.endFill();
Как можно программно изменять координаты этой окружности? или придется каждый фрейм удалять и прорисовывать заново все с новыми координатами окружности?

Старый 22.09.2010, 13:11
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 2  
Ответить с цитированием
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Правильно думаете! Можно конечно, исхитриться с масками, или же комбинацией двух клипов в контейнере (у отверстия blendMode = BlendMode.ERASE, у контейнера, в котором лежат и клип-прямоугольник и клип-отверстие blendMode = BlendMode.LAYER) но это того не стоит, мне кажется.


Последний раз редактировалось Hidest; 22.09.2010 в 13:15.
Старый 22.09.2010, 13:21
Jackson вне форума Посмотреть профиль Отправить личное сообщение для Jackson Найти все сообщения от Jackson
  № 3  
Ответить с цитированием
Jackson

Регистрация: Sep 2010
Сообщений: 33
А как это сделать с помощью маски?если можно, пример. Мне кажется, двигать окружность все-таки элегантнее)))

Старый 22.09.2010, 13:33
leofit вне форума Посмотреть профиль Отправить личное сообщение для leofit Найти все сообщения от leofit
  № 4  
Ответить с цитированием
leofit
 
Аватар для leofit

Регистрация: Dec 2009
Сообщений: 428
рисуйте круг отдельным спрайтом, потом main_rect.mask = спрайт_с_кругом
__________________
Скажи мне кто твой друг и я скажу тебе кто твой друг

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

Регистрация: Sep 2010
Сообщений: 33
спасибо, попробую

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

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Не, чтобы маской сделать дырку, надо рисовать не окружность, а все тот же прямоугальник с отверстием, но большего размера, чтобы он пререкрывал всегда исходный прямоугльник (уже без отверстия) при любым изменениях координат "как бы отверстия"... Если маска - просто окружность, то вы в итоге и получите окружность, а все остальное исчезнет...

Так вы и будете двигать свою окружность, не менее элегантно... просто она будет абстрактной, а перерисовка не повлияет на скорость (если конечно, у вас будут не тысячи таких объектов)... Ну а если уж совсем хотите по отдельности, тогда в руки мой совет с blendMode (можете сначала попробовать в FlashIDE ручками сделать, чтобы понять принцип, а потом уже все клипы отрисовывать в рантайме)...


Последний раз редактировалось Hidest; 22.09.2010 в 13:55.
Старый 22.09.2010, 15:01
Jackson вне форума Посмотреть профиль Отправить личное сообщение для Jackson Найти все сообщения от Jackson
  № 7  
Ответить с цитированием
Jackson

Регистрация: Sep 2010
Сообщений: 33
Цитата:
Сообщение от Hidest Посмотреть сообщение
надо рисовать не окружность, а все тот же прямоугальник с отверстием, но большего размера, чтобы он пререкрывал всегда исходный прямоугльник
Получается,что я все равно нарисую прямоугольник с дыркой и буду двигать прямоугольник? тогда и маска не нужна...

Добавлено через 26 минут
Цитата:
Сообщение от Hidest Посмотреть сообщение
тогда в руки мой совет с blendMode
Получилось! хороший совет, спасибо!

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

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

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


 


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


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