为 SWF 扩展面板添加关闭和更改 FLA 文档的事件侦听器。使用 ActionScript、JSFL

Posted

技术标签:

【中文标题】为 SWF 扩展面板添加关闭和更改 FLA 文档的事件侦听器。使用 ActionScript、JSFL【英文标题】:adding event listener of the closing and changing the FLA document for the SWF extension panel. using ActionScript, JSFL 【发布时间】:2020-08-07 07:32:48 【问题描述】:

我有一个扩展 SWF 面板和一个当前打开文档的影片剪辑列表。当用户关闭当前文档时,我想清除我的列表。另外,我想添加一些警告“您必须选择您正在处理的上一个文档” - 当用户选择其他打开的 .fla 文档并尝试按下 SWF 面板上的某个按钮以从列表中编辑某些 MC 时。所以我想知道 Adob​​e 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 hereMMExecute( "some jsfl code or path to a jsfl script" );

【讨论】:

以上是关于为 SWF 扩展面板添加关闭和更改 FLA 文档的事件侦听器。使用 ActionScript、JSFL的主要内容,如果未能解决你的问题,请参考以下文章

编辑 SWF 或 FLA 文件

我可以在没有源 FLA 文件的情况下更改 SWF 中的 ActionScript 字符串文字吗?

在没有 Flash 的情况下更改 SWF 文本的方法?

将带有 AS2 动作和 ActionScript 的 FLA 资源编译为 SWF

收听 Swf 面板关闭

在网页中怎么插入Flash中的.swf格式的影片?