【问题标题】:How to determine whether the content in text frame of in design document changed through java script or action script?如何判断设计文档中文本框中的内容是通过java脚本还是action脚本改变的?
【发布时间】:2017-01-05 02:17:49
【问题描述】:

我需要通过动作脚本找出文本框架中的内容是否已更改。 到目前为止,我正在与我的服务器端数据进行比较以检查 indesign 文档文本框架中的内容,但现在我想检查那里是否有任何默认标志以避免服务器端调用。

【问题讨论】:

  • 您可以使用 InDesign 的跟踪更改功能,也可以保存文本框架客户端内容的校验和,并每次比较校验和以查看它是否已更改。
  • 感谢您的评论@JoshVoigts。它对我有用,我发现如何清除所有更改 com.adobe.indesign.Changes 点击按钮...

标签: javascript apache-flex actionscript adobe-indesign


【解决方案1】:

跟踪更改似乎确实是要走的路。另一种方法可能是使用空闲事件来监控故事的变化。基本上就是 Josh 刚才的建议。

#targetengine "storiesChanges"
main();
function main()
{
	var db = {};
	
	var myIdleTask = app.idleTasks.item("checkStories");
	if ( !myIdleTask.isValid ) {
		myIdleTask = app.idleTasks.add({name:"checkStories", sleep:100});
		myIdleTask.addEventListener(IdleEvent.ON_IDLE,onIdleEventHandler, false);
	}

	function onIdleEventHandler(myIdleEvent)
	{
		var doc = app.properties.activeDocument;
		if ( !doc ) {
			db = {}
			return;
		}
		
		var sts = doc.stories, st, id;
		var n = sts.length;
		
		while ( n-- ) {
			st = sts[n];
			id = st.id;
			
			if ( !db[id] ) {
				$.writeln ("Storing "+id );
				db[id] = st.contents;
			}
			else if ( db[id]!=st.contents ) {
				$.writeln ( "Some changes were made on story "+id+" at "+(new Date()) );
				db[id] = st.contents;
			}
			else {
				$.writeln ( "No changes were made for story "+id );
			}
		}
	}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多