Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Помогите разобраться с Маской! (http://www.flasher.ru/forum/showthread.php?t=89139)

Dark Owl 08.12.2006 15:17

Помогите разобраться с Маской!
 
Вложений: 1
Проблема: Не работает Маска. Скорее всего я что-то не правильно делаю. Потому что опыта работы с масками очень мало. Почти нет. У меня кубики просто пролетают, не обращая внимания на прозрачность.
Задача: 3 Кубика при движении видны в зависимости от прозрачности большого прямоугольника. Тоесть где альфа-100% их видно, а где 0% - не видно.

Исходник прилагается.

etc 08.12.2006 15:42

Нужно поставить cacheAsBitmap на оба мувика (маску и маскируемый) и вешать маску программно.

Dark Owl 08.12.2006 15:48

Зачем вешать маску программно? Как поставить cacheAsBitmap на оба мувика? Как вешать маску программно? Нужно задавать координаты?
А нельзя сделать так как я? Думаю у меня в исходнике просто где-то ошибка. Раньше ведь кажется программно нельзя было вешать.

Dark Owl 08.12.2006 15:48

Зачем вешать маску программно? Как поставить cacheAsBitmap на оба мувика? Как вешать маску программно? Нужно задавать координаты?
А нельзя сделать так как я? Думаю у меня в исходнике просто где-то ошибка. Раньше ведь кажется программно нельзя было вешать.

etc 08.12.2006 15:54

F1 > setMask, cacheAsBitmap

Dark Owl 08.12.2006 16:05

Обозвал главный мувик на главной сцене test, там же в первой сцене написал
Код:

test.cacheAsBitmap(1);
Ничего не сработало. Пробовал и без скобочек и с 0 и с равно 1 и т.д. ошибку не выдаёт но не работает.

А про сетмаск прочитал:
Цитата:

Example
The following code uses the circleMask_mc movie clip to mask the theMaskee_mc movie clip:
theMaskee_mc.setMask(circleMask_mc);
Вопрос, что в моём примере служит маской чего? У меня основной мувик Movie (название в библиотеке). В нём три motion tween И одна статичная маска. Как мне их обозвать, чтобы можно было на них ссылаться?
И в какое место писать формулу
Код:

theMaskee_mc.setMask(circleMask_mc);
? На главную сцену в нужный фрейм? Или в самом мувике?

etc 08.12.2006 16:21

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

Dark Owl 08.12.2006 16:44

Вложений: 1
Так, начинает доходить, но очень медленно.
Вот посмотри, что сейчас не так?
Теперь всё в мувиках, названия заданы, но отказывыается работать, что-то о5 не так.

Про кэшэсбитмап в хэлпе почти ничего не понятно.
Цитата:

cacheAsBitmap (MovieClip.cacheAsBitmap property)
public cacheAsBitmap : Boolean
А в примере:
Код:

container.filters = new Array(dropShadow);
trace(container.cacheAsBitmap); // true

В другом месте:
Цитата:

cacheAsBitmap:Boolean
If set to true, Flash Player caches an internal bitmap representation of the movie clip.

etc 08.12.2006 17:05

Код нужно было написать в первом кадре не сцены, а мувика, в котором маска и маскируемые мувики. И вообще, примеры кода есть в хелпе.
Надо было написать
Код:

mo.cacheAsBitmap = true;
m.cacheAsBitmap = true;
mo.setMask(m);


Dark Owl 08.12.2006 17:25

Вложений: 1
Всем спасибо, все свободны, вопрос решён.

Ввёл в поиск слово маска. Прокапал кучу тем. Нашёл пример с програмируемой маской, разобрался.
Всё заработало.
Код:

masked.setMask(mask)
masked.cacheAsBitmap = mask.cacheAsBitmap = true;

Если кому-то интересно, то вот этот пример, по которому я разобрался.


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

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