Поскольку недавно пришлось столкнуться с этой не очень новой проблемой, ниже предлагается перепост статьи Зелёный экран при просмотре flash-видео, которая очень помогла.
С данной проблемой (ярко-зелёное, иногда «тормозящее» видео или просто зелёный экран при просмотре роликов на Youtube или Вконтакте) могут столкнуться пользователи видеокарт AMD, установившие для своей видеокарты драйвер Catalyst. В ряде случаев проблема появляется только при переходе в полноэкранный режим. Выглядит это примерно так:
Впервые проблема появилась в начале 2010 года и до сих пор не решена. Причина кроется, скорее всего, в несовместимости драйвера ATI Catalyst и Flash-плеера Adobe. Пока ни одна из сторон не взялась за решение проблемы, попробуем справиться с ней своими силами.
Задача: надо из флешки вызвать урл с параметрами (и обработать результат).
Делать это будем при помощи LoadVars. В нужном месте пишем следующий actionscript:
sender = new LoadVars(); // этим будем открывать урл
loader = new LoadVars(); // а этим обрабатывать результат
// функция-обработчик когда урл открылся
loader.onLoad = function(success) { // параметр success (bool) - признак успешности
if(success) {
// тело обработчика
}
else {
// обработать ошибку
}
}
// функция обработчик полученных от скрипта данных
loader.onData = function(data) {
// здесь получаем все что нужно из data
}
sender.myParam1 = "my_value1"; // параметр myParam1 передается в $_POST
sender.myParam2 = "my_value2"; // названия параметров могут быть, в принципе любыми, они все будут переданы
sender.sendAndLoad("my_flash_script.php", loader, "post"); // собственно обращение к урл: адрес, приемник результата, тип запроса (get или post) Если не требуется обработка результата, то можно обойтись одним только sender и использовать метод send().
Вот так
Происходит это все от задач: надо сделать рекламный банер на флеше с кнопкой закрыть.
Реализация: Делаем флеш-ролик, помещаем в DIV, при нажатии на закрыть прячем DIV (если существует более простой или правильный способ рад буду узнать). Прятать DIV будем естественно жаваскриптом, для этого нужно чтоб наш ролик вызывал javascript-овую функцию в документе.
Для этого во флеше создаем кнопку закрыть, идем в ActionScript и там пишем:
on(release)
{
import flash.external.ExternalInterface;
ExternalInterface.call("myFunction");
}
Благодаря этому при нажатии кнопки будет вызываться функция myFunction из документа :)