关节联动简单示例

package cn.d
{
import flash.display.Sprite;
import flash.events.Event;

public class TwoSegment2 extends Sprite
{
private var sg1:Segment;
private var sg2:Segment;

public function TwoSegment2()
{
super();
init();
}

private function init():void
{
sg1=new Segment(100, 20);
this.addChild(sg1);

sg2=new Segment(100, 20);
this.addChild(sg2);

sg1.x=300;
sg1.y=300;

sg2.x=sg1.getPin().x;
sg2.y=sg1.getPin().y;

this.addEventListener(Event.ENTER_FRAME, onEnterFrame)
}

private function onEnterFrame(e:Event):void
{
var dx:Number=mouseX - sg1.x;
var dy:Number=mouseY - sg1.y;

var angle:Number=Math.atan2(dy, dx);
sg1.rotation=angle * (180 / Math.PI);

var w:Number=sg1.getPin().x - sg1.x;
var h:Number=sg1.getPin().y - sg1.y;

var tx:Number=mouseX - w;
var ty:Number=mouseY - h;

dx=tx - sg2.x;
dy=ty - sg2.y;

angle=Math.atan2(dy,dx);

sg2.rotation=angle*(180/Math.PI);

//sg1.x=sg2.getPin().x;
//sg1.y=sg2.getPin().y;

}

}
}
posted @ 2012-03-26 09:43  ndljava  阅读(759)  评论(0编辑  收藏  举报