flex图片拖拽

/**
 * 图片拖拽
 */
 public function dragHandler(event:MouseEvent):void{
 	 //CurrentTarget指定要实现拖拽事件的初始化目标
    var dragInitiator:Image=event.currentTarget as Image;
 	// 定义拖拽挂载数据源
	var dragSource:DragSource = new DragSource();
	//向对象添加数据
	dragSource.addData(dragInitiator.source,"img");
	//创建一个拖拽对象的代理作为拷贝
    var dragProxy:Image=new Image();
    dragProxy.source=event.currentTarget.source;
    //使用DragManager静态方法doDrag开始拖拽
    DragManager.doDrag(dragInitiator,dragSource,event,dragProxy);
 }
 private function dragEnterHandler(event:DragEvent):void{
       var dropTarget:Image=event.currentTarget as Image;
       DragManager.acceptDragDrop(dropTarget);
      }
private function dragDropHandler(event:DragEvent):void{
	img_main.source=event.dragSource.dataForFormat("img");
}

 

<!-- 拖拽 -->
	<s:Panel x="10" y="285" width="250" height="204" baseColor="#EF5D5D">
		<mx:Image x="55" y="13" width="131" height="132" 
			id="img_main" source="image/mt.jpg" 
			dragDrop="dragDropHandler(event)" dragEnter="dragEnterHandler(event)"/>
	</s:Panel>
	<s:Group x="268" y="289" width="200" height="200">
		<mx:Image x="28" y="36" width="60" height="78" id="img_1" source="image/java.jpg" 
			mouseMove="dragHandler(event)"/>
		<mx:Image x="111" y="39" width="73" height="75" id="img_2" source="image/mt.jpg" 
			mouseMove="dragHandler(event)"/>
	</s:Group>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是一个简单的 Vue.js 实现图片拖拽排序的代码示例: HTML 部分: ``` <template> <div> <ul> <li v-for="(item, index) in items" :key="index" @dragstart="dragStart(index)" @dragend="dragEnd" draggable="true"> <img :src="item" /> </li> </ul> </div> </template> ``` JS 部分: ``` <script> export default { data() { return { items: [ 'https://via.placeholder.com/100x100', 'https://via.placeholder.com/100x100', 'https://via.placeholder.com/100x100' ], currentIndex: null } }, methods: { dragStart(index) { this.currentIndex = index }, dragEnd() { this.currentIndex = null }, drop(toIndex) { const currentItem = this.items[this.currentIndex] this.items.splice(this.currentIndex, 1) this.items.splice(toIndex, 0, currentItem) } } } </script> ``` 该代码实现了一个图片列表,每个图片都可以通过拖拽进行排序。在 `dragstart` 事件中记录当前图片的索引,在 `dragend` 事件中清空当前图片的索引,在 `drop` 事件中改变图片列表的顺序。 该代码仅提供一个示例,在实际开发中可能需要根据需求进行修改和完善。 ### 回答2: 图片拖拽排序是一种常见的前端交互效果,可以让用户自由拖动图片进行排序。下面是一个用Vue实现的图片拖拽排序的代码示例: ```html <template> <div> <h2>图片拖拽排序</h2> <div class="image-list"> <div class="image-item" v-for="(image, index) in images" :key="image.id" :style="{ order: image.order }" draggable="true" @dragstart="onDragStart(index)" @dragover="onDragOver(index)" @drop="onDrop(index)" > <img :src="image.url" alt="image" /> </div> </div> </div> </template> <script> export default { data() { return { images: [ { id: 1, url: 'image1.jpg', order: 1 }, { id: 2, url: 'image2.jpg', order: 2 }, { id: 3, url: 'image3.jpg', order: 3 }, { id: 4, url: 'image4.jpg', order: 4 }, ], draggingIndex: null, dropIndex: null, }; }, methods: { onDragStart(index) { this.draggingIndex = index; }, onDragOver(index) { event.preventDefault(); this.dropIndex = index; }, onDrop() { const draggingImage = this.images[this.draggingIndex]; const dropImage = this.images[this.dropIndex]; this.images.splice(this.draggingIndex, 1); this.images.splice(this.dropIndex, 0, draggingImage); this.draggingIndex = null; this.dropIndex = null; }, }, }; </script> <style scoped> .image-list { display: flex; flex-wrap: wrap; } .image-item { width: 200px; height: 200px; margin: 10px; } img { width: 100%; height: 100%; object-fit: cover; } </style> ``` 上述代码中,images数组存储了要展示的图片信息,每个图片对象包含id、url和order属性。在组件的模板中,通过v-for指令遍历images数组并渲染图片元素。每个图片元素设置draggable="true",并监听相关的drag事件。onDragStart方法记录拖拽开始时的图片索引,onDragOver方法阻止默认行为并记录拖拽结束时的目标位置索引,onDrop方法根据目标位置索引重新排序images数组,并重置拖拽开始和结束的索引。 最终,用户可以通过拖拽图片实现排序,拖拽过程中会展示视觉上的交互效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值