Angular2和Flex之间的通信

时间:2016-05-11 10:16:30

标签: flex angular

如何在flex(swf)应用程序和angular2应用程序之间进行通信?

我知道如何处理js和flex但是我没有看到flex如何找到angular2方法。

使用JS:只需要像:

这样的方法
function flexUp() {
    console.log('Flex Up');
}

并在flex中调用JS方法:

ExternalInterface.call("flexUp");

我是JS / Angular2世界的新手。

2 个答案:

答案 0 :(得分:2)

您可以在flex中触发事件并在Angular Angular 2 - communication of typescript functions with external js libraries

中收听它们

或使用全球已知的Angular组件,指令或服务制作方法,如Angular2 - how to call component function from outside the app中所述

答案 1 :(得分:0)

好的代码:

在flex中:

ExternalInterface.call("window.angularFlexComponent.initFlex");

在Angular2中:

  • 在flex.d.ts中:
interface Window {
    angularFlexComponent: any;
}
  • 在flex.components.ts中:
import {Component, NgZone, OnDestroy} from '@angular/core';
@Component({
    selector: 'flex',
    templateUrl: 'app/components/flex/flex.html'
})
export class FlexComponent implements OnDestroy {
    constructor(private _ngZone: NgZone) {
        window.angularFlexComponent = { initFlex: this.initFlex.bind(this), zone: _ngZone };
    }
    initFlex(): void {
        console.log('Artemis Flex Up');
    }
    ngOnDestroy() {
        window.angularFlexComponent = null;
    }
}