Я пытаюсь замаскировать FLV альфа-каналом PNG. Я использую BitmapData (из PNG), но он не работает. Я что-то пропустил? Сократите код ниже:
var musclesLoader:Loader = new Loader();
var musclesContainer:Sprite = new Sprite();
var musclesImage:Bitmap = new Bitmap();
var musclesBitmapData:BitmapData;
var musclesVideo:Video = new Video(752, 451.2);
var connection:NetConnection = new NetConnection();
var stream:NetStream;
function loadMuscles():void {
musclesLoader.load(new URLRequest('img/muscles.png'));
musclesLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, musclesComplete);
}
function musclesComplete():void {
musclesBitmapData = new BitmapData(musclesLoader.content.width, musclesLoader.content.height, true, 0x000000);
musclesImage.bitmapData = musclesBitmapData;
musclesImage.smoothing = true;
musclesContainer.addChild(musclesImage);
contentContainer.addChild(musclesContainer);
}
function loadMusclesVideo():void {
connection.connect(null);
stream = new NetStream(connection);
stream.client = this;
musclesVideo.mask = musclesImage;
stage.addChild(musclesVideo);
musclesVideo.attachNetStream(stream);
stream.bufferTime = 1;
stream.receiveAudio(true);
stream.receiveVideo(true);
stream.play("vid/muscles.flv");
}
За пределами этого кода у меня есть функция, которая добавляет контейнеры на сцену и т. Д. И размещает объекты в соответствующих местах. Это вроде работает - маска применяется, но в квадрате (размер границ мышц BitmapData), а не с формой альфа-канала.
Это правильный путь?