flex实现拖动图片(参考过来的)
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="800" minHeight="600">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.MoveEvent;
private var oldX,oldY:Number;
private function onMouseMove(event:MouseEvent):void{
lbl.text = "Local (x,y):" + event.localX.toString() + ","+event.localX.toString();
lbl2.text = "Stage (x,y):" + event.stageX.toString() + ","+event.stageY.toString();
lbl3.text="图片位置(x,y):"+img.x+","+img.y;
if(event.buttonDown){
var x:Number = event.stageX - oldX;
var y:Number = event.stageY - oldY;
oldX = event.stageX;
oldY = event.stageY;
//限制图片水平方向的移动
if(img.x<=0){
if(img.x>=(panel.width-img.width)){
imgMove(x,y);
}else{
img.x=(panel.width-img.width);
}
}else{
img.x=0;
}
//限制图片竖直方向的移动
if(img.y<=0){
if(img.y>=(panel.height-img.height)){
imgMove(x,y);
}else{
img.y=(panel.height-img.height);
}
}else{
img.y=0;
imgMove(x,y);
}
}
}
private function imgMove(x:Number,y:Number):void{
img.move(img.x+x,img.y+y);
}
private function onMouseDown(event:MouseEvent):void{
oldX = event.stageX;
oldY = event.stageY;
}
]]>
</fx:Script>
<mx:Label x="10" y="10" text="" id="lbl"/>
<mx:Label x="10" y="27" text="" id="lbl2"/>
<mx:Panel x="14.5" y="55" width="400" height="300" id="panel" layout="absolute"
horizontalScrollPolicy="off" verticalScrollPolicy="off">
<mx:Image id="img" x="0" y="0" source="file:///F:/ip.JPG"
mouseMove="onMouseMove(event)"
mouseDown="onMouseDown(event)"/>
</mx:Panel>
<s:Label id="lbl3" x="310" y="19"/>
</s:Application>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="800" minHeight="600">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.MoveEvent;
private var oldX,oldY:Number;
private function onMouseMove(event:MouseEvent):void{
lbl.text = "Local (x,y):" + event.localX.toString() + ","+event.localX.toString();
lbl2.text = "Stage (x,y):" + event.stageX.toString() + ","+event.stageY.toString();
lbl3.text="图片位置(x,y):"+img.x+","+img.y;
if(event.buttonDown){
var x:Number = event.stageX - oldX;
var y:Number = event.stageY - oldY;
oldX = event.stageX;
oldY = event.stageY;
//限制图片水平方向的移动
if(img.x<=0){
if(img.x>=(panel.width-img.width)){
imgMove(x,y);
}else{
img.x=(panel.width-img.width);
}
}else{
img.x=0;
}
//限制图片竖直方向的移动
if(img.y<=0){
if(img.y>=(panel.height-img.height)){
imgMove(x,y);
}else{
img.y=(panel.height-img.height);
}
}else{
img.y=0;
imgMove(x,y);
}
}
}
private function imgMove(x:Number,y:Number):void{
img.move(img.x+x,img.y+y);
}
private function onMouseDown(event:MouseEvent):void{
oldX = event.stageX;
oldY = event.stageY;
}
]]>
</fx:Script>
<mx:Label x="10" y="10" text="" id="lbl"/>
<mx:Label x="10" y="27" text="" id="lbl2"/>
<mx:Panel x="14.5" y="55" width="400" height="300" id="panel" layout="absolute"
horizontalScrollPolicy="off" verticalScrollPolicy="off">
<mx:Image id="img" x="0" y="0" source="file:///F:/ip.JPG"
mouseMove="onMouseMove(event)"
mouseDown="onMouseDown(event)"/>
</mx:Panel>
<s:Label id="lbl3" x="310" y="19"/>
</s:Application>
...全文
相关推荐
FLEX 容器内多个图片分别拖动
FLEX 容器内多个图片分别拖动,其中的要点是,使用getObjectsUnderPoint来获取当前鼠标指针下的对象,得到的是一个多个对象的数组,需要用objects[i] is ImageSkin来判断是否是图片,如果是图片,则转换成拖动的图,比如:dragInitiator = objects[i].parent as Image ; 参考代码,flex4.5下测试通过。
flex自定义组件介绍
flex4.5自定义组件介绍,自定义组件前提条件
Flex 图像裁剪、剪切
NULL 博文链接:https://wuxiubing.iteye.com/blog/1797292
flex WebMacAir云桌面特效源代码
flex WebMacAir云桌面特效源代码
Vue2图片拖拽缩放实现[代码]
本文详细介绍了如何在Vue2中实现图片的拖拽、放大和缩小功能。通过HTML模板定义了图片容器和关闭按钮,使用JavaScript处理鼠标事件来实现拖拽功能,并通过鼠标滚轮事件控制图片的缩放比例。CSS部分采用了flex布局来确保图片在容器中的居中显示,并设置了transform-origin属性以保证缩放时以中心点为基准。整体实现思路清晰,代码结构完整,适合需要在前端项目中添加图片交互功能的开发者参考。


