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 を使用できません。誰でもこれについて私を助けてもらえますか?