如何在flex(swf)应用程序和angular2应用程序之间进行通信?
我知道如何处理js和flex但是我没有看到flex如何找到angular2方法。
使用JS:只需要像:
这样的方法function flexUp() {
console.log('Flex Up');
}
并在flex中调用JS方法:
ExternalInterface.call("flexUp");
我是JS / Angular2世界的新手。
答案 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中:
interface Window {
angularFlexComponent: any;
}
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;
}
}