Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/14: Рейтинг темы: голосов - 14, средняя оценка - 4.64
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707

Маска

05.03.2012, 09:49. Показов 2736. Ответов 11
Метки нет (Все метки)

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

black - затемняющий прямоугольник
если я у героя задаю следующее:
ActionScript 3
1
2
3
4
5
6
private function createMask() : void
{
  var blackMask1:BlackMask1 = new BlackMask1();
  hand.magicBall.addChild(blackMask1);
  black.mask = blackMask1;  
}
То получаю обратный эффект - область вокруг героя становится затемненной, а все остальное - нет.

Как добиться нужного эффекта - нарисовать прямоугольник в 2 раза больше black с нужной дыркой и крепить его также ?)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.03.2012, 09:49
Ответы с готовыми решениями:

Видимая маска
Как сделать так, что бы объект, который служит маской был виден? Просто он у меня в некоторых местах прозрачный.

Пользовательская маска и маска по умолчанию
Всем привет! Подскажите, пожалуйста, в чём разница между пользовательской маской и маской по умолчанию%-)? Заранее спасибо за ответ

Ip маска
У меня есть IP маска 11111111.11111111.11111100.00000000.Как я могу преобразовать ее в префиксную форму на c++?

11
Модератор
 Аватар для TanaTiX
2931 / 1790 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
05.03.2012, 11:37
Я правильно понял, что хочешь наложить маску на маску?
0
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
05.03.2012, 12:11  [ТС]
нет, у меня есть просто черный прямоугольник (black), который висит постоянно поверх всего на экране. Он изменяет свою прозрачность в зависимости о некоторых действий. Мне нужно сделать так, чтобы область вокруг главного героя (просто круг определенного радиуса) вырезался из этого прямоугольника - т.е. все вокруг бы темнело, а именно этот кусок - нет.

Надеюсь, что теперь нормально объяснил)

P.S. Т.е. маска кладется на этот черный прямоугольник - только мне маску надо как-то инвертировать - т.е. чтобы показывался не круг из этого прямоугольника, а наоборот - все кроме круга.
0
Модератор
 Аватар для TanaTiX
2931 / 1790 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
05.03.2012, 12:56
Я такую штуку делал программно: отрисовывал по необходимости шэйп с дыркой и использовал его в качестве маски.
1
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
05.03.2012, 14:38  [ТС]
ясно, попробую, спасибо.

Добавлено через 47 минут
Цитата Сообщение от TanaTiX Посмотреть сообщение
Я такую штуку делал программно: отрисовывал по необходимости шэйп с дыркой и использовал его в качестве маски.
Подскажи пожалуйста, как сделать нормальную дырку в Shape, а то он у меня ее не воспринимает почему-то.
0
Модератор
 Аватар для TanaTiX
2931 / 1790 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
05.03.2012, 14:49
ActionScript 3
1
2
3
4
this.graphics.beginFill(0xc0c0c0);
this.graphics.drawRect(0,0,300,300);
this.graphics.drawRect(50,50,50,50);
this.graphics.endFill();
1
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
05.03.2012, 14:56  [ТС]
хм, спасибо, по логике же это не дырка, а второй прямоугольник на прямоугольнике ?
0
Модератор
 Аватар для TanaTiX
2931 / 1790 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
05.03.2012, 15:20
Theoryofgames, возмжоно. Но нет желания вдаваться в философию. Просто есть способ, довольно простой, никак не сказывающийся (по крайней мере мне не известно) на производительности.
Можешь провести ряд экспериментов, может что-то интересное из этого выйдет. Мне лениво заморачиваться на этот счет.
1
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
05.03.2012, 17:23  [ТС]
Разобрался, может кому пригодится:

Второй круг рисуется поверх первого с blendMode = BlendMode.Erase.
0
Модератор
 Аватар для TanaTiX
2931 / 1790 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
06.03.2012, 15:43
Theoryofgames, можешь изобразить минимальный пример? А то у меня что-то не выходит. Может не выспался, но все же...
0
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
06.03.2012, 20:03  [ТС]
завтра вечером напишу, сейчас убегаю

Добавлено через 59 минут
Будет примерно как-то так. Маски тут вообще ни при чем оказались.
Если сделать цвет сцены не белым будет видно, что область вокруг героя такого же цвета, как и сцена.

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package 
{   
    import flash.display.*;
    import flash.events.Event;
    
    public class Test extends MovieClip
    {               
        private var rect:Sprite = new Sprite();
        private var circle:Sprite = new Sprite();
        private var hero:Sprite = new Sprite();
        
        public function Test()
        {                       
            rect.graphics.beginFill(0x000000);
            rect.graphics.drawRect(0, 0, 640, 480);
            rect.graphics.endFill();
            rect.blendMode = BlendMode.LAYER;
            rect.alpha = 0;
            
            circle.graphics.beginFill(0xFFFF00);
            circle.graphics.drawCircle(0, 225, 50);
            circle.graphics.endFill();
            circle.blendMode = BlendMode.ERASE; 
            
            hero.graphics.beginFill(0xFFFF00);
            hero.graphics.drawCircle(0, 230, 20);
            hero.graphics.endFill();
                                    
            rect.addChild(circle);
            addChild(hero);
            addChild(rect);
            
            addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
        }       
        
        private function loop(event:Event) : void
        {           
            rect.alpha += 0.01;
            hero.x += 3;
            circle.x = hero.x;          
        }       
    }   
}
1
Модератор
 Аватар для TanaTiX
2931 / 1790 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
06.03.2012, 20:19
Хм... А я в контейнер (rect) не добавлял, потому и не работало, потому и не советовал такой вариант. Буду иметь в виду, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.03.2012, 20:19
Помогаю со студенческими работами здесь

Маска
Доброго времени суток... подскажите пожалуйста как создать функцию проверки на маску такого вот плана -> МН-МСК-131.. спасибо.. ...

Маска
Собственно нужно, чтобы if проверял переменную против маски. Типа if($a=**.**.****), но как это сделать? Маска **.**.**** , то есть...

Маска стилей
Доброго дня уважаемые коллеги. Подскажите пожалуйста, как расшифровать такой вот селектор: Никак не могу найти объяснений для...

Маска подсети
1. Напишите маску в двоичном и десятичном виде для разделения IP адреса по 15 компьютеров в сети. 2. Распишите в двоичном виде и...

Png Маска
перелазил уже куча сайтов, но не смог найти примеров использования png маски. вроде, как должно работать ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru