鼠标拖拽伸缩
时间:2010-12-23
来源:互联网
请问各位高手,对影片剪辑(如管子)进行拖拽,怎么实现一边拖拽一边管子的一端随着伸缩啊
作者: xiaoluo44 发布时间: 2010-12-23
这是N久以前做的一个旋转的示例。
改成拉伸也可以 :
T.swf (1.57 KB)
改成拉伸也可以 :
复制内容到剪贴板
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFormat;
/**
* ...
* @author FLASH023
*/
public class Main extends Sprite
{
private var now_box:TextBox;
public function Main():void {
var _p:int = 12;
while (_p--) {
var _box:TextBox = new TextBox ();
_box.x = 100+Math.random () * 550;
_box.y = 100 + Math.random () * 400;
_box.rotationZ = 0;
_box.addEventListener (MouseEvent.CLICK, onClick);
addChild (_box);
}
}
private function onClick(_evt:MouseEvent ):void {
var _box:TextBox = _evt.target as TextBox;
if (_box) {
now_box&&(now_box.focus = false);
_box.focus = true;
now_box = _box;
}
}
}
}
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
import flash.events.MouseEvent;
class TextBox extends Sprite {
private var r_btn:Sprite;
private var p_txt:TextField;
public function TextBox():void {
p_txt = addChild (new TextField) as TextField ;
p_txt.autoSize = "left";
p_txt.text = "测试文本";
p_txt.selectable = false;
p_txt.mouseEnabled = false;
p_txt.x = width * -.5;
p_txt.y = height * -.5;
p_txt.borderColor = 0x333399;
r_btn = addChild (new Sprite) as Sprite;
r_btn.graphics.beginFill (0x333399,.6);
r_btn.graphics.drawCircle (0, 0, 5);
r_btn.x = p_txt.width * .5;
r_btn.y = -p_txt.height * .5;
r_btn.visible = false;
r_btn.buttonMode = true;
addEventListener (MouseEvent.MOUSE_DOWN, mouseDown );
}
private function mouseDown(_evt:MouseEvent ):void {
if (_evt.target != r_btn) {
startDrag ();
}else{
addEventListener (Event.ENTER_FRAME, startRing );
}
stage.addEventListener (MouseEvent.MOUSE_UP, mouseUp);
}
private function startRing(_evt:Event):void {
//rotationZ = Math.atan2 (parent.mouseY - y, parent.mouseX - x) / Math.PI * 180;
width=Math.abs (parent.mouseX - x)*2;
}
private function mouseUp(_evt:MouseEvent ):void {
stopDrag();
removeEventListener (Event.ENTER_FRAME, startRing );
stage.removeEventListener (MouseEvent.MOUSE_UP, mouseUp);
}
public function set focus(_b:Boolean):void {
r_btn.visible = _b;
p_txt.border = _b;
}
}
先点击选中文本,再拖那个小点
代码:
package{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFormat;
/**
* ...
* @author FLASH023
*/
public class Main extends Sprite
{
private var now_box:TextBox;
public function Main():void {
var _p:int = 12;
while (_p--) {
var _box:TextBox = new TextBox ();
_box.x = 100+Math.random () * 550;
_box.y = 100 + Math.random () * 400;
_box.rotationZ = 0;
_box.addEventListener (MouseEvent.CLICK, onClick);
addChild (_box);
}
}
private function onClick(_evt:MouseEvent ):void {
var _box:TextBox = _evt.target as TextBox;
if (_box) {
now_box&&(now_box.focus = false);
_box.focus = true;
now_box = _box;
}
}
}
}
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
import flash.events.MouseEvent;
class TextBox extends Sprite {
private var r_btn:Sprite;
private var p_txt:TextField;
public function TextBox():void {
p_txt = addChild (new TextField) as TextField ;
p_txt.autoSize = "left";
p_txt.text = "测试文本";
p_txt.selectable = false;
p_txt.mouseEnabled = false;
p_txt.x = width * -.5;
p_txt.y = height * -.5;
p_txt.borderColor = 0x333399;
r_btn = addChild (new Sprite) as Sprite;
r_btn.graphics.beginFill (0x333399,.6);
r_btn.graphics.drawCircle (0, 0, 5);
r_btn.x = p_txt.width * .5;
r_btn.y = -p_txt.height * .5;
r_btn.visible = false;
r_btn.buttonMode = true;
addEventListener (MouseEvent.MOUSE_DOWN, mouseDown );
}
private function mouseDown(_evt:MouseEvent ):void {
if (_evt.target != r_btn) {
startDrag ();
}else{
addEventListener (Event.ENTER_FRAME, startRing );
}
stage.addEventListener (MouseEvent.MOUSE_UP, mouseUp);
}
private function startRing(_evt:Event):void {
//rotationZ = Math.atan2 (parent.mouseY - y, parent.mouseX - x) / Math.PI * 180;
width=Math.abs (parent.mouseX - x)*2;
}
private function mouseUp(_evt:MouseEvent ):void {
stopDrag();
removeEventListener (Event.ENTER_FRAME, startRing );
stage.removeEventListener (MouseEvent.MOUSE_UP, mouseUp);
}
public function set focus(_b:Boolean):void {
r_btn.visible = _b;
p_txt.border = _b;
}
}
附件

2010-12-23 15:32, 下载次数: 1
作者: flash023 发布时间: 2010-12-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28