Показать сообщение отдельно
Старый 18.01.2011, 18:08
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 5  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код AS3:
//черная полоска будет под битмапом для теста прозрачности.
var testShape:Shape = new Shape();
testShape.graphics.beginFill(0x000000);
testShape.graphics.drawRect(30, 0, 20, 250)
addChild(testShape);
//рабочая битмапдата
var bmd:BitmapData = new BitmapData(80, 80, true, 0xFFCCCCCC);
var bm:Bitmap = new Bitmap(bmd);
addChild(bm);
//будущая карта прозрачности
var alphaMap:BitmapData = bmd.clone();
//матрица для управления градиентом
var matrix:Matrix = new Matrix();
matrix.createGradientBox(bmd.width, bmd.height, Math.PI / 2);
//векторный градиент для отрисовки в карту прозрачности
var gradient:Shape = new Shape();
gradient.graphics.beginGradientFill("linear", [0xFFFFFF, 0x000000], [1, 1], [0, 255], matrix);
gradient.graphics.drawRect(0, 0, bmd.width, bmd.height);
gradient.graphics.endFill();
// отрисовываем в карту
alphaMap.draw(gradient);
//копируем любой канал (т.к. все изменяются одинаково от 0 до 255) в альфаканал рабочей битмап
bmd.copyChannel(alphaMap, new Rectangle(0, 0, bmd.width, bmd.height), new Point(), 2, 8);
__________________
Reality.getBounds(this);