ok, ähm, also ich weiß mir nicht anderst zu helfen als diesen Code in die docOpen-Funktion reinzulegen:
Variante A:
Code: Alles auswählen
//<Document-Level>
//<ACRO_source>docOpened</ACRO_source>
//<ACRO_script>
/*********** gehört zu: Document-Level:docOpened ***********/
var myMouseHandler = new MouseEventHandler();
myMouseHandler.onEvent = function(event) {
console.println("test");
}
runtime.addEventHandler(myMouseHandler);
//</ACRO_script>
//</Document-Level>
hier bekomm ich dann den Fehler
MouseEventHandler is not defined
Wenn ich dagegen allerdings das hier habe:
Variante B:
Code: Alles auswählen
//<Document-Level>
//<ACRO_source>docOpened</ACRO_source>
//<ACRO_script>
/*********** gehört zu: Document-Level:docOpened ***********/
var context3D = getAnnots3D(0)[0].context3D;
myMouseHandler = new context3D.MouseEventHandler();
myMouseHandler.onEvent = function(event) {
console.println("test");
}
context3D.runtime.addEventHandler(myMouseHandler);
//</ACRO_script>
//</Document-Level>
Funktioniert das Ganze bedingt, also das Problem hierbei ist anscheinend, dass wenn das PDF geöffnet wird und der Code ausgeführt wird dieses getAnnots3D(0)[0] noch nicht aktiviert ist und es deshalb einen Fehler bekomme. (Wenn ich das PDF offen habe und das 3D aktiviert und dann den Javascript Code hinzufügen, dann funktionierts, also auch mehrmals, jedesmal wenn ich Klicke bekomme ich die Konsolenausgabe (dachte eigentlich diese Funktion wird nur beim Öffnen von dem PDF einmal ausgeführt?), aber wenn ich das PDF zu und wieder aufmachen gehts nicht mehr, dann kommt der Fehler:
context3D is undefined
)
Warum bekomme ich ohne dieses context3D (VarianteA) vor dem MouseEventHandler einen Fehler? Kann ich das nicht ohne context3D lösen, wenn das beim Öffnen noch nicht geladen ist?
Ich könnte ja auch ein
Code: Alles auswählen
var a3d = getAnnots3D(0)[0];
if ( a3d.activated )
{...
}
drum machen, aber dadurch dass das in der docOpen-Funktion dirn steht, wird der Code dann auch gar nicht mehr ausgeführt?
Muss ich das denn in so eine Funktion reinmachen? Kann ich das nicht irgendwo 'dazwischen' ablegen, dass das quasi immer aufgerufen wird wenn jeamnd klickt?