//myRPG.jsx //An InDesign CS5 JavaScript /* October 2010 */ // This is the first start of a script for a simple computer role-playing game. // The users task is it to find its way from home to the university campus. // While traveling the user has to answer questions which are effecting its destiny. // Going through the questions step by step the InDesign document builds up a text frame describing the user's journey. // An info-graphic on the bottom of the document will show the user's journey. // After completing all quest the user can print the file as an A3 document. // // // myRPG.jsx by AnitaMei is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. // Based on a work at https://gist.github.com/3874630 // //***+++RUN SCRIPT+++*** //build page var p = page(); // run indesign in presenation mode (source: forums.adobe.com/message/3398986#3398986) app.activeWindow.screenMode = ScreenModeOptions.PRESENTATION_PREVIEW; // alert introduction if (p == 0) { introduction(); } // ***+++START+++*** function page () { // create new document var myDocument = app.documents.add({ documentPreferences: { pageWidth : 297, pageHeight : 420, facingPages : false } }); // ***+++CYAN RECTANGLE+++*** // create new page item rectangle var myRectangle = myDocument.rectangles.add({ // set geometric bounds (top, left, bottom, and right edges) geometricBounds : ["0mm", "0mm", "420mm", "297mm"], fillColor : "Cyan" }); // ***+++TEXT FRAME 1+++*** // create new text frame var myTextFrame1 = myDocument.pages.item(0).textFrames.add({ // set geometric bounds (top, left, bottom, and right edges) geometricBounds : ["12mm", "12mm", "30mm", "82mm"] }); // add text to the text frame myTextFrame1.contents = "Start…"; // format myTextFrame // (source: indesignscript.de/forum.html?&tx_mmforum_pi1[action]=list_post&tx_mmforum_pi1[tid]=88) var myParentStory = myTextFrame1.parentStory; var countCharacters = myParentStory.characters.length; for (var i=0; i<countCharacters;i++) { var curCharacter = myParentStory.characters.item(i); curCharacter.appliedFont = app.fonts.item("DIN"); curCharacter.fontStyle = "Bold"; curCharacter.pointSize = 60; curCharacter.tracking = 30; } // ***+++TEXT FRAME 2+++*** // create new text frame var myTextFrame2 = myDocument.pages.item(0).textFrames.add({ // set geometric bounds (top, left, bottom, and right edges) geometricBounds : ["378mm", "140mm", "396mm", "285mm"] }); // add text to the text frame myTextFrame2.contents = "…FH Potsdam"; // format myTextFrame // (source: indesignscript.de/forum.html?&tx_mmforum_pi1[action]=list_post&tx_mmforum_pi1[tid]=88) var myParentStory = myTextFrame2.parentStory; var countCharacters = myParentStory.characters.length; for (var i=0; i<countCharacters;i++) { var curCharacter = myParentStory.characters.item(i); curCharacter.appliedFont = app.fonts.item("DIN"); curCharacter.fontStyle = "Bold"; curCharacter.pointSize = 60; curCharacter.tracking = 30; } // paragraph alignment myTextFrame2.paragraphs.item(0).justification = Justification.RIGHT_ALIGN; // ***+++TEXT FRAME 3+++*** // create new text frame var myTextFrame3 = myDocument.pages.item(0).textFrames.add({ // set geometric bounds (top, left, bottom, and right edges) geometricBounds : ["16mm", "91mm", "157mm", "285mm"] }); // add text to the text frame var myIntroduction = "Es ist Montagmorgen bei dir zu Hause " + "irgendwo in Berlin. Du solltest spätestens um 10 Uhr " + "an der Potsdamer Hochschule sein. Dein Weg durch den " + "Berliner Verkehrsdschungel ist gefährlich. Komme also " + "nicht vom Weg ab."; myTextFrame3.contents = myIntroduction + " +++"; // format myTextFrame // (source: indesignscript.de/forum.html?&tx_mmforum_pi1[action]=list_post&tx_mmforum_pi1[tid]=88) var myParentStory = myTextFrame3.parentStory; var countCharacters = myParentStory.characters.length; for (var i=0; i<countCharacters;i++) { var curCharacter = myParentStory.characters.item(i); curCharacter.appliedFont = app.fonts.item("DIN"); curCharacter.fontStyle = "Medium"; curCharacter.pointSize = 19; curCharacter.tracking = 20; curCharacter.leading = 24; } // paragraph alignment myTextFrame3.paragraphs.item(0).justification = Justification.LEFT_JUSTIFIED; // ***+++CREATE OUTLINES+++*** of all text frames in the document var textFrames = myDocument.textFrames.everyItem().getElements(); for (var i=0; i< textFrames.length; i++) { textFrames[i].createOutlines(false); // move all text frames into the background textFrames[i].sendToBack(); } return 0; } // ***+++ALERT INTRODUCTION+++*** function introduction(){ var myIntroduction = "Es ist Montagmorgen bei dir zu Hause " + "irgendwo in Berlin. Du solltest spätestens um 10 Uhr " + "an der Potsdamer Hochschule sein. Dein Weg durch den " + "Berliner Verkehrsdschungel ist gefährlich. Komme also " + "nicht vom Weg ab."; confirm("Deine Mission" + "\n" + myIntroduction + " Möchtest du beginnen?"); }