11RIA 闪客社区 - 最赞 Animate Flash 论坛

搜索
查看: 2351|回复: 4
上一主题 下一主题

[AS 开发 & 技巧] AS3 在不规则区域内拖动 带源码

[复制链接] TA的其它主题
发表于 2019-1-26 11:36:35 | 显示全部楼层 |阅读模式

【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 cdt 于 2019-1-26 16:53 编辑

原理:
1、确保拖动对象在鼠标点上,如果不确定会出现瞬间移动的感觉
2、确保触碰到非通行区域,跳回到没触碰的点
[Actionscript3] 纯文本查看 复制代码
import flash.events.MouseEvent;
import flash.events.Event;
 
car.buttonMode = true;
car.addEventListener(MouseEvent.MOUSE_DOWN,downH);
 
var diffX:Number, diffY:Number;
var canMove:Boolean = false;
 
function downH(e){
    diffX = car.x - mouseX;
    diffY = car.y - mouseY;
    canMove = true;
    stage.addEventListener(MouseEvent.MOUSE_MOVE,moveH);
    stage.addEventListener(MouseEvent.MOUSE_UP,upH);
    addEventListener(Event.ENTER_FRAME, onEnter);
}
 
function upH(E){
    stage.removeEventListener(MouseEvent.MOUSE_UP,upH);
    stage.removeEventListener(MouseEvent.MOUSE_MOVE,moveH);
    removeEventListener(Event.ENTER_FRAME, onEnter);
}
 
 
//确保在非通行区域可以拖动
function moveH(E){
    var xx = car.x;
    var yy = car.y;
    if (canMove){
        car.x = mouseX + diffX;
        car.y = mouseY + diffY;
    }
    if (HitTest.complexHitTestObject(car,bg)){
        car.x = xx;
        car.y = yy;
    }
}
 
//确保车在鼠标点上
function onEnter(e:Event):void {
    if (car.hitTestPoint(mouseX,mouseY)) {
        if (!canMove) {        
            canMove = true;
            diffX = car.x - mouseX;
            diffY = car.y - mouseY;
        }
    }
    else {
        canMove = false;
    }
}
@最后一批aser  是否@下就有银子,我看到别人都有了。你不能偏心哈

AS3 在不规则区域内拖动.rar

232.42 KB, 下载次数: 5, 下载积分: 银子 -10 , 活跃 1

售价: 20 银子  [记录]

评分

参与人数 2银子 +132 收起 理由
最后一批aser + 66 11RIA 恶意灌水,天罚已至!!!.
TKCB + 66 11RIA 星火燎原,重现燃烧的岁月.

查看全部评分

发表于 2019-1-26 11:42:56 | 显示全部楼层
怎么不上传fla呢,你这个直接复制无法运行的吧
回复

使用道具 举报

 楼主| 发表于 2019-1-26 12:50:44 | 显示全部楼层
TKCB 发表于 2019-1-26 11:42
怎么不上传fla呢,你这个直接复制无法运行的吧

只是给了个思路和关键代码。源文件没了。,很久写的
回复

使用道具 举报

发表于 2019-1-26 14:42:46 | 显示全部楼层
cdt 发表于 2019-1-26 12:50
只是给了个思路和关键代码。源文件没了。,很久写的

那建议你在主题里面写明,,没有源码,只是一个思路~~不然很多新手复制了,然后发现报错了,就以为是个垃圾代码!!
回复

使用道具 举报

 楼主| 发表于 2019-1-26 16:53:59 | 显示全部楼层
TKCB 发表于 2019-1-26 14:42
那建议你在主题里面写明,,没有源码,只是一个思路~~不然很多新手复制了,然后发现报错了,就以为是个垃 ...

好了。弄上去了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)



快速回复 返回顶部 返回列表