Ugh… I don’t think my recommendations will work then… They actually rely on doing the same thing to all rows identically, at least in terms of function.
This is kind of getting into where prototype and “real app” blur. Also maybe getting stuck on one way to do something perseverating on why the H it won’t work the way it should work, etc. Maybe worth stepping back and reevaluating priorities of what you really need to achieve. Is it really showing exact colors or responding to catalog updates of colorways, or is it just about getting across the concept that different products can have different color sets, or those color sets can be updated? In other words, what is the least amount of work you can do to communicate or spec or test–whatever it is–with your prototype.
So some other approaches…
- Abandon the repeater and just use straight widgets. Yes, more overhead and maintenance, but should be faster to load and respond. Might be worth it if your priority is exact color values, speed and consistency across platforms.
- Create a dynamic panel in your repeater for the color swatches (or 5 dynamic panels per row) and manually set the color swatches. Then in Item Loaded set the proper dp state per color.
- You could even name the states with same hex values that would be in your “color” column(s) for easy “Set Panel State to [[Item.Color]]”
- You could run your existing proto, take screenshots of the right color swatches and just plug those images into your dp states.
- I’ve had pretty good performance with similar dp in a repeater with 30+ states, each with a different icon/color.
- Maybe you could “fake” your colors so instead of say, 120 different color values you can get away with 10 reused…
If you decide you need to pursue javascript, some ideas…
- Sounds like you might be making 5 js calls per row. If so, maybe you could write a js function that sets all 5 colors at once (one Open Link javascript: call per row) --and that might allow less wait time on Mac?
- Try applying a CSS stylesheet and just changing CSS style per swatch widget. Might be faster?
- There are several different methods to achieve javascript injection. One might be more reliable for you and/or repeaters on MacOS.
- Direct “Open Link” calls
- The “Javascript Engine”: Ever wanted to add a RegEx to your prototype? Here's instant embedded AxQuery and JavaScript without header files/plugins
- The “De Jongh approach” using “Open Link in New Window” method: http://dejongh.dk/wiki/doku.php?id=interaction:axure_javascript