Copy link to clipboard
Copied
Hello, again
I've just wasted some hours trying to get a script to execute. It threw an error saying that the 'object wasn't valid' I decided to give up, wen't home, and later at home started up again to see if I could sort it out.
It executed well on the first run.
Same computer. No changes to the script. ESTK was set to InDesign 5, I checked it a million times.
What could cause this to happen? Caches overflowing? "Blocks" between InDesign and ESTK?
The script isn't callng for any URIs or such.
Here's the bit I was having trouble with:
app.activeDocument.groups.everyItem().ungroup();
app.activeDocument.layers.everyItem().locked = false;
app.activeDocument.pageItems.everyItem().locked = false;
MoveTextFrame();
function MoveTextFrame() {
var doc = app.activeDocument;
var stories = doc.stories;
var STYLE = doc.paragraphStyles.item("Some Style");
for (var i = stories.length-1; i >= 0; i--) {
if (stories.appliedParagraphStyle == STYLE && stories.paragraphs[0].parentTextFrames[0].parentPage.name == 1) stories.paragraphs[0].parentTextFrames[0].geometricBounds = ([38.8, 15, 48.249, 130]);
if (stories.appliedParagraphStyle == STYLE && stories.paragraphs[0].parentTextFrames[0].parentPage.name == 2) stories.paragraphs[0].parentTextFrames[0].geometricBounds = ([9.2, 15, 18.6, 130]);
if (stories.appliedParagraphStyle == STYLE && stories.paragraphs[0].parentTextFrames[0].parentPage.name == 3 && app.activeDocument.documentPreferences.facingPages == true) stories.paragraphs[0].parentTextFrames[0].geometricBounds = ([9.2,225, 18.6, 340]);
if (stories.appliedParagraphStyle == STYLE && stories.paragraphs[0].parentTextFrames[0].parentPage.name == 3 && app.activeDocument.documentPreferences.facingPages == false) stories.paragraphs[0].parentTextFrames[0].geometricBounds = ([9.2,15, 18.6, 130]);
if (stories.appliedParagraphStyle == STYLE && stories.paragraphs[0].parentTextFrames[0].parentPage.name == 4) stories.paragraphs[0].parentTextFrames[0].move([15,9.2]);
}
}
You're probably trying to ungroup groups that do not exist. Once you ungrouped everything, there are no groups, so app.activeDocument.groups.everyItem() is invalid...
Harbs
Copy link to clipboard
Copied
In ESTK, next to the dropdown where you select which app to target,
there's that little chain icon. If the chain is broken, even if the app
is selected, it won't run. The chain has to be closed. Sometimes (not
sure when) the chain gets broken even if you've got the app targeted.
Might that be it?
Ariel
Copy link to clipboard
Copied
Hi Ariel,
Thanks! But no, afraid that's not it. Chain is green and not broken.
It seems to happen when I run the loop more than once. But what could be offending about the code being executed again?
The last part of the code is a bunch of ifs. Should I wrap it upp in 'else break' or something?
Copy link to clipboard
Copied
You're probably trying to ungroup groups that do not exist. Once you ungrouped everything, there are no groups, so app.activeDocument.groups.everyItem() is invalid...
Harbs
Copy link to clipboard
Copied
Thanks for taking your time Harbs.
Sorry to say, once I escape the ungroup-line, it still won't run. Says line " if (stories.appliedParagraphStyle == STYLE && stories.paragraphs[0].parentTextFrames[0].parentPage.name == 1) stories.paragraphs[0].parentTextFrames[0].geometricBounds = ([38.8, 15, 48.249, 130]);"
..is wrong and that 'null is not an object'.
Copy link to clipboard
Copied
Is the text frame on the pasteboard?
Do you have an inline frame that's overset?
No need to do a lot more error checking...
Harbs
Copy link to clipboard
Copied
The frames get overset from some lines I have above the other ones.
"
var myPar = app.activeDocument.paragraphStyles.item("Some Style");
myPar.fillColor = ("Black");
myPar.pointSize = 40;
myPar.justification = 1818584692
"
Increasing the point size will have them overset. In what way does that inhibit the loop from finding the storie and then change the parentTextFrame? And what can I do about it.
Copy link to clipboard
Copied
If the entire frame is overset, you cannot get its geometricBounds -- because it does not have any...
You'll need to flow your text beforehand if that's the issue.
Harbs
Copy link to clipboard
Copied
Running the loop now puts ALL stories.parentTextFrames to the geometric bounds in the offending line. With no change to the code.
Have I missunderstood something about parenthesis, closing loops, or the use of &&?
Copy link to clipboard
Copied
Did not get that...
Copy link to clipboard
Copied
I mean all textframes literally changed to meet the bounds presented in that line, although the conditions where not met in the individual stories asociated with them. !
It's a start..
Copy link to clipboard
Copied
Try: var stories = doc.stories.everyItem().getElements();
Copy link to clipboard
Copied
I'd like to just drop a line to say thanks for the support.
And it deserves to be said, for anyone surfing in, that the obvious is true: No, a script wont stop working even tho you have 'the right code'. It had to to with not knowing about the overset problem.
The second problem "all stories moving up to a certain geobound" was just a result of panic and not putting ; after all lines. (Doesn't show in the post.)