MC 旋转的问题
时间:2011-07-31
来源:互联网
点击移动鼠标后 有 BUG 因为鼠标 X,Y 变了, MC 的角度会跳到 鼠标相应的位置, 有什么办法让他不跳吗??
复制内容到剪贴板
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;
}
}
}
}
代码:
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 更好用,更易用
后来发现 TransformTool 更好用,更易用
作者: flash023 发布时间: 2011-07-31
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28