技巧

匀速朝像鼠标移动

var speed:Number = 2;

 

stage.addEventListener(Event.ENTER_FRAME, moveArrow);

function moveArrow(event : Event) : void
{
    var dx:Number=mouseX - arrow.x;
    var dy:Number=mouseY - arrow.y;
    var radians:Number=Math.atan2(dy,dx);
    arrow.rotation=radians * 180 / Math.PI;
   
    arrow.x += speed * Math.cos(radians);
    arrow.y += speed * Math.sin(radians);
   
}

画圆:

graphics.lineStyle(1);
//graphics.beginFill(0xffff00);
graphics.moveTo(100, 100);
stage.addEventListener(Event.ENTER_FRAME, drawCircle);
var i:Number = 0;
function drawCircle(event : Event) : void
{
	if( i <= Math.PI * 2 )
	{
		var dx:Number = 60 + Math.cos(i) * 40;
		var dy:Number = 100 + Math.sin(i) * 40;
		graphics.lineTo(dx, dy);
		i += 0.01;
	}
	else
	{
		graphics.endFill();
		stage.removeEventListener(Event.ENTER_FRAME, drawCircle);
	}
}

 

 

旋转箭头:

stage.addEventListener(Event.ENTER_FRAME, rotateArrow);

function rotateArrow(event : Event) : void
{
	var dx:Number=mouseX - arrow.x; 
	var dy:Number=mouseY - arrow.y; 
	var radians:Number=Math.atan2(dy,dx); 
	arrow.rotation=radians * 180 / Math.PI;
}

 

cocos2d版本的旋转箭头:

   var line = new cc.Sprite("#color/paint3.png");
        line.setAnchorPoint(cc.p(0,0.5));
        line.setPosition(p);


        var dx = p.x - prevp.x;
        var dy = p.y - prevp.y;
        var dis = Math.sqrt(dx * dx + dy * dy);
        var radians = Math.atan2(dx,dy);
        line.setRotation(radians * 180 / Math.PI + 90);

        this.clipper.addChild(line);
        this.lineList.push(line);
        this.lineNodePosList.push(p);

        line.setScaleX(dis / line.getContentSize().width);

 

 

心跳:

var radians:Number = 0; 
var centerScale:Number = 1; 
var range:Number = 1; 
var speed:Number = 0.3;

addEventListener(Event.ENTER_FRAME, onEnterFrame);

function onEnterFrame(event:Event):void
{ 
	ball.scaleX = ball.scaleY = 1 +Math.sin(radians) * range; 
	radians += speed; 
}
posted @ 2010-09-16 21:45  居家懒人  阅读(226)  评论(0)    收藏  举报