![]() |
|
||||||||||
|
|
|
|||||
|
Хочу сразу извиниться, поскольку тема несколько раз обсуждалась, он никак не могу понять, почему не становиться полупрозрачаной.
Напишу план выполнения, а если неправильно, то подкоректируйте: 1. Создал файл 2. Вешаю что-то что будет под маской. 3. Создаю маску, потом ее заливку делаю через Colors->Radial а потом заливка от центра до краев делаю полупрозрачной. 4. В _root'e пишу myMC.setMask("mMask") Но к сожалению, согласну этому маска не меняет прозрачности. Помогие подправить, пожалуйсто. ![]() |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Основа только первая функция, все остальное написано для примера. После запуска, надо нажать на красный квадрат.
import flash.geom.*;
import flash.display.BitmapData;
//// функция маски
function setNewMaska (mcBox:MovieClip, mcMaska:MovieClip) {
trace (this);
var bmp:BitmapData = new BitmapData (mcBox._width, mcBox._height, true, 0xFF);
var bmpMaska:BitmapData = new BitmapData (mcMaska._width, mcMaska._height, true, 0xFF);
bmp.draw (mcBox);
bmpMaska.draw (mcMaska);
var mc:MovieClip = this.createEmptyMovieClip ("mc", this.getNextHighestDepth ());
bmp.copyChannel (bmpMaska, new Rectangle (0, 0, bmp.width, bmp.height), new Point (0, 0), 1, 8);
mc.attachBitmap (bmp, 0);
mc._x = 200;
mc._y = 200;
}
//// функция рисующая прямоугольник
function drawBox (mc:MovieClip, x:Number, y:Number, w:Number, h:Number) {
mc._x = x;
mc._y = y;
mc.moveTo (0, 0);
mc.lineTo (w, 0);
mc.lineTo (w, h);
mc.lineTo (0, h);
mc.lineTo (0, 0);
}
//// создаем маску или рисуем руками на сцене градиентный клип (полностью непрозрачный)
this.createEmptyMovieClip ("mcMaska", 0);
this.mcMaska.lineStyle (0, 0, 0);
var matrix:Matrix = new Matrix ();
matrix.createGradientBox (100, 100, 0, 0, 0);
this.mcMaska.beginGradientFill ("radial", [0xFFFFFF, 0x000000], [100, 100], [0x00, 0xFF], matrix);
drawBox (this.mcMaska, 100, 100, 100, 100);
this.mcMaska.endFill ();
//// создаем маскируемый клип
this.createEmptyMovieClip ("mcBox", 1);
this.mcBox.lineStyle (0, 0, 0);
this.mcBox.beginFill (0xFF0000);
drawBox (this.mcBox, 300, 100, 100, 100);
this.mcBox.endFill ();
this.mcBox.onRelease = function () {
setNewMaska (this, mcMaska);
};
|
|
|||||
|
Большое спасибо!!!
Я понял основную свою ошибку. По ходу, дело состояло в import flash.geom.*; import flash.display.BitmapData; этом:-) |
|
|||||
|
Banned
Регистрация: Oct 2006
Сообщений: 19
|
А у меня этот код ругается на 7ю строчку =(
Мож потому что у меня Flash MX 7.02? |
|
|||||
|
Цитата:
|
|
|||||
|
Banned
Регистрация: Oct 2006
Сообщений: 19
|
Ок, пошёл ставить 8ой
|
|
|||||
|
Хмммм странно: я-то сообразил с маской, но вот у меня 8-ка но тоже на скриптец ругаеться.
З.Ы. вопрос чуток не в тему: 9 вышел или это тольку слухи? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
ToXICus, альфа версия с AS3 компилятором только.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 06:58. |
|
|
« Предыдущая тема | Следующая тема » |
|
|