Как сделать, чтобы Flash менялся на картинку после окончания проиргывания?

[Удален]
968

Собственно вопрос уже озвучен в названии топика.

Суть такая.

Есть код, выводящий swf на сайте. Дело в чём - это видео и оно идёт ~ 10 секунд, а потом останавливается и на сайте остаётся чёрная дыра.

<object id="blablabla" style="float:left" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="430px" height="239px" codebase="blablabla" align="left">

<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="blablabla" />
<param name="quality" value="high" />
<param name="loop" value="false" />
<param name="bgcolor" value="transparent" /> <embed type="application/x-shockwave-flash" width="430px" height="239px" src="blablabla" align="middle" pluginspage="http://www.macromedia.com/go/getflashplayer" allowscriptaccess="sameDomain" loop="false" name="blablabla" bgcolor="#000000" quality="high"></embed>
</object>

Суть вопроса - как по окончании воспроизведения swf вывести на место, где он был, нужную, допустим, картинку?

Заранее спасибо всем откликнувшимся!

anton831
На сайте с 25.05.2011
Offline
71
#1

Можно попробовать с помощью JS, вы ведь знаете продолжительность анимации.

Просто задайте чтоб через это время, меняло свойство object на display:none,

Я бы так сделал по крайней мере.

ДП
На сайте с 23.11.2009
Offline
203
#2

Через JS, но я бы дергал из флешки функцию, которая заменияла бы ее на картинку, так по-моему надежнее, чем пытаться по времени угадать

[Удален]
#3
anton831:
Можно попробовать с помощью JS, вы ведь знаете продолжительность анимации.
Просто задайте чтоб через это время, меняло свойство object на display:none,

Я бы так сделал по крайней мере.

Интересный вариант. Т.е. сделать расположение object с swf поверх картинки, а после его остановки - display:none сделает так, чтобы картинка стала поверх object-а?

happyserge добавил 14.10.2011 в 12:33

Дикий пионер:
Через JS, но я бы дергал из флешки функцию, которая заменияла бы ее на картинку, так по-моему надежнее, чем пытаться по времени угадать

Это интереснее, как по мне, спасибо! Но у меня вопрос - где бы почитать о сих функциях, а в частности (если можно) конкретно с той, что нужна в данном случае?

anton831
На сайте с 25.05.2011
Offline
71
#4
happyserge:
Интересный вариант. Т.е. сделать расположение object с swf поверх картинки, а после его остановки - display:none сделает так, чтобы картинка стала поверх object-а?

Ну типо того, просто меняйте видимость блоков, после остановки флэшки.

А вообще, у вас исходники флэшки есть?

Просто странно, когда флэшка завершается, она обычно никуда не исчезает. Т.Е либо делает следующий цикл, либо просто останавливается, если конечно иного не сделанно специально!

Так что если есть исходники флэшки, просто удалите лишние кадры, последним кадром сделайте нужную вами картинку и привяжите к этому кадру событие stop();.

anton831 добавил 14.10.2011 в 13:10

Дикий пионер:
Через JS, но я бы дергал из флешки функцию, которая заменияла бы ее на картинку, так по-моему надежнее, чем пытаться по времени угадать

В каком смысле "дергали бы из флэшки функцию"???

Во флэшке используется Actions Script, каким образом вы можете что либо из него, как вы выразились "дернуть" средствами JS??

Обясните пожалуйста суть вашего высказывания, так как может я просто не совсем правильно вас понял.

ДП
На сайте с 23.11.2009
Offline
203
#5

anton831 - все верно поняли, из флеша можно вызвать js-функции, определнные на странице, куда встроена флешка (и в обратную сторону, кстати, тоже можно).

/ru/forum/comment/9496697 - вот тут пример как из флешки вызвать функцию alert javascript'овую.

Дальше гуглите flash.external.ExternalInterface, если во флеше понимаете - там несложно.

anton831
На сайте с 25.05.2011
Offline
71
#6
Дикий пионер:
anton831 - все верно поняли, из флеша можно вызвать js-функции, определнные на странице, куда встроена флешка (и в обратную сторону, кстати, тоже можно).
/ru/forum/comment/9496697 - вот тут пример как из флешки вызвать функцию alert javascript'овую.
Дальше гуглите flash.external.ExternalInterface, если во флеше понимаете - там несложно.

Ну я согласен, из флэша можно функцию js вызвать, хотя я раньше о такой возможности не знал.

Хотя вообще я так понял нужно API подключать, во первых.

Ну и во вторых, не имея исходников FLA, что именно он там будет вызывать, как он создаст слой с картинкой, добавит кадр, привяжет stop (), к кадру с картинкой.

Или вы хотите сказать, что этот класс такие возможности дает.

Не знаю, просто хотелось бы увидеть пример реализации имеено в описанном случае.

ЗЫ: А если он эти исходники имеет, то в таких извращениях просто пропадает необходимость.

ДП
На сайте с 23.11.2009
Offline
203
#7

Я не сильно разбираюсь во флеше, знаю, что можно загружать чужие ролики в свой, может там же и можно отследить окончание загруженного ролика.

Мой способ, конечно предполагает наличие исходников. Так что если чужая флешка, то ситуация усложняется.

anton831
На сайте с 25.05.2011
Offline
71
#8
Дикий пионер:
Я не сильно разбираюсь во флеше, знаю, что можно загружать чужие ролики в свой, может там же и можно отследить окончание загруженного ролика.
Мой способ, конечно предполагает наличие исходников. Так что если чужая флешка, то ситуация усложняется.

Ну на самом деле при наличие исходников, описанная проблема решается загрузкой нужной картинки в библиотеку, созданием нового слоя, сделав его на 1 кадр "длиннее", чем остальные слои, этот самый кадр делаем ключевым на этои слое, вставляем туда нашу картинку из библиотеки, далее кликаем по кадру правой кнопкой мыши, выбираем действие, пишем stop ();, все.

Далее просто публикуем в swf и заменяем флэшку на сайте.

Если исходников нет, то таймаут по времени и замена видимости блоков с помощью JS, мне кажется самый доступный и простейший вариант, который может реализовать человек даже с весьма скромными знаниями в js (как я например:)).

А все остальное от лукавого, так как очень сложно, гемморно в реализации и требует нетривиальных знаний, применения классов, поиска документации к ним и т.д.:)

Вообще за класс спасибо! При определенных обстаятельствах и навыках работы, определенно может быть очень полезен!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий