Ring shapevent forked:2favorite:11lines:57license : MIT License modified : 2010-05-03 23:46:36 Embed Tweet package { import flash.display.*; import flash.events.*; [SWF(width = 500, height=500)] public class Ring extends MovieClip { private var ring:MovieClip; public function Ring(){ // init ring = createRing(); ring.x = stage.stageWidth / 2; ring.y = stage.stageHeight / 2; addChild(ring); } // private methods private function createRing(sectionNum:int = 30):MovieClip{ var container:MovieClip = new MovieClip(); container.circles = []; container.theta = 0; container.thetaDest = 0; var step:Number = (Math.PI * 2) / sectionNum; for (var i:int = 0; i<sectionNum; i++){ var c:MovieClip = new MovieClip(); with (c.graphics){ lineStyle(0,0x000000); beginFill(0xCCCCCC); drawCircle(0,0,20); } c.thetaOffset = step * i; container.addChild(c); container.circles.push(c); } container.addEventListener(Event.ENTER_FRAME, onRun); return container; } private function onRun(evt:Event):void { var container:MovieClip = MovieClip(evt.currentTarget); var num:int = container.circles.length; for (var i:int = 0; i<num; i++){ var c:MovieClip = container.circles[i]; var angle:Number = container.theta + c.thetaOffset; c.x = 200 * Math.cos(angle); c.y = 100 * Math.sin(angle); c.scaleX = (100 + c.y) / 120 + 0.2; c.scaleY = c.scaleX; } container.circles.sortOn("y", Array.NUMERIC); for (i = 0; i<num; i++){ container.addChild(container.circles[i]); } if (container.mouseX < -100){ container.thetaDest -= 0.05; } if (container.mouseX > 100){ container.thetaDest += 0.05; } container.theta += (container.thetaDest - container.theta) / 12; } } } Code Fullscreen Preview Fullscreen si0013 goolyuyi yamalib narinami atsumo kidaipu SetzerWolf xor Vladik : ui halfmile : 圆环运动算法圆环运动算法 aksoft : 图片环形滚动\(^o^)/~ cosine, navigation sine, ui 图片环形滚动 圆环运动算法 MovieClip scaleX mouseX currentTarget sortOn Array.NUMERIC scaleY graphics drawCircle addEventListener beginFill lineStyle stageWidth push Math.cos stageHeight addChild Event.ENTER_FRAME length Math.sin sort new page view favorite forked pv175 forked from: Ring Jenya forked:0 favorite:0lines:57 (diff:1) pv0 forked from: Ring erickjones forked:0 favorite:0lines:63 (diff:10)