package { import flash.display.Sprite; import flash.display.StageScaleMode; import flash.display.StageAlign; import flash.events.Event; public class animation_ch13_Walking3 extends Sprite { private var segment0:animation_ch13_Segment; private var segment1:animation_ch13_Segment; private var cycle:Number = 0; private var offset:Number = -Math.PI / 2; public function animation_ch13_Walking3() { init(); } //@ init(s) private function init():void { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; segment0 = new animation_ch13_Segment(100, 20); addChild(segment0); segment0.x = 200; segment0.y = 100; segment1 = new animation_ch13_Segment(100, 20); addChild(segment1); segment1.x = segment0.getPin().x; segment1.y = segment0.getPin().y; addEventListener(Event.ENTER_FRAME, onEnterFrame); } //@ frame(s) private function onEnterFrame(event:Event):void { cycle += .05; var angle0:Number = Math.sin(cycle) * 45 + 90; var angle1:Number = Math.sin(cycle + offset) * 45 + 45; segment0.rotation = angle0; segment1.rotation = segment0.rotation + angle1; segment1.x = segment0.getPin().x; segment1.y = segment0.getPin().y; } } }