PDA

Просмотр полной версии : Проигрывание клипа с любого кадра при открытии через getURL


Gonz4000
07.02.2013, 10:08
Привет, форумчане!
Работаю в CS5 и недавно столкнулся с такой незадачей;
суть:

есть 2 swf-ки: a1 и a2.
a2 открывается кнопкой через a1 таким образом:

Код в a1:
Код AS3:

кнопка.onPress = function() {
getURL("a2.swf", "_self");};



Клип a2, разумеется, начинает проигрываться с 1 кадра.
Можно ли сделать так, чтобы клип а2 начинался с любого кадра, и номер этого кадра можно было бы выбирать?

wvxvw
07.02.2013, 10:55
getURL - это ж AS2? Да и остальной код похож. Переезжаем.

Hauts
07.02.2013, 11:04
Открывайте не напрямую флэшку в браузере, а страницу с этой флэшкой. И на странице используйте SWFObject для "встраивания" флэшки.

кнопка.onPress = function() {
getURL("viewflash.html#5", "_self");};

"#5" — это номер кадра, который вам нужно показать. Этот номер в javascript`е легко выдернуть (document.location.hash) и поставить в flashvars встраиваемой флэшке.

Грубо говоря:
1. Открываем страницу с якорем "5"
2. Страница берет якорь и ставит во флэшвары флэшке
3. Флэшка получает флэшвары и, соответственно, перескакивает на нужный кадр.

Возможно, кстати, и напрямую ( getURL("a2.swf?frame=5", "_self") ), но тут уж тестировать нужно.

Добавлено через 2 минуты
А, еще есть вариант. Можно такое организовать с помощью SharedObject`ов, если не хотите с яваскриптом заморачиваться.

Gonz4000
07.02.2013, 20:09
Покажите, пожалуйста, на примере.
Впервые сталкиваюсь с такой задачей и даже не знаю, с чего начать:confused:

Hauts
08.02.2013, 10:56
Gonz4000, возможно попозже пример выложу. А вот "с чего начать" вам уже посоветовали, начинайте :)

Gonz4000
11.02.2013, 01:04
по 2 и 3 пунктам можно поподробнее?
2. Страница берет якорь и ставит во флэшвары флэшке
3. Флэшка получает флэшвары и, соответственно, перескакивает на нужный кадр.

Вот составил код странички, в которую открывается swf-ка.


<script type="text/javascript" src="swfobject.js">
</script>

<div id="flashcontent">
</div>

<script type="text/javascript">
var so = new SWFObject("001.swf","mymovie","1000","500","7","#ffffff");
so.write("flashcontent");
</script>


Всю голову сломал, как из html передать во флешку 001.swf номер якоря в качестве переменной.
Подскажите, плиз, что где добавить. А то прям караул :wacko:

Hauts
11.02.2013, 10:33
Вы какой-то старый SWFObject используете.

Попробуйте так:

<script type="text/javascript" src="swfobject.js">
</script>

<div id="flashcontent">
</div>

<script type="text/javascript">
var so = new SWFObject("001.swf","mymovie","1000","500","7","#ffffff");
so.addVariable("frameNumber", document.location.hash);
so.write("flashcontent");
</script>


А во встраиваемой флэшке куда-нибудь в текстовое поле вывести _root.frameNumber чтобы посмотреть, что приходит.