Как установить динамические переменные во Flash (SWF), которые передаются из JavaScript? - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь изменить 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);

Как мне изменить код во флэш-памяти (swf-файл), чтобы он читал значение I´Вы переходите из javascript?

(ЕСЛИ есть другие лучшие способы включить поток rtmps в прямом эфире на веб-сайт, то также дайте мне знать :) Я пытался использовать flowplayer, но мне удается только игратьrtmp-потоки с ним)

1 Ответ

0 голосов
/ 10 декабря 2018

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);
}
...