+ -
当前位置:首页 → 问答吧 → MC 旋转的问题

MC 旋转的问题

时间:2011-07-31

来源:互联网

点击移动鼠标后 有 BUG 因为鼠标 X,Y 变了, MC 的角度会跳到 鼠标相应的位置, 有什么办法让他不跳吗??
复制内容到剪贴板
代码:
package {
    import flash.display.Sprite;
    import flash.events.MouseEvent
    public class main extends Sprite {
        private var bitmapContainer:Sprite = new Sprite();
        private var bitmapFill:Sprite = new Sprite();
        private var bitmapRotation:Sprite = new Sprite();
        
        private var isMove:Boolean
        
        public function main() {
            init();
        }
        private function init():void {
            addChild(bitmapContainer)
            bitmapContainer.x = bitmapContainer.y = 0
            
            bitmapFill.graphics.beginFill(0x000000,1);
            bitmapFill.graphics.drawRect(-100, -100, 200, 200);
            bitmapContainer.addChild(bitmapFill)
            
            bitmapRotation.graphics.lineStyle(10, 0x00ff00, 1)
            bitmapRotation.graphics.drawRect(-100, -100, 200, 200);
            bitmapContainer.addChild(bitmapRotation)
            
            bitmapFill.addEventListener(MouseEvent.MOUSE_DOWN, fillDownHandler);
            bitmapFill.addEventListener(MouseEvent.MOUSE_UP, fillUpHandler);
            
            bitmapRotation.addEventListener(MouseEvent.MOUSE_DOWN, rotationDownHandler)
            stage.addEventListener(MouseEvent.MOUSE_UP, rotationUpHandler)
            stage.addEventListener(MouseEvent.MOUSE_MOVE, rotationMoveHandler)
            isMove = false
        }
        private function fillDownHandler(e:MouseEvent):void {
            e.currentTarget.parent.startDrag();
        }
        private function fillUpHandler(e:MouseEvent):void {
            e.currentTarget.parent.stopDrag();
        }
        
        private function rotationDownHandler(e:MouseEvent):void {
            isMove = true
        }
        private function rotationUpHandler(e:MouseEvent):void {
            isMove = false
        }
        private function rotationMoveHandler(e:MouseEvent):void {
            if (isMove) {
                bitmapContainer.rotation = Math.atan2(mouseY - bitmapContainer.y, mouseX - bitmapContainer.y) / Math.PI * 180;
            }
        }
    }
}

作者: dsc0001   发布时间: 2011-07-31

http://bbs.9ria.com/thread-88903-1-1.html

作者: flash023   发布时间: 2011-07-31

嘿嘿, 再次感谢

作者: dsc0001   发布时间: 2011-07-31

本来想自己写, 后来还是用了 TransformTool 感觉自己能力还不够~

作者: dsc0001   发布时间: 2011-07-31

我以前自己也写过,用到了一些项目中
后来发现  TransformTool 更好用,更易用

作者: flash023   发布时间: 2011-07-31