用户名: 密码: 验证码: QQ--程序群:31736530 动画群:38836599
闪无忧
 
首 页 业界新闻 业界杂谈 Flash教程 Flash源码 Flash图书 Flash酷站 Flex & AIR 供求信息
   本栏目通告:   请大家多多关注[Flex应用案例],更希望大家[推荐好的案例]给我们
当前位置 :首页>Flex-AIR>Flex资料>列表

flex拖动-装备栏的简单实现

[来源:http://oliwen.blog.163.com/blog/static/38057532200 | 作者:oliwen | 时间:2008-06-04 | 点击:  | 收藏本文  【 】]

代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()" xmlns:ns1="com.flexspy.imp.*">
 <mx:Script>
     <![CDATA[
      import mx.containers.Canvas;
      import mx.controls.Image;
      import test.GridImg;
         import mx.events.DragEvent;
         import mx.managers.DragManager;
         import mx.core.DragSource;
        
         private var tolNum:uint    = 20;
         private var xNum:uint      = 5;
         private var xdis:uint      = 15;
         private var ydis:uint      = 15;
        
         [Embed(source='pic/1.jpg')]
         [Bindable]
         private var defIcon:Class;
         private var IconImgArr:Array = [null,defIcon,null,null,null,null,defIcon,defIcon];
         private var targetImage:Image;
         private var imgArr:Array     = new Array;
         private var bool:Boolean     = false;
        
         private function initApp():void
         {
          var k:uint  = 0;
    var kk:uint = 0;
          for(var i:uint=0;i < tolNum; i++)
    {
          var gridImg:GridImg  = new GridImg;
          imgArr.push(gridImg);
          this.addChild(gridImg)
          
          if(IconImgArr[i] != null)
           gridImg.img.source = IconImgArr[i];
          if(i%xNum == 0)
          {
           kk=0;
           k++;
           gridImg.x  = 0;
           gridImg.y += k*(gridImg.height + ydis);
          }
          else
          {
           kk++;
           gridImg.x += kk*(gridImg.width + xdis);
           gridImg.y += k*(gridImg.height + ydis); 
         }
         
         //注册事件
         if(imgArr[i].img.source == null)
         {
          imgArr[i].addEventListener(DragEvent.DRAG_ENTER,imgdrop_enter);
          imgArr[i].addEventListener(DragEvent.DRAG_DROP,imgdrop_drop);
          imgArr[i].addEventListener(DragEvent.DRAG_EXIT,imgdrop_exit);
         }
         else if(imgArr[i].img.source != null)
         {
          imgArr[i].addEventListener(MouseEvent.MOUSE_DOWN, mouse_down);
         }
    }
         }
        
         //按下
         private function mouse_down(e:MouseEvent):void
         {
             targetImage = Image(e.currentTarget.img);
            
             var dragProxy:Image = new Image();
                dragProxy.source    = targetImage.source;
                dragProxy.width     = targetImage.width;
                dragProxy.height    = targetImage.height;

             var dataObj:Object = new Object();
             dataObj.source = targetImage.source;
             dataObj.width  = targetImage.width;
             dataObj.height = targetImage.height;
             dataObj.target = e.currentTarget;
            
             var ds:DragSource = new DragSource();
             ds.addData(dataObj, "data");
             DragManager.doDrag(targetImage, ds,e,dragProxy);
         }
        
         //移进目标
         private function imgdrop_enter(e:DragEvent):void
         {
             DragManager.acceptDragDrop(Canvas(e.currentTarget));
             e.currentTarget.mouseOverFun();
         }
        
         //移出目标
         private function imgdrop_exit(e:DragEvent):void
         {
          e.currentTarget.mouseOutFun();
         }
        
         //拖动到对应目标结束事件
         private function imgdrop_drop(e:DragEvent):void
         {
          var dataObj:Object = e.dragSource.dataForFormat("data");
          e.currentTarget.img.source = dataObj.source;
          targetImage.source         = null;
          
          e.currentTarget.removeEventListener(DragEvent.DRAG_ENTER,imgdrop_enter);
       e.currentTarget.removeEventListener(DragEvent.DRAG_DROP,imgdrop_drop);
          e.currentTarget.addEventListener(MouseEvent.MOUSE_DOWN, mouse_down);
          
          dataObj.target.removeEventListener(MouseEvent.MOUSE_DOWN, mouse_down);
             dataObj.target.addEventListener(DragEvent.DRAG_ENTER,imgdrop_enter);
       dataObj.target.addEventListener(DragEvent.DRAG_DROP,imgdrop_drop);
      
       trace("装备放置成功!");
         }
     ]]>
 </mx:Script>
</mx:Application>

///////////////名:GridImg

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="32" height="32" backgroundColor="#F8F2F2"
 mouseOver="mouseOverFun()" mouseOut="mouseOutFun()" >
 <mx:Script>
  <![CDATA[
   private var filterOver : GlowFilter = new GlowFilter(0xdddddd,1,10,10,2,1);
   public var dragImg:Image;
   
   public function mouseOverFun():void
   {
    this.filters = [filterOver];
   }
   
   public function mouseOutFun():void
   {
    this.filters = null;
   }
  ]]>
 </mx:Script>
 
 <mx:Image id="img"  width="100%" height="100%" />
</mx:Canvas>
文章如果有错误或者缺少文件,请发邮件提交给我们
上一篇:Flex的tree中自定义所有节点图标
下一篇:Flex3 Cookbook电子书下载
Tags:    
>>> 最新评论:(共有 0 位网友发表了评论)      查看所有评论
  发表评论
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
·本站发布内容均为客观表达作者观点,不代表闪无忧立场,请勿攻击和漫骂
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
  Flex及AIR分类
  Flex资料   Flex动态
  Flex案例   Flex源码
  AIR资讯
  Flex相关
  寻找Flex工作机会
  发布Flex工作机会
  相关文章
·超酷的Flex Efflex库分享
·aswing的使用心得
·自定义itemRenderer引发的诡异问
·AutoQueryTextInput Flex组件介
·NetBeans支持Flex 开发插件
·如何安装flex builder for linux
·flex creationComplete事件的一
·Flex 3D-Album Component
·Eclipse 3.4上使用FlexBuilder介
·Getting Started With Adobe Fle
  热门文章
·Flex 3 AdvancedDataGrid的使用(第二
·用Adobe Flex 2和Java创建富Internet
·Flex中文官方帮助教程下载
·FLEX地图应用教程之一
·如何从零开始编写一个flex组件
·用Flex 3做AIR版html编辑器
·学习Flex几个值得研究的例程代码
·Flex 入门教程
·Flex 3 dvancedDataGrid的使用(第一部
·如何自定义Flex的loading画面
·基于Flex的在线图片编辑器
关于我们 - 免责声明 - 网站地图 - 商务服务 - 联系我们 - RSS地图
©CopyRight 2006-2008, 5UFlash.COM, Inc. All Rights Reserved
鲁ICP备06034971号