Scale都是让注册点不变的。
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
public class EllispseTest extends Sprite
{
private var s1:Sprite;
private var s2:Sprite;
private var bigRadius:Number=100;
private var smallRadius:Number=30;
public function EllispseTest()
{
s1=new Sprite();
s1.graphics.lineStyle(1);
s1.graphics.beginFill(0xffffff);
s1.graphics.drawEllipse(0,0,bigRadius,smallRadius);
s1.x=100;
s1.y=100;
addChild(s1);
s2=new Sprite();
s2.graphics.lineStyle(1);
s2.graphics.beginFill(0xffffff);
s2.graphics.drawEllipse(-bigRadius/2,-smallRadius/2,bigRadius,smallRadius);
s2.x=200;
s2.y=200;
addChild(s2);
makePoint(100,100);
makePoint(200,200);
s1.addEventListener(MouseEvent.MOUSE_WHEEL,onMouseWheel);
s2.addEventListener(MouseEvent.MOUSE_WHEEL,onMouseWheel);
}
private function onMouseWheel(e:MouseEvent):void{
if(e.delta==3){
e.target.scaleX*=2;
e.target.scaleY*=2;
}else{
e.target.scaleX/=2;
e.target.scaleY/=2;
}
}
private function makePoint(x:Number,y:Number):Sprite{
var sprite:Sprite=new Sprite();
sprite.graphics.lineStyle(10);
sprite.graphics.lineTo(2,0);
addChild(sprite);
sprite.x=x;
sprite.y=y;
return sprite;
}
}
}
地址:https://files.cnblogs.com/carlosfu/EllispseTest.rar