Можно ли отключить флэш-элемент? - PullRequest
1 голос
/ 23 октября 2009

Я пытаюсь сделать что-то необычное. Я обещаю, что это имеет цель. Я на 90% уверен, что это невозможно, но хотел перепроверить гениев.

Можно ли иметь на странице объект / внедренный .swf, разрешить его отображение, но не допускать какого-либо взаимодействия с ним. Например, можете ли вы как-то изменить код встраивания YouTube для отображения плеера, но вообще не разрешать какое-либо взаимодействие с ним?

Я искал список переменных flash, но ничего не нашел для этого.

Спасибо

Ответы [ 4 ]

3 голосов
/ 23 октября 2009

Используйте многоуровневый подход: поместите элемент div поверх объекта flash, сделайте его одинаковым по размеру и прозрачным. Это все. JavaScript не требуется. И чтобы сделать IE6 / 7/8 счастливым, это, конечно, не работает, поэтому мы добавили хитрость: фон и непрозрачность. Возможно, вы захотите добавить CSS только для IE в отдельный файл, чтобы предотвратить аннулирование CSS.

Важно: , чтобы это работало, wmode должно быть установлено на opaque (как отмечалось ранее TheBrain), родительский элемент div должен иметь установленную позицию, дочерний элемент div должен иметь position:absolute и width / height флеш-анимации. opacity, filter и background-color предназначены только для совместимости с IE6 / 7/8. Код «как есть» работает в кросс-браузерном режиме (для ясности опущены некоторые детали) и продемонстрирован на этой странице в полном объеме.

** Обновление: ** Ширина и высота родительского элемента div должны быть установлены, чтобы предотвратить появление незакрытых границ. По умолчанию, div равен 100% ширины. IE добавляет левое поле, а FF добавляет нижнее поле для флеш-анимации. Задав размеры явно, это будет работать как ожидалось. Чтобы проверить правильность размещения обложки, измените цвет и непрозрачность обложки. Это изменение также обновляется на демонстрационной странице .

<div style="position:relative;width:728px;height:90px;">
    <div style="position:absolute;
          width:728px;height:90px;
          background-color:white;
          opacity:0;filter: alpha(opacity=0);">
        &nbsp;
    </div>
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
        width="728" height="90">
        <... params etc ...>
        <param name="wmode" value="opaque" />

        <embed width="728" height="90"
            type="application/x-shockwave-flash"
            wmode="opaque"
            etc-params=xyz>
        </embed>
    </object>
</div>
0 голосов
/ 17 ноября 2009

Youtube и Adobe только что выпустили новый API AS3 для встраивания видео на YouTube во флэш.

Вы действительно должны проверить следующие ссылки: Эта инструкция проведет вас по настройке AS3: КОДЫ RIA: API Chromeless Player YouTube AS3

0 голосов
/ 23 октября 2009

Сам Youtube имеет возможность вставлять видео без элементов управления. Посмотрите на Chromeless Player

Iirc, вы должны передать version = 3 в качестве параметра URL-адресу YouTube.

0 голосов
/ 23 октября 2009

да, вы можете. Вы можете встроить свой SWF в div и использовать этот тег div для захвата всех событий нажатия клавиш / клавиатуры и предотвращения их распространения на флэш-память. У меня сейчас нет реального кода, но вы можете взять модель «отключить щелчок правой кнопкой мыши на странице» и внести в нее несколько изменений, чтобы обработать все события + заставить ее работать на вашем div.id, но не на всей странице.

и не забудьте, что для работы этой вспышки нужна вспышка wmode = opaque

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