Как отправить данные из флеш плеера во внешний исполняемый файл через канал - PullRequest
0 голосов
/ 11 ноября 2011

Я хочу отправить данные, сгенерированные флэш-модулем, во внешний исполняемый файл в Windows.Из того, что я узнал о межпроцессном взаимодействии, я думаю, что в этом случае целесообразно использовать каналы.Я использую Flash professional CS5, и когда в ActionScript используется команда «trace», выходной результат будет отображаться в окне вывода во Flash Professional.Я думаю, что Flash передает данные в окно вывода, и если да, то можно ли получить дескриптор этой трубы.Есть ли способ, с помощью которого я могу записать вывод самого Flash Player, когда выполняются команды трассировки, или данные, сгенерированные по событию, прямо в буфер канала.

Пожалуйста, помогите мне.Заранее спасибо.

1 Ответ

1 голос
/ 11 ноября 2011

Я сделал несколько трюков, используя Flash Badge, приложение AIR.и консольное приложение C #. Мы можем отправлять параметры в приложение AIR.от BADGE и получите его, используя:

protected function onInit(event:FlexEvent):void{
    NativeApplication.nativeApplication.addEventListener(BrowserInvokeEvent.BROWSER_INVOKE, onBrowserInvoke);}
protected function onBrowserInvoke(e:BrowserInvokeEvent):void{
    //reading args
    var a:String = e.arguments[0];
    //Now we can run *.exe from windows using:
    if(NativeProcess.isSupported)
    {
        var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
        nativeProcessStartupInfo.executable = File.applicationDirectory.resolvePath("ExecutableApp.exe");
        nativeProcessStartupInfo.arguments.push(a);
        var process:NativeProcess = new NativeProcess();
        //dispatched when the process will be finished
        process.addEventListener(NativeProcessExitEvent.EXIT,onProcessDone);
        //run
        process.start(nativeProcessStartupInfo);
    }
    else Alert.show("Native process are not supported\nPrinter settings may be wrong!");
}

Это долгий путь, но, безусловно, работает!По крайней мере, для меня это сработало.

...