Как установить динамические переменные во Flash (SWF), которые передаются из JavaScript?
Я пытаюсь изменить SWF с помощью флэш-декомпилятора. Я нашел SWF, который воспроизводит живые зашифрованные потоки rtmps, и я хочу использовать его для встраивания на мой сайт. Я хочу, чтобы иметь возможность изменить URL для потока с помощью JavaScript:
//FUNCTION IN FLASH
public var serverName:String;
function frame1() : *
{
this.nc = null;
this.serverName = "rtmps://and_the_stream_url";
this.streamName = "A name";
this.stageListener = new Object();
this.videoSizeTimer = Number(0);
this.videoLastW = Number(0);
this.videoLastH = Number(0);
this.fullscreenCapable = false;
this.hardwareScaleCapable = false;
this.debugInterval = Number(0);
this.bufferTime = Number(3);
this.mainInit();
}
Поэтому я в основном хочу иметь возможность установить переменную serverName с чем-то, что я передаю с помощью javascript при встраивании ее на мой сайт.
JavaScript, на который я смотрю, это SWFObject.. например:
var flashvars={};
flashvars.serverName = "my url..";
swfobject.embedSWF("myContent.swf", "my-target-element", "300", "120", "10.0.0", flashvars);
Как мне изменить код во flash (файл swf), чтобы он считывал значение, которое я передаю из javascript?
(Если есть другие лучшие способы включить поток rtmps в прямом эфире на веб-сайт, то также дайте мне знать:) Я пробовал использовать flowplayer, но мне удается воспроизводить только rtmp-потоки с ним)
0 ответов
Flashvars хранятся в stage.loaderInfo.parameters. Так что если вы хотите перебрать все flashvars, это будет примерно так:
var flashVars:Object = stage.loaderInfo.parameters;
for (var key:String in flashVars)
{
var value:String = flashVars[key] as String;
trace(key + ' = ' + value);
}