StageVideo отображает вышеуказанный контент? - PullRequest
1 голос
/ 05 октября 2011

Итак, я создаю видеопроигрыватель, который появляется во вложенной (отображаемой) иерархии, и я бы действительно выглядел как простой способ сохранить фон.У меня есть загрузчик SWF, который содержит bg, и другой SWF (который содержит видеоплеер), который переключается между StageVideo и Video для среды конечного пользователя.У меня работает StageVideo, но он всегда показывает ниже другого контента.

Теперь я знаю, что это желаемое поведение для StageVideo, поскольку оно позволяет графическому процессору отображать контент непосредственно на экране безнеобходимость компоновки видеопотока с содержимым списка отображения (http://help.adobe.com/en_US/as3/dev/WSe9ecd9e6b89aefd2-68d5ef8f12cc8511f6c-7fff.html),, но я действительно хочу иметь возможность отображать свой фон (хотя бы как «рамку рисунка») за видеоплеером. Рисование простой прямоугольной рамки вокруг проигрывателя так, чтобыкажется, что bg не будет работать, мне нужно иметь возможность отображать изображения и другие объекты DisplayObject за самим видеоплеером.

Существуют ли сценарии, в которых это может быть возможно? Любые возможные обходные пути (дажебез документов) что кто-то обнаружил, чтобы решить эту проблему?

Ответы [ 2 ]

1 голос
/ 06 октября 2011

Хорошо - понял.Оказывается, что помещение всего фонового содержимого в контейнер и маскирование контейнера рамочной маской фактически позволит StageVideo эффективно визуализировать поверх.

Например:

    bg_container.x = video_container.x;
    bg_container.y = video_container.y;
    set_frame_mask(video_width, video_height, frame_width, bg_container);

    // Helper function.
    protected function setFrameMask(width:Number, height:Number, frame_width:Number, container:Sprite):void
    {
        var frame:Sprite = new Sprite();
        frame.graphics.beginFill(0xFF0000);
        frame.graphics.drawRect(0, 0, width, frame_width);
        frame.graphics.drawRect(0, frame_width, frame_width, width - frame_width);
        frame.graphics.drawRect(width - frame_width, frame_width, frame_width, height - frame_width);
        frame.graphics.drawRect(frame_width, height - frame_width, width - 2 * frame_width, frame_width);
        frame.graphics.endFill();
        frame.x = container.x; 
        frame.y = container.y;
        container.mask = frame;
    }
1 голос
/ 05 октября 2011

Если все, что вам нужно, это рамка вокруг видеоплеера, попробуйте замаскировать фон прямоугольником размером с видеоэкран и поместить его поверх него.

В противном случае вам, возможно, придется использовать обычный видеопроигрыватель вместо StageVideo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...