flex图片移动不流畅

discovery10 2010-02-01 10:27:10
我写了一个图片移动,但是移动时图片抖动很厉害,鼠标也会跑出图片
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.controls.Alert;

private var _x:int;
private var _y:int;
private var _tempX:Number;
private var _tempY:Number;
private var isDown:Boolean;
private function init():void {
//can1.addEventListener(MouseEvent.CLICK,moveDown);
isDown = false;
myMove.duration = 100;
//img.addEventListener(MouseEvent.CLICK,mouseClick);
img.addEventListener(MouseEvent.MOUSE_DOWN,mouseDown);
img.addEventListener(MouseEvent.MOUSE_MOVE,mouseMove);
img.addEventListener(MouseEvent.MOUSE_UP,mouseUp);
img.addEventListener(MouseEvent.MOUSE_OUT,mouseOut);
}
private function mouseClick(e:MouseEvent):void {
Alert.show(img.x+'\t'+img.y,'aaa');
}
private function mouseDown(e:MouseEvent):void {
isDown = true;
_tempX = img.mouseX;
_tempY = img.mouseY;
}
private function mouseMove(e:MouseEvent):void {
if(isDown) {
var x:Number = img.mouseX;
var y:Number = img.mouseY;
var isMove:Boolean = true;
if(x-_tempX>0) {
if(img.x+img.width>=can1.width-5) {
isMove = false;
//Alert.show(can1.maxHorizontalScrollPosition+' ','a');
}
} else {
if(img.x<=0) {
isMove = false;
}
}
if(y-_tempY>0) {
if(img.y+img.height>=can1.height-5) {
isMove = false;
}
} else {
if(img.y<=0) {
isMove = false;
}
}
if(isMove) {
myMove.end();
myMove.xBy = x-_tempX;
myMove.yBy = y-_tempY;
_tempX = x;
_tempY = y;
myMove.play();
}
}
}
private function mouseUp(e:MouseEvent):void {
isDown = false;
}
private function mouseOut(e:MouseEvent):void {
isDown = false;
}
]]>
</mx:Script>
<mx:Move id="myMove" target="{img}"/>
<mx:Canvas id="can1" width="100%" height="100%" borderStyle="solid">
<mx:Image source="image/fyzw_20092181054.jpg" x="0" y="0" width="500" height="375" id="img"/>
</mx:Canvas>
</mx:Application>

请各位高手,帮忙看一下哪里有问题,感激不尽!
...全文
514 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
CCjian 2010-02-05
  • 打赏
  • 举报
回复
抖动厉害是效果运行时,被不断触发

解决:

要么效果运行时,不被再次触发


要么就用单一的拖放移动

要么再去想别的方法实现
archko 2010-02-05
  • 打赏
  • 举报
回复
那AS代码有不,可以参考下,CSDN头像编辑里的移动就很流畅,难道不是在Canvas里移动>
shuzhan87 2010-02-05
  • 打赏
  • 举报
回复
用Flash做图片移动 加入到FLex中 我一般都是这么做的 这是美工和编程的互补
archko 2010-02-04
  • 打赏
  • 举报
回复
抖动是正常的,Flex自带的弹出层也是会抖的,
不过鼠标跑出去我就不知道了.
discovery10 2010-02-04
  • 打赏
  • 举报
回复
请各位高手帮忙一下,谢谢了!
chinazhousheng 2010-02-02
  • 打赏
  • 举报
回复
感觉是mouseX的问题
discovery10 2010-02-02
  • 打赏
  • 举报
回复
不行,图片还是有些抖动,而且鼠标容易跑出图片
archko 2010-02-02
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.effects.Move;

private var _x:int;
private var _y:int;
private var _tempX:Number;
private var _tempY:Number;
private var isDown:Boolean;
private var myMove:Move;
private function init():void {
//can1.addEventListener(MouseEvent.CLICK,moveDown);
isDown = false;
//myMove.duration = 100;
//img.addEventListener(MouseEvent.CLICK,mouseClick);
img.addEventListener(MouseEvent.MOUSE_DOWN,mouseDown);
img.addEventListener(MouseEvent.MOUSE_MOVE,mouseMove);
img.addEventListener(MouseEvent.MOUSE_UP,mouseUp);
img.addEventListener(MouseEvent.MOUSE_OUT,mouseOut);
myMove=new Move();
myMove.target=img;
}
private function mouseClick(e:MouseEvent):void {
Alert.show(img.x+'\t'+img.y,'aaa');
}
private function mouseDown(e:MouseEvent):void {
isDown = true;
}
private function mouseUp(e:MouseEvent):void {
isDown = false;
}
private function mouseOut(e:MouseEvent):void {
isDown = false;
}
private function mouseMove(e:MouseEvent):void {
if(isDown) {
myMove.end();
myMove.xBy=mouseX+_x-_tempX;
myMove.yBy=mouseY+_y-_tempY;
_tempX=mouseX;
_tempY=mouseY;
lab.text="myMove.xBy:"+myMove.xBy+":::myMove.yBy:"+myMove.yBy+
":_tempX"+_tempX+":"+_tempY;
myMove.play();
}
}
]]>
</mx:Script>
<mx:Canvas id="can1" width="100%" height="100%" borderStyle="solid">
<mx:Image source="img/book1.gif" x="0" y="0" width="100" height="141" id="img"/>
</mx:Canvas>
<mx:Label id="lab"/>
</mx:Application>

好那么一 点点.

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧