我使用 actionscript 和 indesign sdk 有以下代码:
在我的课开始时
[ Embed (source= "resources/js/eventHandlers.jsx" , mimeType= "application/octet-stream" )]
private static var jsHandler:Class;
var jsxInterface:HostObject = HostObject.getRoot(HostObject.extensions[0]);
在我的功能中:
jsxInterface.eval( new jsHandler().toString());
jsxInterface.init( this );
document.xmlElements.item(0).xmlElements.item("docpreset").importXML(File.applicationStorageDirectory.resolvePath("temp/cstyles.xml"));
jsxInterface.afterImport(document);
这是 eventHandlers.jsx 中的代码:
var asInterface = {};
function init(wrapper) {
asInterface = wrapper;
}
function afterImport(document) {
document.addEventListener (Document.AFTER_IMPORT, asInterface.test());
}
从javascript我称之为:
public function test():void {
trace("ole");
}
现在,测试函数被正确执行,但之后被调用的下一件事又是:
jsxInterface.afterImport(document);
然后抛出错误:
Error: ActionScript error: Error: Missing required parameter 'handler' for method 'addEventListener'.
我不知道我需要做什么了。我想要的只是导入 xml 并在导入完成时调度一个事件。
我不知道为什么我什至必须调用一个javascript函数,并且不能在一个普通的eventListener中使用document.AFTER_IMPORT。有人可以帮我解决这个问题吗?