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; } } } 地址:http://files.cnblogs.com/carlosfu/EllispseTest.rar