Angular2 和 Flex 之间的通信

Communication between Angular2 and Flex

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

我知道如何使用 js 和 flex,但我不知道 flex 如何找到 angular2 方法。

使用 JS:只需要像这样的方法:

function flexUp() {
    console.log('Flex Up');
}

在 flex 中,调用 JS 方法:

ExternalInterface.call("flexUp");

我是 JS/Angular2 世界的新手。

您可以在 flex 中触发事件并在 Angular

中收听它们

或从 Angular 组件、指令或服务创建方法,如

中所述

好的代码:

灵活:

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