为 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 时。所以我想知道 Adobe Animate 是否有能力收听文档的关闭和更改? 感谢您提前提供任何提示
【问题讨论】:
【参考方案1】:来自 adobe 社区支持的回答:
是的,有这种可能。您可以注册一个 javascript 函数以在某些系统事件发生时执行:
enter code here
fl.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" );
【讨论】:
以上是关于为 SWF 扩展面板添加关闭和更改 FLA 文档的事件侦听器。使用 ActionScript、JSFL的主要内容,如果未能解决你的问题,请参考以下文章
我可以在没有源 FLA 文件的情况下更改 SWF 中的 ActionScript 字符串文字吗?