Flash - область прокрутки с динамически загруженными видеоклипами - PullRequest
1 голос
/ 13 апреля 2009

Я создаю проект Flash, который создает систему меню с динамически загружаемыми видеоклипами для самих пунктов меню.

Я хочу, чтобы полоса прокрутки появлялась, когда в меню достаточно элементов, которые больше области меню.

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

Я искал в интернете это, но все учебники по полосе прокрутки, которые я могу найти, имеют дело с текстовыми областями, а не с динамически загружаемыми видеоклипами.

Кто-нибудь знает хороший учебник для этого или есть предложение относительно элегантного способа сделать это, чтобы мне не пришлось делать кучу математических хаков, чтобы он работал?

Спасибо

1 Ответ

1 голос
/ 14 апреля 2009

Не уверен, что именно вы ищете.

Я только что провел быстрое тестирование с Flash CS3 / AS3 и получил загруженные элементы, чтобы перемещаться внутри маски (основы поля прокрутки).

Сначала я создал слой Mask, а затем новый слой как дочерний элемент маски. Я добавил новый пустой MovieClip в дочерний слой Mask. Я назвал этот мувиклип mcItems.

Затем я прикрепил следующий рамочный скрипт (конечно, было бы предпочтительнее использовать класс).

    for (var i:Number=0; i < 3; ++i)
    {
        var loader:Loader = new Loader();
        loader.load(new URLRequest('Content.swf'));
        mcItems.addChild(loader);
        loader.x = i * 120;
    };
    function update (event:Event)
    {
        mcItems.x = 120*Math.sin(getTimer()/500) - 60;
    };
    addEventListener(Event.ENTER_FRAME, update);

Теперь Content.swf - это просто серая рамка размером 120x120 пикселей. Моя маска 240х120. После выполнения 3 поля Content.swf загружаются и перемещаются внутри маскированной области, как и ожидалось.

Что касается кода полосы прокрутки, я не уверен, что вы подразумеваете под «математическими взломами», но основной принцип - вы конвертируете из одного набора единиц в другой. Вы конвертируете ваши «ширина маски / общее количество загруженных элементов» в ваши «единицы ширины ручки прокрутки / ширины полосы прокрутки».

Я рекомендую просмотреть соответствующие страницы руководства для уточнения кода, использованного выше.

С уважением, Jotham.

...