esmith Posted April 21, 2010 Posted April 21, 2010 Is it possible to write one JS rule that could be applied to several graphic frames, and potentially return a unique graphic to each one? My logic looks something like this: // pull the trailing number from the current frame's name var frame_name = FusionPro.Composition.CurrentFlow.Name; var num = Right(frame_name, 1); // use the number of the current frame to pull the corresponding numbered image var style = num + "_sign_style"; var version = num + "_sign_version"; var place_image = Field(style) + "-" + Field(version) + ".pdf"; return CreateResource(SearchPath + place_image); I could then (in theory) assign this same rule to "frame1", "frame2", and "frame3" and the rule would return "aa-123.pdf", "bb-456.pdf", and "cc-789.pdf" respectively. This would save me from duplicating the same rule n number of times in order to apply a unique rule to each frame. I'm not sure if this is the purpose of the CurrentFlow object, but that's how I understood the documentation (RulesSystemGuide, p83).
esmith Posted April 22, 2010 Author Posted April 22, 2010 Well, my original code doesn't work, but modifying this logic accomplished my goal. // assign correct graphic to each frame var numUp = 1; switch (Field("template_size")) { case "4x5": numUp = 4; break; case "5x8": numUp = 2; break; case "11x4": numUp = 2; break; case "label": numUp = 24; break; } var graphicNum = []; for (i=1; i<=numUp; i++) { var styleNum = i + "_sign_style"; var versionNum = i + "_sign_version"; if (Field(styleNum) != "") graphicNum[i] = Field(styleNum) + "-" + Field(versionNum) + ".pdf"; else graphicNum[i] = graphicNum[i-1]; FindGraphicFrame("backdrop" + i).SetGraphic(SearchPath + graphicNum[i]); }
Recommended Posts
Archived
This topic is now archived and is closed to further replies.