package { import flash.display.Bitmap; import flash.display.DisplayObject; import flash.display.Loader; import flash.display.MovieClip; import flash.events.Event; import flash.events.MouseEvent; import flash.events.TimerEvent; import flash.geom.Matrix; import flash.media.Sound; import flash.net.NetStream; import flash.net.URLRequest; import flash.utils.Timer; public class Mainvv extends MovieClip { private var loader:Loader; private var url:String = "1.jpg"; private var bitmap:Bitmap; private var matrix:Matrix; private var angle:Number = 0; private var speed:Number = .05; public function Mainvv() { if (stage) { init(); } else { addEventListener(Event.ADDED_TO_STAGE, init); } } private function init(e:Event = null):void { loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); loader.load(new URLRequest(url)); } private function onComplete(e:Event):void { bitmap = e.target.content as Bitmap; bitmap.x = (stage.stageWidth - bitmap.width) / 2; bitmap.y = (stage.stageHeight - bitmap.height) / 2; addChild(bitmap); matrix = bitmap.transform.matrix; //将图片旋转30度 //rotate(bitmap, 30, bitmap.width / 2, bitmap.height / 2, matrix); stage.addEventListener(MouseEvent.MOUSE_MOVE, running1); } private function running(e:Event = null):void { bitmap.x = (stage.stageWidth - bitmap.width) / 2; bitmap.y = (stage.stageHeight - bitmap.height) / 2; rotate(bitmap, angle, bitmap.width / 2, bitmap.height / 2, matrix); angle += speed; //trace(angle); } private function running1(e:MouseEvent):void { bitmap.x = (stage.stageWidth - bitmap.width) / 2; bitmap.y = (stage.stageHeight - bitmap.height) / 2; var dy:Number = mouseY - (bitmap.y + bitmap.height / 2); var dx:Number = mouseX - (bitmap.x + bitmap.width / 2); //bitmap.rotation = Math.atan2(dy, dx) * 180 / Math.PI; rotate(bitmap, Math.atan2(dy, dx), bitmap.width / 2, bitmap.height / 2, matrix); } private function rotate(dis:DisplayObject,rotation:int,px:int,py:int,srcMatrix:Matrix):void { var tx:int = dis.x + px; var ty:int = dis.y + py; var m:Matrix = srcMatrix.clone(); m.translate(-tx, -ty); m.rotate(rotation * 180 / Math.PI); m.translate(tx, ty); dis.transform.matrix = m; } } }
|