執行事件偵聽時,我有下面的代碼使用ActionScript和InDesign的SDK:的ActionScript錯誤在JavaScript
在我的課
[ 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。任何人都可以幫我解決這個問題嗎?
inside afterImport()你有訪問test()函數嗎?意思是你可以調用函數afterImport(document){asInterface.test();}? –
是的,測試函數得到正確執行,當測試函數完成後,它會跳回到jsxInterface.afterImport(document); 功能,那就是我得到的錯誤 – vincent