{"id":258,"date":"2009-04-19T16:36:53","date_gmt":"2009-04-19T23:36:53","guid":{"rendered":"https:\/\/actionsnippet.com\/?p=1185"},"modified":"2009-04-19T16:36:53","modified_gmt":"2009-04-19T23:36:53","slug":"pendulums","status":"publish","type":"post","link":"https:\/\/actionsnippet.com\/?p=258","title":{"rendered":"Pendulums"},"content":{"rendered":"<pre class=\"brush: as3; title: ; notranslate\" title=\"\">\r\nvar mouseSpeedX:Number = 0;\r\nvar prevX:Number = 0;\r\n\r\nvar pends:Array = new Array();\r\nfor (var i:int = 0; i&lt;10; i++){\r\n       pends.push(makePendulum(100+ i * 40, 100, 15, 100 + i * 10));\r\n}\r\n\r\naddEventListener(Event.ENTER_FRAME, onRun);\r\nfunction onRun(evt:Event):void {\r\n       \/\/ mouseSpeed\r\n       mouseSpeedX = prevX - mouseX;\r\n       prevX = mouseX;\r\n\r\n       for (var i:int = 0; i&lt;pends.length; i++) pends&#x5B;i]();\r\n}\r\n\r\nfunction makePendulum(xp:Number, yp:Number, rad:Number, leng:Number):Function {\r\n       var rot:Number = 0;\r\n       var rotDest :Number = 0;\r\n       var rotVel:Number = 0\r\n       var string:Shape = Shape(addChild(new Shape()));\r\n       var ball:Sprite = Sprite(addChild(new Sprite()));\r\n       ball.buttonMode = true;\r\n       with(ball.graphics) beginFill(0xFF0000), drawCircle(0,leng, rad);\r\n       ball.x = xp;\r\n       ball.y = yp;\r\n       string.x = ball.x;\r\n       string.y = ball.y;\r\n       ball.addEventListener(MouseEvent.ROLL_OVER,function(){\r\n             rotDest = mouseSpeedX;\r\n       });\r\n       return function(){\r\n           \/\/ force rotDest back to 0\r\n           rotDest *= .8;\r\n               \/\/ elasticity (hooke&#039;s)\r\n               rotVel += (-1.9 * (rot - rotDest) - rotVel) \/ 4;\r\n               rot += rotVel\r\n               ball.rotation = rot;\r\n               \/\/ draw string:\r\n               string.graphics.clear();\r\n               string.graphics.lineStyle(0,0);\r\n               var pnt:Point = ball.localToGlobal(new Point(0, leng))\r\n               string.graphics.curveTo(0, leng \/ 2, pnt.x - ball.x, pnt.y-ball.y);\r\n  }\r\n}\r\n<\/pre>\n<p>This is a variation on something I wrote in response to a student question. It creates a few pendulums that can be pushed with the mouse.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>var mouseSpeedX:Number = 0; var prevX:Number = 0; var pends:Array = new Array(); for (var i:int = 0; i&lt;10; i++){ pends.push(makePendulum(100+ i * 40, 100, 15, 100 + i * 10)); } addEventListener(Event.ENTER_FRAME, onRun); function onRun(evt:Event):void { \/\/ mouseSpeed mouseSpeedX = prevX &#8211; mouseX; prevX = mouseX; for (var i:int = 0; i&lt;pends.length; i++) pends&#x5B;i](); [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[3,4],"class_list":["post-258","post","type-post","status-publish","format-standard","hentry","category-motion","tag-actionscript","tag-flash"],"_links":{"self":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/posts\/258","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=258"}],"version-history":[{"count":0,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/posts\/258\/revisions"}],"wp:attachment":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=258"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=258"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=258"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}