[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt DPS / Schaltflächen-Einstellungen per JS ändern

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

DPS / Schaltflächen-Einstellungen per JS ändern

peterhenrich
Beiträge gesamt: 138

27. Mär 2014, 11:54
Beitrag # 1 von 17
Bewertung:
(3971 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich baue gerade an einem Skript, mit dem automatisch die selektierten Bilder zu einer Diaschau zusammengebaut werden sollen. Das klappt soweit recht gut und die Werte in dem Einstellungsfenster kann ich mit z. B.
Code
for (var j = app.selection.length - 1; j > -1; j--) { 
myMSO.addItemsAsState(app.selection[j]);
}
app.selection[0].insertLabel("kAdobeDPSInteractivity_Type","Slideshow");
myMSO.insertLabel("kAdobeDPSInteractivity_AutoStart" ,"true");
myMSO.insertLabel("kAdobeDPSInteractivity_AutoStartDelay" ,"0.5");
myMSO.insertLabel("kAdobeDPSInteractivity_TapEnabled" ,"true");

verändern.

Feature des Skripts soll sein, dass bei Vorhandensein eines Elements, das irgendwo im Namen "btnPrev" enthält, dieses als Schaltelement für "Gehe zum vorherigen Status" ausgewählt wird. Ich finde aber keine Möglichkeit, per Skript zu steuern, auf welches MSO sich die Aktion beziehen soll.
Wo finde ich denn hierzu die entsprechende Einstellung?

Gruß
Peter
X

DPS / Schaltflächen-Einstellungen per JS ändern

WernerPerplies
Beiträge gesamt: 2554

27. Mär 2014, 17:31
Beitrag # 2 von 17
Beitrag ID: #525563
Bewertung:
(3928 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Peter,

ich verstehe Deine Frage nicht.

Willst Du die name properties von Objekten durchsuchen, ob Sie einen Name haben, der "btnPrev" enhält? - Das sollte einfach sein.

Oder willst Du in Labels nach Schlüsseln suchen, die "btnPrev" enthalten?

Oder willst Du die Werte, die hinter den Schlüsseln stecken, durchsuchen, ob Sie "btnPrev" enthalten?

Und welche Einstellung meinst Du konkret?

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#525526]

DPS / Schaltflächen-Einstellungen per JS ändern

peterhenrich
Beiträge gesamt: 138

27. Mär 2014, 18:08
Beitrag # 3 von 17
Beitrag ID: #525565
Bewertung:
(3912 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

da habe ich wohl nicht alles genau beschrieben:

- Den Button finde ich.

- Auch das MSO generiere ich problemlos.

Jedoch soll es so sein, dass der von mir verwendete Button zwar vordefiniert ist als einer, der auf den vorherigen Zustand schaltet. Jedoch weiß der Button noch nicht, auf welches MSO er jetzt verweisen soll. Folgendes Vorher-Nachher-Bild Bild soll das verdeutlichen - es geht um das Dropdown hinter Objekt:


als Antwort auf: [#525563]
Anhang:
vorher_nachher.jpg (135 KB)

DPS / Schaltflächen-Einstellungen per JS ändern

WernerPerplies
Beiträge gesamt: 2554

27. Mär 2014, 18:13
Beitrag # 4 von 17
Beitrag ID: #525566
Bewertung:
(3908 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Du willst also die name properties daraufhin untersuchen. ob der Name btnPrev enthält und den / die entsprechenden Button(s) zurückbekommen?

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#525565]

DPS / Schaltflächen-Einstellungen per JS ändern

peterhenrich
Beiträge gesamt: 138

27. Mär 2014, 18:25
Beitrag # 5 von 17
Beitrag ID: #525567
Bewertung:
(3900 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nein, es geht konkret um die Veränderung der Eigenschaft, die hinter Objekt steht:

Im linken Bereich ist zu sehen, dass der Button nicht weiß, auf welches MSO er zugreifen soll: "(kein Objekt mit mehreren Status)".

Nach dem Skriptdurchlauf (für den Screenshot habe ich das händisch gemacht) soll hinter Objekt das MSO stehen, auf das sich der Button bezieht - hier in dem Fall auf "TestMSO 2".


als Antwort auf: [#525566]
Anhang:
Bildschirmfoto 2014-03-27 um 18.22.13.png (90.3 KB)

DPS / Schaltflächen-Einstellungen per JS ändern

Uwe Laubender
Beiträge gesamt: 4853

27. Mär 2014, 18:38
Beitrag # 6 von 17
Beitrag ID: #525568
Bewertung:
(3897 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Peter!

Befindet sich der Button innerhalb des MSOs?
Falls ja, ist sein Name innerhalb des MSOs eindeutig, also nur ein einziges mal vergeben?
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#525565]

DPS / Schaltflächen-Einstellungen per JS ändern

Uwe Laubender
Beiträge gesamt: 4853

27. Mär 2014, 18:43
Beitrag # 7 von 17
Beitrag ID: #525569
Bewertung:
(3885 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Peter!

Hier mal ein paar Zeilen Code, die beschreiben wie ein Button zu seinem MSO und seinem Ziel (ein bestimmter MSO-Status) kommt.

Nehmen wir an, die Datei kennt nur einen einzigen Button (außerhalb des MSOs) und ein einziges MSO, die einfach so auf der Seite stehen, dann zielt mit folgendem Code der Button auf den zweiten Status des MSOs:

Code
var myButton = app.documents[0].buttons[0]; 
var myMSO = app.documents[0].multiStateObjects[0];


myButton.gotoStateBehaviors.add({

associatedMultiStateObject:myMSO,
enableBehavior:true,
behaviorEvent:BehaviorEvents.MOUSE_UP,
stateName:myMSO.states[1].name

});

myButton.activeStateIndex = 0;

*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#525567]
(Dieser Beitrag wurde von Uwe Laubender am 27. Mär 2014, 18:56 geändert)

DPS / Schaltflächen-Einstellungen per JS ändern

WernerPerplies
Beiträge gesamt: 2554

27. Mär 2014, 18:51
Beitrag # 8 von 17
Beitrag ID: #525571
Bewertung:
(3874 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Sorry Peter,

ich habe habe noch nie mit MultiStateObjects gearbeitet.

Deine ursprüngliche Frage hatte ich so verstanden, das Du irgendwelche Properties durchsuchen willst.

Aber wenn Du mir Dein Beispiel zu Verfügung stellst, schaue ich mir das an, sonst muss ich zuerst einmal passen.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#525567]

DPS / Schaltflächen-Einstellungen per JS ändern

WernerPerplies
Beiträge gesamt: 2554

27. Mär 2014, 19:00
Beitrag # 9 von 17
Beitrag ID: #525573
Bewertung:
(3851 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

ich habe es fast vermutet, wir sind wieder bei Events. ;-)

Wenn ich Peters Frage auf eine GUI-Anwendung übertrage, würde ich mir in den entsprechenden Eventhandlern den jeweiligen Evenauslöser (hier also Button mit zugehörigem Eventhandler) auf einen Stack (Array) packen, dann würde ich immer den Weg kennen, wo ich herkomme.
So ähnlich müsste es hier doch auch funktionieren, oder?

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#525569]

DPS / Schaltflächen-Einstellungen per JS ändern

Uwe Laubender
Beiträge gesamt: 4853

27. Mär 2014, 19:04
Beitrag # 10 von 17
Beitrag ID: #525574
Bewertung:
(3847 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Peter!

Sorry, hab' Deinen Screenshot erst jetzt gesehen.
Du möchtest ja ein gotoNextStateBahavior im Button etablieren:

Code
var myButton = app.documents[0].buttons[0]; 
var myMSO = app.documents[0].multiStateObjects[0];

//Reinen Tisch machen, falls vom vorherigen Pröbeln noch ein
//oder mehrerere Aktionen im Button verankert sind:

myButton.behaviors.everyItem().remove();

myButton.gotoNextStateBehaviors.add({

associatedMultiStateObject:myMSO,
enableBehavior:true,
behaviorEvent:BehaviorEvents.MOUSE_UP

});

myButton.activeStateIndex = 0;

*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#525567]

DPS / Schaltflächen-Einstellungen per JS ändern

Uwe Laubender
Beiträge gesamt: 4853

27. Mär 2014, 19:09
Beitrag # 11 von 17
Beitrag ID: #525575
Bewertung:
(3845 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Werner!

Nicht ganz.
Das Zusammenspiel von Buttons, MSOs und Behaviors ist in Jongwares DOM-Dokumentation vorbildlich ausgeführt. Da gibt's eigentlich keine offenen Fragen.

Allerdings weiss ich nicht genau, was denn der Peter eigentlich machen möchte.
Vielleicht stellt er mal ein funktionierendes Beispiel zum Download bereit?

Dazu noch die Ausgangssituation.

Also da habe ich keine Bedenken; das lässt sich per Skript alles zusammenbasteln.
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#525573]

DPS / Schaltflächen-Einstellungen per JS ändern

peterhenrich
Beiträge gesamt: 138

27. Mär 2014, 20:25
Beitrag # 12 von 17
Beitrag ID: #525581
Bewertung:
(3729 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

vielen Dank für die Info. Ich habe bei jongware an der falschen Stelle gesucht: Ich hatte gedacht, dass die Verlinkung des Buttons mit dem MSO auf Button-Ebene geschieht - richtigerweise funktioniert das natürlich eine Ebene tiefer auf der dem Button zugeordneten Aktionsebene.

Ich denke, dass ich jetzt weiter komme. Sobald das Skript läuft, stelle ich es auch hier ein. Ich war am Anfang der Woche auf einem DPS-Seminar. Dort gab es viele umständliche Schritte, wo ich mir gleich dachte, dass es dazu ein Script geben müsste.

Danke auch an Werner

Peter


als Antwort auf: [#525575]

DPS / Schaltflächen-Einstellungen per JS ändern

Uwe Laubender
Beiträge gesamt: 4853

27. Mär 2014, 20:36
Beitrag # 13 von 17
Beitrag ID: #525582
Bewertung:
(3725 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Peter!

Sollte der Button innerhalb eines MSOs liegen, wird's mit der Referenzierung des Buttons möglicherweise etwas schwieriger, da alle Objekte innerhalb eines MSOs, die nicht im aktiven Status liegen mit document.allPageItems nicht erfasst werden können.

Was aber immer geht ist ein bekanntes Objekt per ID anzusprechen:

Code
myButton = app.documents[0].pageItems.itemByID(/*integer*/); 


myButton kann da liegen wo er will.

Zum Beispiel im Status 9999 eines MSOs, das meinetwegen auch noch mit anderen Objekten gruppiert ist und dessen Gruppe in ein Rechteck eingefügt wurde, das selbst verankert in einem Textrahmen im Status 1111 eines anderen MSOs liegt ;-) [Huch! Was für ein Szenarium!]

Die pageItems mit app.documents[0].allPageItems über eine for-Schleife nach diesem Button abzusuchen, hilft da wenig.
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#525581]

DPS / Schaltflächen-Einstellungen per JS ändern

peterhenrich
Beiträge gesamt: 138

27. Mär 2014, 20:43
Beitrag # 14 von 17
Beitrag ID: #525583
Bewertung:
(3715 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

viel zu weit gedacht. Plan ist:

- Anwender markiert alles, was er zu einem MSO machen möchte.

- Skript rennt durch die Selektion. Enthält der Name eines Objekts btnPrev oder btnNext (also auch "meinSchönerWeiterschaltknopf_btnNext") wird der nicht Teil des MSOs sondern Steuerelement.

- Letzteres kann vordefiniert sein mit Aktionen. Wenn nicht, werden die auch gesetzt.

- Aus allen MSO-Bestandteilen wird dann unterhalb eine Klickleiste mit allen Voransichten der einzelnen Stati erstellt.

- Was der Anwender nicht haben will, kann er einfach löschen.

Werde das Skript hier einstellen, sobald es fertig ist.

Gruß

Peter


als Antwort auf: [#525582]

DPS / Schaltflächen-Einstellungen per JS ändern

Uwe Laubender
Beiträge gesamt: 4853

27. Mär 2014, 22:30
Beitrag # 15 von 17
Beitrag ID: #525587
Bewertung:
(3620 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Peter!

Na dann ;-)

Ach ja: wie regelst Du die Reihenfolge der Stati bei der Auswahl?
Nach Index? Da kannst Du Überraschungen erleben…
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#525583]
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
26.01.2021 - 27.01.2021

Digicomp Academy AG, Zürich oder virtuell
Dienstag, 26. Jan. 2021, 08.30 Uhr - Mittwoch, 27. Jan. 2021, 17.00 Uhr

Kurs

In diesem Advanced-Kurs erlernen Sie weitergehende Methoden im Dokumentenaufbau, der Typografie und im Bereich Layouttechniken. Nach diesem Kurs können Sie strukturierte Dokumente erstellen oder bestehende effizienter anpassen.

Dauer: 2 Tage
Preis: CHF 1'400.–

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/INDEM2

Veranstaltungen
27.01.2021 - 28.01.2021

Digicomp Academy AG, Bern oder Basel
Mittwoch, 27. Jan. 2021, 08.30 Uhr - Donnerstag, 28. Jan. 2021, 17.00 Uhr

Kurs

Mit After Effects können Sie visuelle Effekte und Animationen für Video, Web, DVD und Blu-Ray erzeugen. In diesem Kurs lernen Sie die Grundlagen kennen und sehen inspirierende Anwendungsbeispiele, die Ihnen helfen, Ihre eigenen Ideen umzusetzen.

Preis: CHF 1'700.-
Dauer: 2 Tage

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/AFT

Neuste Foreneinträge


Laser Drucker druckt schwarze Flecken Links und Rechts von Blatt

Gleich Große Icons erstellen

Absätze vor/nach AF suchen

PSD CS6 (!) Mac: Dialog "Dateiinformationen" Fenster leer und Sackgasse

Langsamer MacMini

Illustrator Skript Übersatztext - Hilfe benötigt

ID CC 2019 und 2020: Crash beim Startvorgang - 2021

Inhalt Textrahmen verbinden

iPhone Farbprofil

Exel ohne leeres Tabellenblatt starten
medienjobs