`
seya
  • 浏览: 360578 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

flex中图片的拖拽实现

阅读更多

直接上代码:

<code>

<?xml version="1.0"?>
<!-- dragdrop\DandDImageCopyMove.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="horizontal">

    <mx:Script>
        <![CDATA[
            import mx.managers.DragManager;
            import mx.core.DragSource;
            import mx.events.DragEvent;
            import flash.events.MouseEvent;

            // Embed icon image.
            [Embed(source='../assets/r1.jpg')]
            public var globeImage:Class;

            // The mouseMove event handler for the Image control
            // functioning as the drag initiator.
            private function mouseOverHandler(event:MouseEvent):void
            {               
                var dragInitiator:Image=Image(event.currentTarget);
                var ds:DragSource = new DragSource();
                ds.addData(dragInitiator, "img");              

                // The drag manager uses the image as the drag proxy
                // and sets the alpha to 1.0 (opaque),
                // so it appears to be dragged across the canvas.
                var imageProxy:Image = new Image();
                imageProxy.source = globeImage;
                imageProxy.height=100;
                imageProxy.width=100;               
                DragManager.doDrag(dragInitiator, ds, event,
                    imageProxy, -15, -15, 1.00);
            }
           
            // The dragEnter event handler for the Canvas container
            // functioning as the drop target.
            private function dragEnterHandler(event:DragEvent):void {
              if (event.dragSource.hasFormat("img"))
                DragManager.acceptDragDrop(Canvas(event.currentTarget));
            }
           
            // The dragOver event handler for the Canvas container
            // sets the type of drag-and-drop
            // operation as either copy or move.
            // This information is then used in the
            // dragComplete event handler for the source Canvas container.
            private function dragOverHandler(event:DragEvent):void
            {
                if (event.dragSource.hasFormat("img")) {
                    if (event.ctrlKey) {                   
                        DragManager.showFeedback(DragManager.COPY);
                        return;
                    }
                    else {
                        DragManager.showFeedback(DragManager.MOVE);
                        return;
                    }
                }

                DragManager.showFeedback(DragManager.NONE);
            }
           
            // The dragDrop event handler for the Canvas container
            // sets the Image control's position by
            // "dropping" it in its new location.
            private function dragDropHandler(event:DragEvent):void {
              if (event.dragSource.hasFormat("img")) {
                  var draggedImage:Image =
                    event.dragSource.dataForFormat('img') as Image;
                  var dropCanvas:Canvas = event.currentTarget as Canvas;
             
                  // Since this is a copy, create a new object to
                  // add to the drop target.
                  var newImage:Image=new Image();
                  newImage.source = draggedImage.source;
                  newImage.x = dropCanvas.mouseX;
                  newImage.y = dropCanvas.mouseY;
                  dropCanvas.addChild(newImage);
              }
            }
           
            // The dragComplete event handler for the source Canvas container
            // determines if this was a copy or move.
            // If a move, remove the dragged image from the Canvas.
            private function dragCompleteHandler(event:DragEvent):void {
                var draggedImage:Image =
                    event.dragInitiator as Image;
                var dragInitCanvas:Canvas =
                    event.dragInitiator.parent as Canvas;

                if (event.action == DragManager.MOVE)
                    dragInitCanvas.removeChild(draggedImage);
            }           
        ]]>
    </mx:Script>

    <!-- Canvas holding the Image control that is the drag initiator. -->
    <mx:Canvas
        width="250" height="500" 
        borderStyle="solid"
        backgroundColor="#DDDDDD">
       
    <!-- The Image control is the drag initiator and the drag proxy. -->
        <mx:Image id="myimg"
            source="@Embed(source='../assets/r1.jpg')"
            mouseMove="mouseOverHandler(event);"
            dragComplete="dragCompleteHandler(event);"/>
    </mx:Canvas>

    <!-- This Canvas is the drop target. -->
    <mx:Canvas
        width="250" height="500" 
        borderStyle="solid"
        backgroundColor="#DDDDDD"
        dragEnter="dragEnterHandler(event);"
        dragOver="dragOverHandler(event);"
        dragDrop="dragDropHandler(event);">       
    </mx:Canvas>
</mx:Application>

</code>

分享到:
评论

相关推荐

    flex实现的拖拽控件

    对于图片拖拽,我们需要将图片转换为BitmapData,然后以数据的形式传递给DragManager。例如: ```actionscript var bitmapData:BitmapData = new BitmapData(image.width, image.height, true, 0); bitmapData.draw...

    Flex4实现拖拽功能

    在本主题中,我们将深入探讨如何在Flex4中实现图片的拖放功能,包括两种模式:拖动图片不删除原图和拖动图片后删除原图。 首先,我们需要了解Flex4中的DragManager类,它是实现拖放操作的核心。DragManager提供了...

    flex 图片画线,拖动

    在IT行业中,尤其是在Web开发领域,"flex 图片画线,拖动"是一个常见的交互功能需求,用于增强用户体验。这个功能通常涉及到HTML5、CSS3和JavaScript等技术,特别是Flex布局和SVG图形技术。让我们详细探讨一下这个...

    Flex图片预览功能的实现

    一、Flex图片预览组件基础 在Flex中,我们可以利用MX或Spark组件库中的Image组件来展示单张图片。然而,为了实现多图预览和滚动效果,我们需要自定义组件或者使用现有的第三方库,如在本例中的"photocoverflowLayout...

    Flex 图片旋转 缩放 拖动 特效

    在Flex开发中,图片的旋转、缩放和拖动功能是常见的交互效果,尤其是在构建富互联网应用程序(RIA)时。Flex作为一个基于ActionScript 3.0的开源框架,提供了强大的图形处理和用户交互能力,使得实现这些特效成为...

    flex 两个图片播放小程序

    在这个“flex 两个图片播放小程序”项目中,我们可以看到它被用来创建一个图片浏览应用,支持图片的放大和缩小功能,提供了用户友好的交互体验。接下来,我们将深入探讨Flex在图片浏览中的应用及其关键技术。 首先...

    flex实现对图片的旋转与拖动

    flex实现对图片的旋转与拖动,简单的小例子,希望对大家有所帮助

    Flex 拖拽图片代码

    本文主要解析一份关于Flex 3.0中实现图片拖拽功能的代码。通过详细分析这份代码,可以帮助读者更好地理解Flex中的拖拽机制以及如何在实际项目中应用这一功能。 #### 二、Flex与拖拽功能简介 Flex是一款用于构建高...

    flex鼠标拖动图片

    在本文中,我们将深入探讨如何在Flex环境中实现鼠标拖动图片的功能,并在鼠标松开时停止拖动。Flex是一种基于ActionScript 3.0的开放源代码框架,用于构建富互联网应用程序(RIAs)。它提供了丰富的用户界面组件库,...

    FLEX 图片浏览功能可以轻松实现图片浏览

    描述中的"可以实现特效浏览"进一步强调了Flex3在图片展示方面的特色。这可能包括但不限于以下特效: 1. **平滑缩放**:用户可以通过手势或滑动条来放大或缩小图片,而图片会以平滑的方式调整大小,保持清晰度。 2. ...

    flex剪裁图片demo

    "flex剪裁图片demo"是一个利用CSS Flexbox布局技术来实现图片剪裁功能的示例。下面将详细介绍如何使用Flexbox来创建一个可调整大小的图片剪裁框。 **一、Flexbox简介** Flexbox(弹性盒布局)是CSS3中的一种布局...

    flex 图片查看器

    在Flex图片查看器中,"zoomin" 和 "zoomout" 是两个关键功能,它们允许用户对图片进行放大和缩小操作。这一特性在很多应用场景中都非常实用,比如在线看图、产品细节展示或者图像分析等。Zoomin功能允许用户点击或...

    一个Flex鼠标拖拽图片的简单例子(附源码)

    - 开发完成后,通过Flex Builder或命令行工具编译并运行应用,检查图片拖拽功能是否正常工作。 - 调试过程中,可以使用Flex的内置调试器或集成开发环境(IDE)提供的工具来追踪代码执行和事件流。 综上所述,这个...

    Flex 简单的图片浏览

    总结来说,创建一个Flex图片浏览应用,需要掌握Flex的组件系统、事件处理机制以及图形渲染的基础知识。通过结合MXML和ActionScript,我们可以构建出一个具有缩放和平移功能的图片浏览器,提供用户友好的体验。在实际...

    Flex裁剪图片

    通过以上步骤,我们可以构建一个功能完备的Flex图片裁剪应用。在实际开发中,还需要考虑性能优化、错误处理、兼容性等问题,确保应用在各种环境下的稳定运行。同时,对于源码的学习和分析,可以帮助开发者更深入理解...

    FLEX 图片上传管理器

    综上所述,"FLEX 图片上传管理器"是一个高效、易用的图片管理工具,它融合了批量操作、缩略图展示、预览、回收站管理、别名设置以及基于Servlet的后台上传等功能,充分考虑到了用户在图片管理和上传过程中的实际需求...

    flex 图片编辑器

    在开发Flex图片编辑器时,主要涉及以下知识点: 1. **Flex SDK**:Flex SDK是开发Flex应用程序的基础,包括ActionScript编译器和MXML编译器,以及用于构建、测试和部署应用的工具。开发者需要下载并安装SDK来开始...

    flex经典列子(实现对图片的剪切)

    这个经典的Flex实例主要涉及到的是如何使用Flex来实现图片的剪切功能,这在Web应用中常常用于图像编辑或个性化设计场景。以下是对Flex中实现图片剪切的详细解释。 1. **Flex基础知识**: Flex基于ActionScript 3.0...

    FLEX 容器内多个图片分别拖动

    在Adobe Flex框架中实现多个图片的独立拖动是一项实用且常见的功能,特别是在开发具有交互性的应用程序时。本文将详细解析如何使用Flex实现这一功能,并深入探讨其背后的原理和技术细节。 #### 核心概念与技术 1. ...

    flex 图片缩放移动组件

    以上就是创建Flex图片缩放移动组件的主要步骤和技术要点。通过熟练掌握这些知识,开发者可以构建出具有交互性、可扩展性的图像操作界面,提升用户体验。在实际应用中,可能还需要考虑触摸设备的支持、多线程优化、...

Global site tag (gtag.js) - Google Analytics