2013-08-29 3 views
0

Я новичок в Javascript и Flash, и я разрабатываю браузер Flash-видеомагнитофон.Воспроизведение SWF при нажатии кнопки javascript

Прямо сейчас, когда я направляю свой браузер на определенный URL-адрес, он запрашивает разрешение на доступ к веб-камере и начинает запись - и потоковое воспроизведение на сервере Red5 на Ubuntu.

Теперь мне нужно добавить кнопку javascript, которая при нажатии начнет запись, а при повторном нажатии остановит ее. Может ли кто-нибудь сказать мне, как играть .swf-файл только при нажатии кнопки? И как прекратить играть, когда кнопка снова нажата?

Спасибо.

ответ

0

Вы можете использовать ExternalInterface для связи между JavaScript и AS3. После этого это просто случай, когда кнопка вызывает функции AS3, которые вы хотите выполнить.

+0

Невозможно ли «загрузить» готовый SWF при нажатии кнопки? – wrahool

+0

Является ли SWF уже на сайте на странице загрузки или вы хотите динамически вставлять SWF? Если вы просто хотите встроить SWF, вы можете использовать [SWFObject] (https://code.google.com/p/swfobject/) -библиотеку для работы для вас (см. [Пример] (http: // stackoverflow .com/а/137349/2138943)). В любом случае, если вы хотите иметь кнопку JavaScript, которая что-то делает для SWF, вам нужно использовать ExternalInterface. –

1

Как сказал Пит, ExternalInterface, безусловно, необходимо для вызова функций между SWF и соседней HTML-страницей.

Вы также можете использовать swfobject, чтобы выполнять кросс-браузерное встраивание SWF/загрузку на страницу динамически.

Я сделал небольшой демо из двух функций, которые вы ищете здесь: http://akineticblog.com/fl/ExtIntDemo/index.html

Код AS3 для этого:

import flash.external.ExternalInterface; 

var recording:Boolean = false; 

//These are two TextFields instantiated on the stage as visual indicators 
recordingTF.visible = false; 
notRecordingTF.visible = true; 

function recording_toggle():void { 
    recording = ! recording; 

    //Your actual record start/stop code would go here// 
    recordingTF.visible = recording; 
    notRecordingTF.visible = ! recording; 
} 

if (ExternalInterface.available) { 
    //This registers the AS3-side function to the JS-side reference 
    ExternalInterface.addCallback("recording_toggle", recording_toggle); 
} 

Для/JS стороны HTML, вы можете проверить исходный код страницы в ссылке выше, но основные части:

function swf_load() { 
    swfobject.embedSWF("ExtIntDemo.swf", "flashMovie", "500", "250", "10.1", "swf/expressinstall.swf", flashvars, params, attributes); 
}; 

- будет вызвана, когда вы хотите загрузить в SWF, заменяя div с идентификатором 'FlashMovie.

И:

<button onclick="flashMovie.recording_toggle()">Toggle recording</button> 
  • послать вызов функции 'recording_toggle' в самой SWF.
+0

Это не совсем ответит на вопрос - но это действительно помогло мне. Благодарю. :) – wrahool

Смежные вопросы