I'm in the early stages of using more external libs/behaviors for things I used to always pile up in stack/card/object scripts and custom properties. My old practice was less than stellar in terms of re-usability, fixing the same thing in multiple places etc.. So I'm looking to make more libs that can be re-used as behaviors. But now I face message path mysteries I'm sure all of you have understood for decades. In particular:
passing values, via constants or local vars, as params. I'm working on a gradient library to use as a behavior with graphics objects, the idea is to be able to pass a one or more curated color values to a gradient ramp where the gradient type, location, span etc are already set. If nothing is passed the function set defaults and returns a black and white radial gradient. or you can just pass a single RGB value to the end stop… I have not included that function here, because it works if I pass an explicit three integer RGB value… But I am unable to pass either a constant or a local variable as a parameter What am I doing wrong here: on mouseUp assignColors setRamp "","","",sSoftRed,"","" # function generates a fillGradient["ramp'] using defaults # for the empty params, with a single color applied to the end stop. # I can't get the value of sSoftRed to go thru…. # it works if I pass and explicit RGB string: "255,20,20" end mouseup # We want to set up some curated colors in advance: # Defaults: constant kPureWhite= "255,255,255" constant kPureBlack= "0,0,0" constant kDefaultStart= "0.00000" # left stop constant kDefaultEnd= "1.00000" # right stop constant kDefaultOpacity= "255" # 100% opaque # Curated Colors constant kSoftGreen = "88,246,27" constant kSoftRed = "255,6,23" # more to come later… setRamp "","","","255,6,23","","" # this works setRamp "","","",kSoftRed,"","" # this fails # since a constant did not work, I tried locals: command assignColors # trying locals here… local sSoftGreen, sSoftRed put "88,246,27" into sSoftGreen put "255,6,23" into sSoftRed end assignColors if I set the break point on the mouseup I can see in the variable watcher that the values we expect are there: kSoftRed 255,6,23 sSoftRed 255,6,23 But when passed as a param the gradient ramp gets (where start defaults to kPureWhite) setRamp "","","",sSoftRed,"","" # this also fails # we see this: 0.00000,255,255,255,255 1.00000,sSoftRed,255 # or 0.00000,255,255,255,255 1.00000,kSoftRed,255 # if I try to pass the param as a constant and errors out with "bad gradient ramp" because the literal string value of the name of the variable or constant is passed and not the value it contains. I would rather avoid "do" if at all possible. ?? Missing something really simple here. Brahmanathaswami _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode