用户名: 密码: 验证码: QQ--程序群:31736530 动画群:38836599
闪无忧
 
首 页 业界新闻 业界杂谈 Flash教程 Flash源码 Flash图书 Flash酷站 Flex & AIR 供求信息
   本栏目通告:   有意向写收费精品教程的朋友,请联系本站合作
当前位置 :首页>flash教程>Flash应用开发>列表

Flash拖拽问题通用解决代码(含as2和as3)

[来源:蓝色理想 | 作者:网络整理 | 时间:2008-05-03 | 点击:  | 收藏本文  【 】]

 

AS2.0

程序代码 程序代码
var target_array = [a_mc, b_mc, c_mc]; 
var to_where_obj = {}; 
var initial_position_obj = {}; 
  
var destination_array = [x1_mc, x2_mc, x3_mc]; 
var is_occupied_obj = {}; 
  
for (var i = 0; i < target_array.length; i++) { 
    var _mc = target_array[i]; 
    initial_position_obj[_mc._name] = {_x:_mc._x, _y:_mc._y}; 
    
    _mc.onPress = function() 
    { 
        delete is_occupied_obj[to_where_obj[this._name]]; 
        delete to_where_obj[this._name]; 
        this.startDrag(); 
        this.onMouseMove = function() 
        { 
            updateAfterEvent(); 
        }; 
    }; 
    _mc.onRelease = _mc.onReleaseOutside = function () 
    { 
        var is_hit; 
        for (var i = 0; i < destination_array.length; i++) { 
            var _mc = destination_array[i]; 
            if (!is_occupied_obj[_mc._name] && this.hitTest(_mc)) { 
                is_occupied_obj[_mc._name] = this; 
                to_where_obj[this._name] = _mc._name; 
                this._x = _mc._x; 
                this._y = _mc._y; 
                is_hit = true; 
            } 
        } 
        if (!is_hit) { 
            this._x = initial_position_obj[this._name]._x; 
            this._y = initial_position_obj[this._name]._y; 
        } 
        stopDrag(); 
        delete this.onMouseMove; 
        
    }; 
}




AS3.0

程序代码 程序代码
var target_array:Array = [a_mc, b_mc, c_mc]; 
var to_where_obj:Object = new Object(); 
var initial_position_obj:Object = new Object(); 
  
var destination_array:Array = [x1_mc, x2_mc, x3_mc]; 
var is_occupied_obj:Object = new Object(); 
  
for (var i:Number = 0; i < target_array.length; i++) { 
    var _mc = target_array[i]; 
    initial_position_obj[_mc.name] = {x:_mc.x, y:_mc.y}; 
    _mc.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown); 
    _mc.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); 
    _mc.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); 

function mouseDown(event:MouseEvent):void 

    var _mc = event.target; 
    delete is_occupied_obj[to_where_obj[_mc.name]]; 
    delete to_where_obj[_mc.name]; 
    _mc.startDrag(); 

function mouseReleased(event:MouseEvent):void 

    var is_hit:Boolean = false; 
    var des_mc:MovieClip = new MovieClip(); 
    var tar_mc = event.target; 
    tar_mc.stopDrag(); 
    for (var i:Number = 0; i < destination_array.length; i++) { 
        des_mc = destination_array[i]; 
        if (!is_occupied_obj[des_mc.name] && tar_mc.hitTestObject(des_mc)) { 
            is_occupied_obj[des_mc.name] = tar_mc; 
            to_where_obj[tar_mc.name] = des_mc.name; 
            tar_mc.x = des_mc.x; 
            tar_mc.y = des_mc.y; 
            is_hit = true; 
        } 
    } 
    if (!is_hit) { 
        tar_mc.x = initial_position_obj[tar_mc.name].x; 
        tar_mc.y = initial_position_obj[tar_mc.name].y; 
    } 

function mouseMoveHandler(event:MouseEvent):void 

    event.updateAfterEvent(); 
}



源文件下载

文章如果有错误或者缺少文件,请发邮件提交给我们
上一篇:flash SWFUpload debug之旅
下一篇:flash打造抽奖类小游戏(不可重复选择奖项)
Tags:    
>>> 最新评论:(共有 0 位网友发表了评论)      查看所有评论
  发表评论
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
·本站发布内容均为客观表达作者观点,不代表闪无忧立场,请勿攻击和漫骂
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
  教程分类
  基础操作   动画特效
  应用开发   组件学习
  As程序   动画教程
  Flash cs3   AS 3.0
  FCS/FMS教程   Loading教程
  Flash与Web   Flash教程连载
  相关文章
·FLASH加载XML:可分页相册的制作
·as2进行单个图片角色动作化处理
·Flash Plaery10 Astro 滤镜初体
·Flash Player 10 Astro API新增
·Flash Player 10 Drawing API
·Flash导出SWC&Flex使用SWC
·FLASH推箱子游戏分析(三)推动
·flash打造抽奖类小游戏(不可重
·Flash拖拽问题通用解决代码(含as
·flash SWFUpload debug之旅
  热门文章
·Flash进度条的制作详细讲解(组图)
·flash幻灯片网页效果
·Flash打造简单的飘雪动画视觉特效
·Flash旋转拖尾文字效果的制作教程
·flash水影效果字
·全Flash动画网站实现的基础教学
·超酷flash光晕移动效果
·flash春雷闪电效果
·Flex 3 AdvancedDataGrid的使用(第二
·Flash制作大雪纷飞效果动画
·即拷即用的loading代码
关于我们 - 免责声明 - 网站地图 - 商务服务 - 联系我们 - RSS地图
©CopyRight 2006-2008, 5UFlash.COM, Inc. All Rights Reserved
鲁ICP备06034971号