我有一个扩展 SWF 面板和一个当前打开文档的影片剪辑列表。当用户关闭当前文档时,我想清除我的列表。另外,我想添加一些警告“您必须选择您正在处理的上一个文档” - 当用户选择其他打开的 .fla 文档并尝试按下 SWF 面板上的某个按钮以从列表中编辑某些 MC 时。所以我想知道 Adobe Animate 是否有能力收听文档的关闭和更改?感谢您提前提供任何提示
1 回答
来自 adobe 社区支持的回答:
是的,有这种可能。您可以注册一个 javascript 函数以在某些系统事件发生时执行:
enter code herefl.addEventListener(eventType, callbackFunction);
可能的系统事件有:“documentNew”、“documentOpened”、“documentClosed”、“mouseMove”、“documentChanged”、“layerChanged”、“timelineChanged”、“frameChanged”、“”、“prePublish”、“postPublish”、“ selectionChanged”和“dpiChanged”。
此外,在 Flash CS4 及更高版本中,您可以引用特定的 swf 面板。结合 AS 中的 ExternalInterface 类和 MMExecute 方法,可以构建两个环境之间的双向通信。
例子:
// JSFL
var docChangedID = fl.addEventListener( "documentChanged",onDocumentChangedHandler );
function onDocumentChangedHandler(){
var panel = fl.getSwfPanel( "<my panel swf file name >", false );
panel.call( "AScustomEventName" );
}
// 作为
import adobe.utils.MMExecute;
import flash.external.ExternalInterface;
ExternalInterface.addCallback( "AScustomEventName", this.myASMethod );
function myASMethod() : void {
// your stuff here
MMExecute( "some jsfl code or path to a jsfl script" );
}