{"id":257,"date":"2009-04-18T21:33:36","date_gmt":"2009-04-19T04:33:36","guid":{"rendered":"https:\/\/actionsnippet.com\/?p=1183"},"modified":"2009-04-18T21:33:36","modified_gmt":"2009-04-19T04:33:36","slug":"dynamic-shapes","status":"publish","type":"post","link":"https:\/\/actionsnippet.com\/?p=257","title":{"rendered":"Dynamic Shapes"},"content":{"rendered":"<pre class=\"brush: as3; title: ; notranslate\" title=\"\">\r\n\/\/ build some functions:\r\nvar redGradient:Function = sl(16, add(100, mult(5)));\r\n\r\n\/\/ grid positioning\r\nvar xPos:Function = add(50, mult(30, cInt(div(4))));\r\nvar yPos:Function = add(50, mult(30, mod(4)));\r\n\r\n\/\/ create some shapes:\r\nvar shapes:Array = createShapes(this, 22, &#x5B;&#x5B;&quot;beginFill&quot;, 0xCCCCCC], &#x5B;&quot;drawCircle&quot;, 0, 0, 10], &#x5B;&quot;endFill&quot;], &#x5B;&quot;lineStyle&quot;,1, redGradient], &#x5B;&quot;drawRect&quot;, -5, -5, 10, 10]], {x:yPos, y:xPos, rotation:mult(10)});\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \r\nfunction createShapes(par:DisplayObjectContainer,  num:Number, \r\n\t\t\t\t\t                     funcs:Array, props:Object):Array {\r\n\tvar shapes:Array = &#x5B;];\r\n\tfor (var i:int = 0; i&lt;num; i++){\r\n\t\tshapes&#x5B;i] = par.addChild(new Shape());\r\n\t\tfor (var j:int = 0; j&lt;funcs.length; j++) {\r\n\t\t\tvar a:Array = funcs&#x5B;j].concat();\r\n\t\t\tfor (var k:int = 0; k&lt;a.length; k++){\r\n\t\t\t\tif (a&#x5B;k] is Function){\r\n\t\t\t\t\ta&#x5B;k] = a&#x5B;k](i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfor (var key:String in props){\r\n\t\t\t\tvar v:* = props&#x5B;key];\r\n\t\t\t\tif (v is Function){\r\n\t\t\t\t  shapes&#x5B;i]&#x5B;key] = v(i);\r\n\t\t\t\t}else{\r\n\t\t\t\t  shapes&#x5B;i]&#x5B;key] = v;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tshapes&#x5B;i].graphics&#x5B;a&#x5B;0]].apply(shapes&#x5B;i].graphics, a.slice(1));\r\n\t\t}\r\n\t}\r\n\treturn shapes;\r\n}\r\n\r\n\/\/ function building blocks\r\nconst F:Function = function(a:*):*{return a};\r\n\r\nfunction cInt(f:Function=null):Function{\r\n\tif (f == null) f = F;\r\n\treturn function(n:Number):Number {\r\n\t\treturn int(f(n));\r\n\t}\r\n}\r\n\r\nfunction mod(m:Number, f:Function=null):Function{\r\n\tif (f == null) f = F;\r\n\treturn function(n:Number):Number {\r\n\t\treturn f(n) % m;\r\n\t}\r\n}\r\n\r\nfunction div(d:Number, f:Function=null):Function{\r\n\tif (f == null) f = F;\r\n\treturn function(n:Number):Number {\r\n\t\treturn f(n) \/ d;\r\n\t}\r\n}\r\n\r\nfunction mult(scalar:Number, f:Function=null):Function{\r\n\tif (f == null) f = F;\r\n\t return function(n:Number):Number {\r\n\t\treturn f(n) * scalar;\r\n\t}\r\n}\r\n\r\nfunction add(off:Number, f:Function=null):Function{\r\n\t if (f == null) f = F;\r\n\t return function(n:Number):Number {\r\n\t\treturn f(n) + off;\r\n\t}\r\n}\r\n\/\/ shift left\r\nfunction sl(amount:int, f:Function=null):Function{\r\n\t if (f == null) f = F;\r\n\t return function(n:Number):Number {\r\n\t\treturn f(n) &lt;&lt; amount\r\n\t}\r\n}\r\n<\/pre>\n<p>This is an unusual snippet I wrote a couple weeks back&#8230;. not sure where I was going with this really&#8230; has some interesting ideas in it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\/\/ build some functions: var redGradient:Function = sl(16, add(100, mult(5))); \/\/ grid positioning var xPos:Function = add(50, mult(30, cInt(div(4)))); var yPos:Function = add(50, mult(30, mod(4))); \/\/ create some shapes: var shapes:Array = createShapes(this, 22, &#x5B;&#x5B;&quot;beginFill&quot;, 0xCCCCCC], &#x5B;&quot;drawCircle&quot;, 0, 0, 10], &#x5B;&quot;endFill&quot;], &#x5B;&quot;lineStyle&quot;,1, redGradient], &#x5B;&quot;drawRect&quot;, -5, -5, 10, 10]], {x:yPos, y:xPos, rotation:mult(10)}); function createShapes(par:DisplayObjectContainer, num:Number, funcs:Array, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[94],"tags":[3,4],"class_list":["post-257","post","type-post","status-publish","format-standard","hentry","category-misc","tag-actionscript","tag-flash"],"_links":{"self":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/posts\/257","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=257"}],"version-history":[{"count":0,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/posts\/257\/revisions"}],"wp:attachment":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=257"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=257"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}